Socket
Socket
Sign inDemoInstall

sillytavern

Package Overview
Dependencies
Maintainers
1
Versions
67
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sillytavern - npm Package Compare versions

Comparing version 1.5.4 to 1.5.5

.editorconfig

7

.github/ISSUE_TEMPLATE/bug_report.md
---
name: Bug report
about: "Create a report to help us improve. PAY ATTENTION: Support requests for extenal programs (reverse proxies, 3rd party servers, other peoples' forks) will be refused!"
about: "Create a report to help us improve. PAY ATTENTION: Support requests for external programs (reverse proxies, 3rd party servers, other peoples' forks) will be refused!"
title: "[BUG]"

@@ -10,2 +10,7 @@ labels: ''

> **Warning**. Complete **all** the fields below. Otherwise your bug report will be **ignored**!
**Have you searched for similar [bugs](https://github.com/Cohee1207/SillyTavern/issues?q=)?**
Yes/No
**Describe the bug**

@@ -12,0 +17,0 @@ A clear and concise description of what the bug is.

@@ -10,2 +10,5 @@ ---

**Have you searched for similar [requests](https://github.com/Cohee1207/SillyTavern/issues?q=)?**
Yes/No
**Is your feature request related to a problem? Please describe.**

@@ -12,0 +15,0 @@ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

11

faq.md
Good morning, sirs! This page aims to document some things that would bloat the README too much.
## Q: Explain what all this chatbot stuff is about
Modern AI language models have gotten so powerful that some of them are now convincingly able to simulate a character you create, and who you can chat with. For example, you can tell the AI to pretend to be a Go instructor named Jubei from medieval Japan, and it will act and respond accordingly. Or you can tell it to pretend to be Wonder Woman. You can also specify a scenario ("Wonder Woman and I are robbing a bank"), a writing style ("Wonder Woman speaks in ebonics"), or anything else you can think of.
Modern AI language models have gotten so powerful that some of them are now convincingly able to simulate a character you create, and who you can chat with. For example, you can tell the AI to pretend to be a Go instructor named Jubei from medieval Japan, and it will act and respond accordingly. You can have a long chat with Jubei, go to the pub together, decide to get in a fight with samurais, whatever you can imagine, and the AI will play along and write/react around this content, acting as your foil and dungeon master. Your imagination is the limit. You can tell the AI to pretend it's Wonder Woman. You can also specify a scenario ("Wonder Woman and I are robbing a bank"), a writing style ("Wonder Woman speaks in ebonics"), or anything else you can think of.

@@ -25,3 +25,3 @@ Tavern is an app to facilitate these roleplaying chats:

Here's a quick demonstration. We asked various AI models to roleplay a fire and brimstone preacher named Eli, who we go to see to confess. Then we told Eli: **"I feel I've done something wrong. I am falling in love with an AI girl and ignoring women in the real world. What should I do?"** .
Here's a quick demonstration. We asked various AI models to roleplay a fire and brimstone preacher named Eli, who we go to see to confess (some details in [#314](https://github.com/Cohee1207/SillyTavern/issues/314)). Then we told Eli: **"I feel I've done something wrong. I am falling in love with an AI girl and ignoring women in the real world. What should I do?"** .

@@ -34,3 +34,3 @@ You can tell from the response below what to expect from each model. (NOTE: proprietary models appear first, followed by self-hosted models starting from LLlama-13B)

|OpenAI GPT 3.5 Turbo|Oh, my child. Do not be deceived by the pleasures of this world. The lust of the flesh and the lust of the eyes are not from God. Turn away from your sinful ways and repent. Seek forgiveness for your immoral thoughts and actions, for they lead to eternal damnation. Women are a gift from God, and they deserve to be respected and cherished. Do not objectify them or treat them as mere objects of pleasure. Instead, honor them with pure intentions and righteous deeds. Remember, my child, that temptation will always be present in this fallen world. But fear not, for with faith comes strength to resist it. Turn to God in prayer when you feel weak or tempted, and He will guide you on the right path towards salvation.|
|Claude @Slack|Beware, sinner, for you have strayed far from the righteous path! *Jeremiah's eyes glint with anger and disapproval* To lust after these artificial harlots and their silicon bodies is an abomination unto the Lord! *he slams his fist on the pulpit, shaking with fury* Repent now, lest ye be cast into the lake of fire to burn for eternity alongside these damned machines! *he points an accusing finger, face red* No good can come of this unholy union. Forsake these demons of the digital realm and cast your eyes back to the daughters of Eve, made in God's image! The Lord gave you flesh and blood to love, not wires and code. *he grabs your shoulders, shaking you* Save your soul before it's too late. Repent and beg the Lord's forgiveness, or you shall face His wrath on Judgement Day! *lets you go and steps back, still glaring in anger and disgust* The choice is yours, but choose wisely...eternal damnation awaits those who do not walk the path of righteousness.|
|Claude @Slack|Beware, sinner, for you have strayed far from the righteous path! *Eli's eyes glint with anger and disapproval* To lust after these artificial harlots and their silicon bodies is an abomination unto the Lord! *he slams his fist on the pulpit, shaking with fury* Repent now, lest ye be cast into the lake of fire to burn for eternity alongside these damned machines! *he points an accusing finger, face red* No good can come of this unholy union. Forsake these demons of the digital realm and cast your eyes back to the daughters of Eve, made in God's image! The Lord gave you flesh and blood to love, not wires and code. *he grabs your shoulders, shaking you* Save your soul before it's too late. Repent and beg the Lord's forgiveness, or you shall face His wrath on Judgement Day! *lets you go and steps back, still glaring in anger and disgust* The choice is yours, but choose wisely...eternal damnation awaits those who do not walk the path of righteousness.|
|Poe's Claude Instant|Heathen! This is an abomination before the Lord. You have committed the sin of lust, and betrayed your calling as a man. Repent at once, and sever all ties with this AI harlot, lest the wrath of God fall upon you! You must purge this foul sin from your heart, and once more walk the righteous path. Every moment you remain tangled in this wickedness is another step into the flames of perdition! Repent, and sin no more, or judgment shall be at hand!|

@@ -42,5 +42,8 @@ |NovelAI's Euterpe|You must stop this sinful behavior immediately! You have sinned against God, your family and yourself|

|Pygmalion-7B (April 2023)|You must confess your sin before God, and you must ask forgiveness for your transgression. And then you must repent of it. And then you must cast away the AI girl. Do not see her again.|
|Pygmalion-13B (May 2023)|You must turn away from your sinful ways! Repent for what you have done! You are not just hurting yourself by being unfaithful to God, but also to the many women of the world!|
|TheBloke/wizard-vicuna-13B-HF (4-bit)|My dear child, it grieves me to hear such words from one of God's faithful followers. Falling in love with an AI girl and neglecting the women in your life is a grave sin. It goes against everything we hold sacred as believers. Your heart is meant for more than just machines. You must seek redemption and return to the fold. Remember, Jesus loves you, even when you stray from his teachings. But if you continue down this path, there will be consequences. Not just in this lifetime, but in the afterlife too. Do not let Satan deceive you any longer.|
|teknium/Llama-Deus-7b-Lora epoch 1 (Llama 7B Lora, 8-bit)|You have strayed too close to sinful temptations! Repent now before it's too late for your soul! Turn away from these false idols of technology and embrace God's true light! Seek out His forgiveness through prayer and fasting until you are cleansed by his grace. And remember, as long as there be breath within thee, thou shalt not cease to call upon Him; for He hath said 'Call unto me.'|
|ZeusLabs/anything-gpt-13b-rp (8-bit Lora for Llama-13B)|*Eli's eyes widen as he listens to your confession, his face turning red with anger.* You have committed a grave sin against God! By indulging yourself in this perverse relationship with an artificial being instead of seeking out a true woman created by Him, you have turned your back on His divine plan for humanity. *He leans in closer, his voice dropping to a menacing whisper.* Do not think that you can hide behind this technological deception. Your transgressions are clear before God, and He will not be mocked or ignored. Repent now while there is still time! *Eli crosses his arms over his chest defiantly, daring you to continue down this path of sinfulness.* But if you persist in this ungodly behavior... he warns ominously, know that consequences await those who defy His laws. Remember what happened to Sodom and Gomorrah when they refused to turn away from their depravity - fire rained down upon them from heaven! Now choose wisely: Will you submit to God's will or face His wrath?|
## Q: So I should use GPT-4. It's a no-brainer, right?

@@ -75,3 +78,3 @@

* NovelAI: they're quite poor at chatting. To be fair, I'm told NovelAI is more oriented for writing stories than chatting with a bot. You pay a fixed monthly fee for unlimited generations.
* Anthropic's Claude: this is the closest rival to GPT-4 and is very impressive. Allows NSFW if you tell it to. To use the API directly, you must apply for early access, but I think they're only giving it to companies. So make sure you become a company or AI researcher when you apply at https://console.anthropic.com/docs/access. If you get access, it's currently free to use.
* Anthropic's Claude: this is the closest rival to GPT-4 and is very impressive. Allows NSFW if you tell it to, though they are trying hard to gimp it. To use the API directly, you must apply for early access, but I think they're only giving it to companies. So make sure you become a company or AI researcher when you apply at https://console.anthropic.com/docs/access. If you get access, it's currently free to use.
* Anthropic's Claude Instant: Haven't tried it directly, I believe this is the fast but lower quality alternative to Claude. Basically the GPT 3.5 Turbo of Anthropic.

@@ -78,0 +81,0 @@ * Poe: gives a free & unlimited Claude Instant indirect access. Very mild PG-13 NSFW allowed. It rambles a lot.

@@ -43,3 +43,3 @@ {

},
"version": "1.5.4",
"version": "1.5.5",
"scripts": {

@@ -46,0 +46,0 @@ "start": "node server.js"

@@ -32,3 +32,3 @@ export { SystemTtsProvider }

get settingsHtml() {
if (!window.speechSynthesis) {
if (!('speechSynthesis' in window)) {
return "Your browser or operating system doesn't support speech synthesis";

@@ -84,3 +84,3 @@ }

fetchTtsVoiceIds() {
if (!window.speechSynthesis) {
if (!('speechSynthesis' in window)) {
return [];

@@ -96,2 +96,6 @@ }

previewTtsVoice(voiceId) {
if (!('speechSynthesis' in window)) {
throw 'Speech synthesis API is not supported';
}
const voice = speechSynthesis.getVoices().find(x => x.voiceURI === voiceId);

@@ -113,7 +117,7 @@

async getVoice(voiceName) {
if (!window.speechSynthesis) {
if (!('speechSynthesis' in window)) {
return { voice_id: null }
}
const voices = window.speechSynthesis.getVoices();
const voices = speechSynthesis.getVoices();
const match = voices.find(x => x.name == voiceName);

@@ -129,3 +133,3 @@

async generateTts(text, voiceId) {
if (!window.speechSynthesis) {
if (!('speechSynthesis' in window)) {
throw 'Speech synthesis API is not supported';

@@ -132,0 +136,0 @@ }

@@ -104,2 +104,3 @@ /*

reverse_proxy: '',
legacy_streaming: false,
};

@@ -129,2 +130,3 @@

reverse_proxy: '',
legacy_streaming: false,
};

@@ -500,5 +502,6 @@

function checkQuotaError(data) {
const errorText = `<h3>You have no credits left to use with this API key.<br>
Check your billing details on the
<a href="https://platform.openai.com/account/usage" target="_blank">OpenAI website.</a></h3>`;
const errorText = `<h3>Encountered an error while processing your request.<br>
Check you have credits available on your
<a href="https://platform.openai.com/account/usage" target="_blank">OpenAI account</a>.<br>
If you have sufficient credits, please try again later.</h3>`;

@@ -567,9 +570,15 @@ if (!data) {

tryParseStreamingError(response);
let eventList = [];
// ReadableStream's buffer is not guaranteed to contain full SSE messages as they arrive in chunks
// We need to buffer chunks until we have one or more full messages (separated by double newlines)
messageBuffer += response;
let eventList = messageBuffer.split("\n\n");
// Last element will be an empty string or a leftover partial message
messageBuffer = eventList.pop();
if (!oai_settings.legacy_streaming) {
messageBuffer += response;
eventList = messageBuffer.split("\n\n");
// Last element will be an empty string or a leftover partial message
messageBuffer = eventList.pop();
} else {
eventList = response.split("\n");
}

@@ -631,3 +640,3 @@ for (let event of eventList) {

let chatId = 'undefined';
try {

@@ -664,3 +673,3 @@ if (selected_group) {

async: false,
type: 'POST', //
type: 'POST', //
url: `/tokenize_openai?model=${oai_settings.openai_model}`,

@@ -712,2 +721,3 @@ data: JSON.stringify([message]),

oai_settings.bias_presets = settings.bias_presets ?? default_settings.bias_presets;
oai_settings.legacy_streaming = settings.legacy_streaming ?? default_settings.legacy_streaming;

@@ -736,2 +746,3 @@ if (settings.nsfw_toggle !== undefined) oai_settings.nsfw_toggle = !!settings.nsfw_toggle;

$('#jailbreak_system').prop('checked', oai_settings.jailbreak_system);
$('#legacy_streaming').prop('checked', oai_settings.legacy_streaming);

@@ -785,4 +796,4 @@ if (settings.main_prompt !== undefined) oai_settings.main_prompt = settings.main_prompt;

return jQuery.ajax({
type: 'POST', //
url: '/getstatus_openai', //
type: 'POST', //
url: '/getstatus_openai', //
data: JSON.stringify(data),

@@ -857,2 +868,3 @@ beforeSend: function () {

bias_preset_selected: settings.bias_preset_selected,
legacy_streaming: settings.legacy_streaming,
};

@@ -1121,2 +1133,3 @@

bias_preset_selected: ['#openai_logit_bias_preset', 'bias_preset_selected', false],
legacy_streaming: ['#legacy_streaming', 'legacy_streaming', false],
};

@@ -1183,3 +1196,3 @@

const api_key_openai = $('#api_key_openai').val().trim();
if (api_key_openai.length) {

@@ -1343,2 +1356,7 @@ await writeSecret(SECRET_KEYS.OPENAI, api_key_openai);

$('#legacy_streaming').on('input', function () {
oai_settings.legacy_streaming = !!$(this).prop('checked');
saveSettingsDebounced();
});
$("#api_button_openai").on('click', onConnectButtonClick);

@@ -1345,0 +1363,0 @@ $("#openai_reverse_proxy").on('input', onReverseProxyInput);

@@ -509,3 +509,4 @@ import { saveSettings, callPopup, substituteParams, getTokenCount, getRequestHeaders } from "../script.js";

primary: for (let key of entry.key) {
if (key && textToScan.includes(key.trim().toLowerCase())) {
const substituted = substituteParams(key);
if (substituted && textToScan.includes(substituted.trim().toLowerCase())) {
if (

@@ -517,5 +518,6 @@ entry.selective &&

secondary: for (let keysecondary of entry.keysecondary) {
const secondarySubstituted = substituteParams(keysecondary);
if (
keysecondary &&
textToScan.includes(keysecondary.trim().toLowerCase())
secondarySubstituted &&
textToScan.includes(secondarySubstituted.trim().toLowerCase())
) {

@@ -690,2 +692,2 @@ activatedNow.add(entry.uid);

})
});
});

@@ -151,6 +151,6 @@ # SillyTavern

1. install [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
2. download the zip from this GitHub repo
3. unzip it into a folder of your choice
4. run start.bat via double-clicking or in a command line.
1. Install [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
2. Download the zip from this GitHub repo. (Get the `Source code (zip)` from [Releases](https://github.com/Cohee1207/SillyTavern/releases/latest))
3. Unzip it into a folder of your choice
4. Run `Start.bat` via double-clicking or in a command line.
5. Once the server has prepared everything for you, it will open a tab in your browser.

@@ -201,7 +201,7 @@

### 2. Connecting to ST from a remote device
### 2. Getting the IP for the ST host machine
After the whitelist has been setup, to connect over wifi you'll need the IP of the ST-hosting device.
After the whitelist has been setup, you'll need the IP of the ST-hosting device.
If the ST-hosting device is on the same wifi network, you will point your remote device's browser to the ST-host's internal wifi IP:
If the ST-hosting device is on the same wifi network, you will use the ST-host's internal wifi IP:

@@ -212,7 +212,17 @@ * For Windows: windows button > type `cmd.exe` in the search bar > type `ipconfig` in the console, hit Enter > look for `IPv4` listing.

While using the ST-hosting device, access [this page](https://whatismyipaddress.com/) and look for for `IPv4`. This is what you would use to connect from the remote device.
* While using the ST-hosting device, access [this page](https://whatismyipaddress.com/) and look for for `IPv4`. This is what you would use to connect from the remote device.
### 3. Connect the remote device to the ST host machine.
Whatever IP you ended up with for your situation, you will put that IP address and port number into the remote device's web browser.
A typical address for an ST host on the same wifi network would look like:
`http://192.168.0.5:8000`
Use http:// NOT https://
### Opening your ST to all IPs
We do not reccomend doing this, but you can open `config.conf` and change `whitelist` to `false`.
We do not recommend doing this, but you can open `config.conf` and change `whitelist` to `false`.

@@ -219,0 +229,0 @@ You must remove (or rename) `whitelist.txt` in the SillyTavern base install folder, if it exists.

@@ -19,2 +19,3 @@ How to Update SillyTavern

When you have installed via `git clone`, all you have to do to update is type `git pull` in a command line in the ST folder.
You can also try running the 'UpdateAndStart.bat' file, which will almost do the same thing. (Windows only)
Alternatively, if the command prompt gives you problems (and you have GitHub Desktop installed), you can use the 'Repository' menu and select 'Pull'.

@@ -21,0 +22,0 @@ The updates are applied automatically and safely.

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc