mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Merge branch 'dev' of https://github.com/SillyLossy/TavernAI into dev
This commit is contained in:
55
Update-Instructions.txt
Normal file
55
Update-Instructions.txt
Normal file
@ -0,0 +1,55 @@
|
||||
How to Update SillyTavern
|
||||
|
||||
This is not an installation guide. If you need installation instructions, look here:
|
||||
https://docs.alpindale.dev/pygmalion-extras/sillytavern/#installation
|
||||
|
||||
This guide assumes you have already installed SillyTavern once, and know how to run it on your OS.
|
||||
|
||||
Linux/Termux:
|
||||
|
||||
You definitely installed via git, so just 'git pull' inside the SillyTavern directory.
|
||||
|
||||
Windows/MacOS:
|
||||
|
||||
Method 1 - GIT
|
||||
|
||||
We always recommend users install using 'git'. Here's why:
|
||||
|
||||
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.
|
||||
The updates are applied automatically and safely.
|
||||
|
||||
Method 2 - ZIP
|
||||
|
||||
If you insist on installing via a zip, here is the tedious process for doing the update:
|
||||
|
||||
1. Download the new release zip.
|
||||
2. Unzip it into a folder OUTSIDE of your current ST installation.
|
||||
3. Do the usual setup procedure for your OS to install the NodeJS requirements.
|
||||
|
||||
4. Copy the following files/folders as necessary(*) from your old ST installation:
|
||||
|
||||
- Backgrounds
|
||||
- Characters
|
||||
- Chats
|
||||
- Groups
|
||||
- Group chats
|
||||
- KoboldAI Settings
|
||||
- NovelAI Settings
|
||||
- OpenAI Settings
|
||||
- TextGen Settings (textgen = ooba)
|
||||
- Themes
|
||||
- User Avatars
|
||||
- Worlds
|
||||
- settings.json
|
||||
|
||||
(*) 'As necessary' = "If you made any custom content related to those folders".
|
||||
None of the folders are mandatory, so only copy what you need.
|
||||
|
||||
**NB: DO NOT COPY THE ENTIRE /PUBLIC/ FOLDER.**
|
||||
Doing so could break the new install and prevent new features from being present.
|
||||
|
||||
5. Paste those items into the /Public/ folder of the new install.
|
||||
|
||||
6. Start SillyTavern once again with the method appropriate to your OS, and pray you got it right.
|
||||
|
||||
7. If everything shows up, you can safely delete the old ST folder.
|
24
public/notes/update.html
Normal file
24
public/notes/update.html
Normal file
@ -0,0 +1,24 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>SillyTavern Guidebook</title>
|
||||
<link rel="stylesheet" href="/css/notes.css">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="/webfonts/NotoSans/stylesheet.css" rel="stylesheet">
|
||||
<script src="/scripts/showdown.min.js"></script>
|
||||
<script src="/scripts/showdown-toc.min.js"></script>
|
||||
<script src="/scripts/notes.js"></script>
|
||||
</head>
|
||||
|
||||
<body onload="loadNotes('/notes/update.md')">
|
||||
<div id="main">
|
||||
<div id="content">
|
||||
<!-- To change the guidebook content edit the content.md file -->
|
||||
<!-- Then it will be dynamically inserted here -->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
64
public/notes/update.md
Normal file
64
public/notes/update.md
Normal file
@ -0,0 +1,64 @@
|
||||
# How to Update SillyTavern
|
||||
|
||||
This is not an installation guide. If you need installation instructions, look here:
|
||||
<https://docs.alpindale.dev/pygmalion-extras/sillytavern/#installation>
|
||||
|
||||
(This guide assumes you have already installed SillyTavern once and know how to run it on your OS.)
|
||||
|
||||
(A plain text copy of this file is also present inside SillyTavern's base install folder.)
|
||||
|
||||
----
|
||||
|
||||
## Linux/Termux
|
||||
|
||||
You definitely installed via git, so just 'git pull' inside the SillyTavern directory.
|
||||
|
||||
----
|
||||
|
||||
## Windows/MacOS
|
||||
|
||||
### Method 1 - GIT
|
||||
|
||||
We always recommend users install using 'git'. Here's why:
|
||||
|
||||
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.
|
||||
The updates are applied automatically and safely.
|
||||
|
||||
### Method 2 - ZIP
|
||||
|
||||
If you insist on installing via a zip, here is the tedious process for doing the update:
|
||||
|
||||
1. Download the new release zip.
|
||||
2. Unzip it into a folder OUTSIDE of your current ST installation.
|
||||
3. Do the usual setup procedure for your OS to install NodeJS requirements.
|
||||
|
||||
4. Copy the following files/folders as necessary(*) from your old ST installation:
|
||||
|
||||
(*) 'As necessary' = "If you made any custom content related to those folders".
|
||||
None of the folders are mandatory, so only copy what you need.
|
||||
|
||||
#### NB: DO NOT COPY THE ENTIRE /PUBLIC/ FOLDER
|
||||
|
||||
Doing so could break the new install and prevent new features from being present.
|
||||
|
||||
```plaintext
|
||||
Backgrounds
|
||||
Characters
|
||||
Chats
|
||||
Groups
|
||||
Group chats
|
||||
KoboldAI Settings
|
||||
NovelAI Settings
|
||||
OpenAI Settings
|
||||
TextGen Settings (textgen = ooba)
|
||||
Themes
|
||||
User Avatars
|
||||
Worlds
|
||||
settings.json
|
||||
```
|
||||
|
||||
5. Once those folders/files are copied, Paste them into the /Public/ folder of the new install.
|
||||
|
||||
6. Start SillyTavern once again with the method appropriate to your OS, and pray you got it right.
|
||||
|
||||
7. If everything shows up, you can safely delete the old ST folder.
|
@ -287,6 +287,8 @@ const system_messages = {
|
||||
is_name: true,
|
||||
mes: [
|
||||
'<h2>Welcome to SillyTavern!</h2>',
|
||||
'<h3>Want to Update to the latest version?</h3>',
|
||||
"Read the <a href='/notes/update.html' target='_blank'>instructions here</a>. Also located in your installation's base folder",
|
||||
'<h3>In order to begin chatting:</h3>',
|
||||
'<ol>',
|
||||
'<li>Connect to one of the supported generation APIs (the plug icon)</li>',
|
||||
@ -381,17 +383,17 @@ async function getClientVersion() {
|
||||
}
|
||||
|
||||
function getTokenCount(str, padding = 0) {
|
||||
let tokenizerType = power_user.tokenizer;
|
||||
let tokenizerType = power_user.tokenizer;
|
||||
|
||||
if (main_api === 'openai') {
|
||||
// For main prompt building
|
||||
if (padding == power_user.token_padding) {
|
||||
tokenizerType = tokenizers.NONE;
|
||||
// For extensions and WI
|
||||
// For extensions and WI
|
||||
} else {
|
||||
return getTokenCountOpenAI(str);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
switch (tokenizerType) {
|
||||
@ -974,15 +976,15 @@ function messageFormatting(mes, ch_name, isSystem, isUser) {
|
||||
.replace(/\*\*(.+?)\*\*/g, "<b>$1</b>")
|
||||
.replace(/\n/g, "<br/>");
|
||||
} else if (!isSystem) {
|
||||
mes = mes.replace(/```[\s\S]*?```|``[\s\S]*?``|`[\s\S]*?`|(\".+?\")|(\u201C.+?\u201D)/gm, function (match, p1, p2) {
|
||||
if (p1) {
|
||||
return '<q>"' + p1.replace(/\"/g, "") + '"</q>';
|
||||
} else if (p2) {
|
||||
return '<q>“' + p2.replace(/\u201C|\u201D/g, "") + '”</q>';
|
||||
} else {
|
||||
return match;
|
||||
}
|
||||
});
|
||||
mes = mes.replace(/```[\s\S]*?```|``[\s\S]*?``|`[\s\S]*?`|(\".+?\")|(\u201C.+?\u201D)/gm, function (match, p1, p2) {
|
||||
if (p1) {
|
||||
return '<q>"' + p1.replace(/\"/g, "") + '"</q>';
|
||||
} else if (p2) {
|
||||
return '<q>“' + p2.replace(/\u201C|\u201D/g, "") + '”</q>';
|
||||
} else {
|
||||
return match;
|
||||
}
|
||||
});
|
||||
mes = mes.replaceAll('\\begin{align*}', '$$');
|
||||
mes = mes.replaceAll('\\end{align*}', '$$');
|
||||
mes = converter.makeHtml(mes);
|
||||
@ -1849,7 +1851,7 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject,
|
||||
if (main_api == 'openai') {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
chatString = item + chatString;
|
||||
if (canFitMessages()) { //(The number of tokens in the entire promt) need fix, it must count correctly (added +120, so that the description of the character does not hide)
|
||||
//if (is_pygmalion && i == chat2.length-1) item='<START>\n'+item;
|
||||
@ -2502,7 +2504,7 @@ function cleanUpMessage(getMessage, isImpersonate) {
|
||||
getMessage = getMessage.replace(/You:/g, name1 + ':');
|
||||
}
|
||||
|
||||
let nameToTrim = isImpersonate ? name2 : name1;
|
||||
let nameToTrim = isImpersonate ? name2 : name1;
|
||||
|
||||
if (isImpersonate) {
|
||||
nameToTrim = power_user.allow_name2_display ? '' : name2;
|
||||
|
Reference in New Issue
Block a user