sillytavern 1.11.7 → 1.12.0-preview

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/.dockerignore +2 -1
  2. package/.eslintrc.js +13 -1
  3. package/.github/readme-ja_jp.md +1 -1
  4. package/.github/readme-ru_ru.md +359 -0
  5. package/.github/readme-zh_cn.md +1 -1
  6. package/.github/readme.md +1 -1
  7. package/.github/workflows/docker-publish.yml +23 -6
  8. package/Dockerfile +3 -13
  9. package/config.yaml +14 -2
  10. package/default/config.yaml +14 -2
  11. package/default/content/index.json +132 -1
  12. package/default/content/presets/context/Command R.json +12 -0
  13. package/default/content/presets/context/Llama 3 Instruct.json +12 -0
  14. package/default/content/presets/instruct/Command R.json +24 -0
  15. package/default/content/presets/instruct/Llama 3 Instruct.json +24 -0
  16. package/default/{settings.json → content/settings.json} +8 -6
  17. package/default/content/themes/Cappuccino.json +35 -0
  18. package/default/content/themes/Dark Lite.json +35 -0
  19. package/docker/docker-compose.yml +1 -2
  20. package/docker/docker-entrypoint.sh +1 -30
  21. package/index.d.ts +20 -0
  22. package/jsconfig.json +5 -2
  23. package/package.json +11 -1
  24. package/post-install.js +2 -27
  25. package/public/css/accounts.css +5 -0
  26. package/public/css/loader.css +9 -3
  27. package/public/css/login.css +44 -0
  28. package/public/css/mobile-styles.css +28 -10
  29. package/public/css/rm-groups.css +5 -0
  30. package/public/css/st-tailwind.css +21 -1
  31. package/public/css/tags.css +1 -1
  32. package/public/css/toggle-dependent.css +1 -0
  33. package/public/favicon.ico +0 -0
  34. package/public/img/logo.png +0 -0
  35. package/public/img/perplexity.svg +3 -0
  36. package/public/index.html +270 -152
  37. package/public/lib/epub.min.js +1 -0
  38. package/public/lib/jquery.izoomify.js +216 -0
  39. package/public/lib/jszip.min.js +13 -0
  40. package/public/locales/ru-ru.json +440 -375
  41. package/public/locales/zh-cn.json +276 -274
  42. package/public/login.html +81 -0
  43. package/public/script.js +198 -211
  44. package/public/scripts/BulkEditOverlay.js +5 -5
  45. package/public/scripts/PromptManager.js +13 -7
  46. package/public/scripts/RossAscends-mods.js +47 -21
  47. package/public/scripts/authors-note.js +9 -11
  48. package/public/scripts/bulk-edit.js +1 -10
  49. package/public/scripts/chats.js +647 -52
  50. package/public/scripts/extensions/assets/index.js +8 -5
  51. package/public/scripts/extensions/attachments/buttons.html +9 -0
  52. package/public/scripts/extensions/attachments/fandom-scrape.html +51 -0
  53. package/public/scripts/extensions/attachments/index.js +6 -0
  54. package/public/scripts/extensions/attachments/manager.html +118 -0
  55. package/public/scripts/extensions/attachments/manifest.json +11 -0
  56. package/public/scripts/extensions/attachments/notepad.html +10 -0
  57. package/public/scripts/extensions/attachments/style.css +29 -0
  58. package/public/scripts/extensions/attachments/web-scrape.html +3 -0
  59. package/public/scripts/extensions/attachments/youtube-scrape.html +20 -0
  60. package/public/scripts/extensions/caption/index.js +59 -22
  61. package/public/scripts/extensions/expressions/index.js +276 -82
  62. package/public/scripts/extensions/expressions/settings.html +27 -3
  63. package/public/scripts/extensions/memory/index.js +11 -12
  64. package/public/scripts/extensions/quick-reply/html/qrEditor.html +10 -2
  65. package/public/scripts/extensions/quick-reply/src/QuickReply.js +56 -19
  66. package/public/scripts/extensions/quick-reply/style.css +31 -17
  67. package/public/scripts/extensions/quick-reply/style.less +18 -4
  68. package/public/scripts/extensions/regex/index.js +4 -4
  69. package/public/scripts/extensions/shared.js +2 -3
  70. package/public/scripts/extensions/stable-diffusion/comfyWorkflowEditor.html +2 -0
  71. package/public/scripts/extensions/stable-diffusion/index.js +159 -15
  72. package/public/scripts/extensions/stable-diffusion/settings.html +25 -5
  73. package/public/scripts/extensions/token-counter/index.js +6 -6
  74. package/public/scripts/extensions/translate/index.js +2 -0
  75. package/public/scripts/extensions/tts/alltalk.js +2 -2
  76. package/public/scripts/extensions/tts/elevenlabs.js +150 -23
  77. package/public/scripts/extensions/tts/index.js +96 -114
  78. package/public/scripts/extensions/vectors/index.js +399 -26
  79. package/public/scripts/extensions/vectors/settings.html +127 -11
  80. package/public/scripts/extensions.js +19 -2
  81. package/public/scripts/group-chats.js +86 -12
  82. package/public/scripts/instruct-mode.js +12 -4
  83. package/public/scripts/loader.js +2 -5
  84. package/public/scripts/login.js +276 -0
  85. package/public/scripts/logprobs.js +13 -13
  86. package/public/scripts/macros.js +94 -84
  87. package/public/scripts/openai.js +157 -16
  88. package/public/scripts/personas.js +4 -4
  89. package/public/scripts/popup.js +236 -0
  90. package/public/scripts/power-user.js +102 -18
  91. package/public/scripts/scrapers.js +416 -0
  92. package/public/scripts/secrets.js +2 -0
  93. package/public/scripts/slash-commands.js +85 -42
  94. package/public/scripts/tags.js +3 -3
  95. package/public/scripts/templates/admin.html +115 -0
  96. package/public/scripts/templates/changeName.html +5 -0
  97. package/public/scripts/templates/changePassword.html +14 -0
  98. package/public/scripts/templates/deleteUser.html +26 -0
  99. package/public/scripts/templates/macros.html +3 -0
  100. package/public/scripts/templates/resetSettings.html +13 -0
  101. package/public/scripts/templates/snapshotsView.html +31 -0
  102. package/public/scripts/templates/userProfile.html +97 -0
  103. package/public/scripts/templates/userReset.html +18 -0
  104. package/public/scripts/templates.js +130 -0
  105. package/public/scripts/textgen-models.js +2 -2
  106. package/public/scripts/textgen-settings.js +8 -2
  107. package/public/scripts/tokenizers.js +202 -14
  108. package/public/scripts/user.js +888 -0
  109. package/public/scripts/utils.js +106 -5
  110. package/public/scripts/world-info.js +6 -6
  111. package/public/st-launcher.ico +0 -0
  112. package/public/st.ico +0 -0
  113. package/public/style.css +75 -29
  114. package/recover.js +62 -0
  115. package/server.js +142 -72
  116. package/src/additional-headers.js +72 -22
  117. package/src/constants.js +62 -29
  118. package/src/endpoints/anthropic.js +1 -1
  119. package/src/endpoints/assets.js +40 -20
  120. package/src/endpoints/avatars.js +4 -4
  121. package/src/endpoints/backends/chat-completions.js +75 -20
  122. package/src/endpoints/backends/scale-alt.js +43 -18
  123. package/src/endpoints/backends/text-completions.js +82 -0
  124. package/src/endpoints/backgrounds.js +12 -11
  125. package/src/endpoints/characters.js +381 -311
  126. package/src/endpoints/chats.js +107 -92
  127. package/src/endpoints/content-manager.js +131 -89
  128. package/src/endpoints/extensions.js +13 -13
  129. package/src/endpoints/files.js +28 -3
  130. package/src/endpoints/google.js +2 -1
  131. package/src/endpoints/groups.js +15 -14
  132. package/src/endpoints/horde.js +5 -5
  133. package/src/endpoints/images.js +7 -8
  134. package/src/endpoints/moving-ui.js +1 -2
  135. package/src/endpoints/novelai.js +4 -4
  136. package/src/endpoints/openai.js +8 -8
  137. package/src/endpoints/presets.js +14 -14
  138. package/src/endpoints/quick-replies.js +2 -3
  139. package/src/endpoints/secrets.js +47 -84
  140. package/src/endpoints/serpapi.js +89 -3
  141. package/src/endpoints/settings.js +151 -30
  142. package/src/endpoints/sprites.js +14 -10
  143. package/src/endpoints/stable-diffusion.js +65 -25
  144. package/src/endpoints/stats.js +74 -76
  145. package/src/endpoints/themes.js +2 -3
  146. package/src/endpoints/thumbnails.js +84 -49
  147. package/src/endpoints/tokenizers.js +5 -3
  148. package/src/endpoints/translate.js +6 -6
  149. package/src/endpoints/users-admin.js +255 -0
  150. package/src/endpoints/users-private.js +257 -0
  151. package/src/endpoints/users-public.js +199 -0
  152. package/src/endpoints/vectors.js +116 -33
  153. package/src/endpoints/worldinfo.js +8 -7
  154. package/src/express-common.js +22 -1
  155. package/src/middleware/whitelist.js +29 -17
  156. package/src/plugin-loader.js +6 -4
  157. package/src/polyfill.js +2 -0
  158. package/src/prompt-converters.js +27 -3
  159. package/src/users.js +727 -0
  160. package/src/util.js +32 -34
  161. package/src/vectors/cohere-vectors.js +65 -0
  162. package/src/{embedding.js → vectors/embedding.js} +1 -1
  163. package/src/{makersuite-vectors.js → vectors/makersuite-vectors.js} +7 -5
  164. package/src/{nomicai-vectors.js → vectors/nomicai-vectors.js} +7 -5
  165. package/src/{openai-vectors.js → vectors/openai-vectors.js} +8 -6
  166. package/start.sh +0 -6
  167. package/public/NovelAI Settings/.gitkeep +0 -0
  168. package/public/OpenAI Settings/.gitkeep +0 -0
  169. package/public/TextGen Settings/.gitkeep +0 -0
  170. package/public/User Avatars/README.md +0 -1
  171. package/public/assets/ambient/.placeholder +0 -1
  172. package/public/assets/bgm/.placeholder +0 -1
  173. package/public/assets/blip/.placeholder +0 -1
  174. package/public/assets/live2d/.placeholder +0 -1
  175. package/public/assets/temp/.placeholder +0 -0
  176. package/public/assets/vrm/animation/.placeholder +0 -1
  177. package/public/assets/vrm/model/.placeholder +0 -1
  178. package/public/characters/.gitkeep +0 -8
  179. package/public/chats/.gitkeep +0 -5
  180. package/public/context/.gitkeep +0 -0
  181. package/public/group chats/.gitkeep +0 -1
  182. package/public/groups/.gitkeep +0 -1
  183. package/public/instruct/.gitkeep +0 -0
  184. package/public/settings.json +0 -633
  185. package/public/themes/.gitkeep +0 -0
  186. package/public/themes/Default (Dark) 1.7.1.json +0 -21
  187. package/public/themes/Ross v2.json +0 -21
  188. package/public/user/.gitkeep +0 -0
  189. package/public/worlds/README.md +0 -1
  190. /package/{public/KoboldAI Settings → data}/.gitkeep +0 -0
  191. /package/{public → default/content}/backgrounds/__transparent.png +0 -0
  192. /package/{public → default/content}/backgrounds/_black.jpg +0 -0
  193. /package/{public → default/content}/backgrounds/_white.jpg +0 -0
  194. /package/{public → default/content}/backgrounds/bedroom clean.jpg +0 -0
  195. /package/{public → default/content}/backgrounds/bedroom cyberpunk.jpg +0 -0
  196. /package/{public → default/content}/backgrounds/bedroom red.jpg +0 -0
  197. /package/{public → default/content}/backgrounds/bedroom tatami.jpg +0 -0
  198. /package/{public → default/content}/backgrounds/cityscape medieval market.jpg +0 -0
  199. /package/{public → default/content}/backgrounds/cityscape medieval night.jpg +0 -0
  200. /package/{public → default/content}/backgrounds/cityscape postapoc.jpg +0 -0
  201. /package/{public → default/content}/backgrounds/forest treehouse fireworks air baloons (by kallmeflocc).jpg +0 -0
  202. /package/{public → default/content}/backgrounds/japan classroom side.jpg +0 -0
  203. /package/{public → default/content}/backgrounds/japan classroom.jpg +0 -0
  204. /package/{public → default/content}/backgrounds/japan path cherry blossom.jpg +0 -0
  205. /package/{public → default/content}/backgrounds/japan university.jpg +0 -0
  206. /package/{public → default/content}/backgrounds/landscape autumn great tree.jpg +0 -0
  207. /package/{public → default/content}/backgrounds/landscape beach day.png +0 -0
  208. /package/{public → default/content}/backgrounds/landscape beach night.jpg +0 -0
  209. /package/{public → default/content}/backgrounds/landscape mountain lake.jpg +0 -0
  210. /package/{public → default/content}/backgrounds/landscape postapoc.jpg +0 -0
  211. /package/{public → default/content}/backgrounds/landscape winter lake house.jpg +0 -0
  212. /package/{public → default/content}/backgrounds/royal.jpg +0 -0
  213. /package/{public → default/content}/backgrounds/tavern day.jpg +0 -0
  214. /package/{public/movingUI → default/content/presets/moving-ui}/Black Magic Time.json +0 -0
  215. /package/{public/movingUI → default/content/presets/moving-ui}/Default.json +0 -0
  216. /package/{public/QuickReplies → default/content/presets/quick-replies}/Default.json +0 -0
  217. /package/src/{extras-vectors.js → vectors/extras-vectors.js} +0 -0
package/.dockerignore CHANGED
@@ -4,6 +4,7 @@ npm-debug.log
4
4
  readme*
5
5
  Start.bat
6
6
  /dist
7
- /backups/
7
+ /backups
8
8
  cloudflared.exe
9
9
  access.log
10
+ /data
package/.eslintrc.js CHANGED
@@ -42,11 +42,21 @@ module.exports = {
42
42
  showdownKatex: 'readonly',
43
43
  SVGInject: 'readonly',
44
44
  toastr: 'readonly',
45
+ Readability: 'readonly',
46
+ isProbablyReaderable: 'readonly',
45
47
  },
46
48
  },
47
49
  ],
48
50
  // There are various vendored libraries that shouldn't be linted
49
- ignorePatterns: ['public/lib/**/*', '*.min.js', 'src/ai_horde/**/*'],
51
+ ignorePatterns: [
52
+ 'public/lib/**/*',
53
+ '*.min.js',
54
+ 'src/ai_horde/**/*',
55
+ 'plugins/**/*',
56
+ 'data/**/*',
57
+ 'backups/**/*',
58
+ 'node_modules/**/*',
59
+ ],
50
60
  rules: {
51
61
  'no-unused-vars': ['error', { args: 'none' }],
52
62
  'no-control-regex': 'off',
@@ -60,6 +70,8 @@ module.exports = {
60
70
  'no-trailing-spaces': 'error',
61
71
  'object-curly-spacing': ['error', 'always'],
62
72
  'space-infix-ops': 'error',
73
+ 'no-unused-expressions': ['error', { allowShortCircuit: true, allowTernary: true }],
74
+ 'no-cond-assign': 'error',
63
75
 
64
76
  // These rules should eventually be enabled.
65
77
  'no-async-promise-executor': 'off',
@@ -1,4 +1,4 @@
1
- [English](readme.md) | [中文](readme-zh_cn.md) | 日本語
1
+ [English](readme.md) | [中文](readme-zh_cn.md) | 日本語 | [Русский](readme-ru_ru.md)
2
2
 
3
3
  ![SillyTavern-Banner](https://github.com/SillyTavern/SillyTavern/assets/18619528/c2be4c3f-aada-4f64-87a3-ae35a68b61a4)
4
4
 
@@ -0,0 +1,359 @@
1
+ <a name="readme-top"></a>
2
+
3
+ [English](readme.md) | [中文](readme-zh_cn.md) | [日本語](readme-ja_jp.md) | Русский
4
+
5
+ ![][cover]
6
+
7
+ Мобайл-френдли интерфейс, поддержка множества API (KoboldAI/CPP, Horde, NovelAI, Ooba, OpenAI, OpenRouter, Claude, Scale), ВН-образный режим Вайфу, Stable Diffusion, TTS, поддержка миров (лорбуков), кастомизируемый UI, автоперевод, тончайшая настройка промптов + возможность устанавливать расширения.
8
+
9
+ Основано на форке [TavernAI](https://github.com/TavernAI/TavernAI) версии 1.2.8
10
+
11
+ ## Важные новости!
12
+
13
+ 1. Чтобы помочь вам быстрее разобраться в SillyTavern, мы создали [сайт с документацией](https://docs.sillytavern.app/). Ответы на большинство вопросов можно найти там.
14
+
15
+ 2. Почему пропали расширения после апдейта? Начиная с версии 1.10.6, большинство встроенных расширений были конвертированы в формат загружаемых аддонов. Их можно установить обратно через меню "Download Extensions and Assets" на панели расширений (значок с тремя кубиками сверху).
16
+
17
+ 3. Не поддерживается следующая платформа: android arm LEtime-web. 32-битный Android требует внешнюю зависимость, которую нельзя установить посредством npm. Для её установки потребуется следующая команда: `pkg install esbuild`. После этого продолжайте установку по общей инструкции.
18
+
19
+ ### Разрабатывается Cohee, RossAscends и всем сообществом SillyTavern
20
+
21
+ ### Что такое SillyTavern и TavernAI?
22
+
23
+ SillyTavern — это интерфейс, который устанавливается на ПК (и на Android), который даёт возможность общаться с генеративным ИИ и чатиться/ролеплеить с вашими собственными персонажами или персонажами других пользователей.
24
+
25
+ SillyTavern — это форк версии TavernAI 1.2.8, который разрабатывается более активно и имеет множество новых функций. Сейчас уже можно сказать, что это две отдельные и абсолютно самостоятельные программы.
26
+
27
+ ## Скриншоты
28
+
29
+ <img width="400" alt="image" src="https://github.com/SillyTavern/SillyTavern/assets/61471128/e902c7a2-45a6-4415-97aa-c59c597669c1">
30
+ <img width="400" alt="image" src="https://github.com/SillyTavern/SillyTavern/assets/61471128/f8a79c47-4fe9-4564-9e4a-bf247ed1c961">
31
+
32
+ ### Ветки
33
+
34
+ SillyTavern разрабатывается в двух ветках, чтобы всем категориям пользователей было удобно.
35
+
36
+ * release -🌟 **Рекомендовано для большинства пользователей.** Самая стабильная ветка, рекомендуем именно её. Обновляется только в момент крупных релизов. Подходит для большей части пользователей.
37
+ * staging - ⚠️ **Не рекомендуется для повседневного использования.** В этой ветке весь самый свежий и новый функционал, но будьте аккуратны, поскольку сломаться может в любом месте и в любое время. Только для продвинутых пользователей и энтузиастов.
38
+
39
+ Если вы не умеете обращаться с git через командную строку, или не знаете, что такое ветка, то не переживайте! Наилучшим вариантом всегда остаётся ветка release.
40
+
41
+ ### Что ещё нужно, кроме SillyTavern?
42
+
43
+ Сама по себе SillyTavern бесполезна, ведь это просто интерфейс. Вам потребуется доступ к бэкенду с ИИ, который и будет отыгрывать выбранного вами персонажа. Поддерживаются разные виды бэкендов: OpenAPI API (GPT), KoboldAI (локально или на Google Colab), и многое другое. Больше информации в [FAQ](https://docs.sillytavern.app/usage/faq/).
44
+
45
+ ### Требуется ли для SillyTavern мощный ПК?
46
+
47
+ SillyTavern — это просто интерфейс, поэтому запустить его можно на любой картошке. Мощным должен быть бэкенд с ИИ.
48
+
49
+ ## Есть вопросы или предложения?
50
+
51
+ ### У нас появился сервер в Discord
52
+
53
+ | [![][discord-shield-badge]][discord-link] | [Вступайте в наше Discord-сообщество!](https://discord.gg/sillytavern) Задавайте вопросы, делитесь любимыми персонажами и промптами. |
54
+ | :---------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |
55
+
56
+ Также можно написать разработчикам напрямую:
57
+
58
+ * Discord: cohee или rossascends
59
+ * Reddit: [/u/RossAscends](https://www.reddit.com/user/RossAscends/) или [/u/sillylossy](https://www.reddit.com/user/sillylossy/)
60
+ * [Запостить issue на GitHub](https://github.com/SillyTavern/SillyTavern/issues)
61
+
62
+ ## Эта версия включает
63
+
64
+ * Глубоко переработанную TavernAI 1.2.8 (переписано и оптимизировано более 50% кода)
65
+ * Свайпы
66
+ * Групповые чаты: комнаты для нескольких ботов, где персонажи могут говорить друг с другом и с вами
67
+ * Чекпоинты и ветки для чатов
68
+ * Продвинутые настройки для KoboldAI / TextGen со множеством созданных сообществом пресетов
69
+ * Поддержка миров (функция "Информация о мире" / WorldInfo): создавайте свой богатый лор, или экономьте токены для карточек персонажей
70
+ * Соединение через [OpenRouter](https://openrouter.ai) для разных API (Claude, GPT-4/3.5 и других)
71
+ * Соединение с API [Oobabooga's TextGen WebUI](https://github.com/oobabooga/text-generation-webui)
72
+ * Соединение с [AI Horde](https://horde.koboldai.net/)
73
+ * Настройку форматирования промптов
74
+
75
+ ## Расширения
76
+
77
+ SillyTavern поддерживает расширения, при этом некоторые из ИИ-модулей работают через [SillyTavern Extras API](https://github.com/SillyTavern/SillyTavern-extras)
78
+
79
+ * Заметки автора / Смещение характера
80
+ * Эмоции для персонажей (спрайты)
81
+ * Автоматический саммарайз (краткий пересказ) истории чата
82
+ * Возможность отправить в чат картинку, которую ИИ сможет рассмотреть и понять
83
+ * Генерация картинок в Stable Diffusion (5 пресетов для чата, плюс свободный режим)
84
+ * Text-to-speech для сообщений ИИ (с помощью ElevenLabs, Silero, или родной TTS вашей ОС)
85
+
86
+ Полный список расширений и инструкций к ним можно найти в [документации](https://docs.sillytavern.app/).
87
+
88
+ ## Улучшения от RossAscends для UI/CSS/общего удобства
89
+
90
+ * Мобильный интерфейс адаптирован для iOS, добавлена возможность сохранить ярлык на главный экран и открыть приложение в полноэкранном режиме.
91
+ * Горячие клавиши
92
+ * Up = Редактировать последнее сообщение в чате
93
+ * Ctrl+Up = Редактировать ВАШЕ последнее сообщение в чате
94
+ * Left = свайп влево
95
+ * Right = свайп вправо (ОБРАТИТЕ ВНИМАНИЕ: когда в окне ввода что-то напечатано, клавиши для свайпа не работают)
96
+ * Ctrl+Left = посмотреть локальные переменные (в консоли браузера)
97
+ * Enter (при нахождении внутри окна ввода) = отправить ваше сообщение ИИ
98
+ * Ctrl+Enter = Повторная генерация последнего ответа ИИ
99
+
100
+ * Страница больше не перезагружается при смене имени пользователя или удалении персонажа
101
+
102
+ * Отключаемая возможность автоматически соединяться с API при загрузке страницы.
103
+ * Отключаемая возможность автоматически загружать последнего открытого персонажа при загрузке страницы.
104
+ * Улучшенный счётчик токенов - работает с несохранёнными персонажами, отображает и перманентные, и временные токены
105
+
106
+ * Улучшенный менеджер чатов
107
+ * Файлы с новыми чатами получают читабельные названия вида "(персонаж) - (когда создано)"
108
+ * Увеличен размер превью чата с 40 символов до 300.
109
+ * Несколько вариантов сортировки списка персонажей (по имени, дате создания, размеру чата).
110
+
111
+ * Панели настроек слева и справа автоматически скрываются, если щёлкнуть за их пределы.
112
+ * При нажатии на значок замка навигационная панель будет закреплена на экране, и эта настройка сохранится между сессиями
113
+ * Сам статус панели (открыта или закрыта) также сохраняется между сессиями
114
+
115
+ * Кастомизируемый интерфейс чата:
116
+ * Настройте звук при получении нового ответа
117
+ * Переключайтесь между круглыми и прямоугольными аватарками
118
+ * Увеличенное вширь окно чата для стационарных ПК
119
+ * Возможность включать полупрозрачные панели, стилизованные под стекло
120
+ * Настраиваемые цвета для обычного текста, курсива, цитат
121
+ * Настраиваемый цвет фона и интенсивность размытия
122
+
123
+ # ⌛ Установка
124
+
125
+ > **Внимание!**
126
+ > * НЕ УСТАНАВЛИВАЙТЕ В ПАПКИ, КОТОРЫЕ КОНТРОЛИРУЕТ WINDOWS (Program Files, System32 и т.п.).
127
+ > * НЕ ЗАПУСКАЙТЕ START.BAT С ПРАВАМИ АДМИНИСТРАТОРА
128
+ > * УСТАНОВКА НА WINDOWS 7 НЕВОЗМОЖНА ИЗ-ЗА ОТСУТСТВИЯ NODEJS 18.16
129
+
130
+ ## 🪟 Windows
131
+
132
+ ## Установка через Git
133
+ 1. Установите [NodeJS](https://nodejs.org/en) (рекомендуется последняя LTS-версия)
134
+ 2. Установите [Git for Windows](https://gitforwindows.org/)
135
+ 3. Откройте Проводник (`Win+E`)
136
+ 4. Перейдите в папку, которую не контролирует Windows, или создайте её. (пример: C:\MySpecialFolder\)
137
+ 5. Откройте командную строку. Для этого нажмите на адресную строку (сверху), введите `cmd` и нажмите Enter.
138
+ 6. Когда появится чёрное окошко (командная строка), введите ОДНУ из перечисленных ниже команд:
139
+
140
+ - для ветки release: `git clone https://github.com/SillyTavern/SillyTavern -b release`
141
+ - для ветки staging: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
142
+
143
+ 7. Когда клонирование закончится, дважды щёлкните по `Start.bat`, чтобы установить зависимости для NodeJS.
144
+ 8. После этого сервер запустится, и SillyTavern откроется в вашем браузере.
145
+
146
+ ## Установка с помощью SillyTavern Launcher
147
+ 1. Установите [Git for Windows](https://gitforwindows.org/)
148
+ 2. Откройте Проводник (`Win+E`) и создайте или выберите папку, в которую будет установлен лаунчер
149
+ 3. Откройте командную строку. Для этого нажмите на адресную строку (сверху), введите `cmd` и нажмите Enter.
150
+ 4. Когда появится чёрное окошко, введите следующую команду: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
151
+ 5. Дважды щёлкните по `installer.bat` и выберите, что именно хотите установить
152
+ 6. После завершения установки дважды щёлкните по `launcher.bat`
153
+
154
+ ## Установка с помощью GitHub Desktop
155
+ (Тут речь про git **только** в рамках GitHub Desktop, если хотите использовать `git` в командной строке, вам также понадобится [Git for Windows](https://gitforwindows.org/))
156
+ 1. Установите [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
157
+ 2. Установите [GitHub Desktop](https://central.github.com/deployments/desktop/desktop/latest/win32)
158
+ 3. После завершения установки GitHub Desktop, нажмите `Clone a repository from the internet....` (обратите внимание: для этого шага **НЕ требуется** аккаунт на GitHub)
159
+ 4. В меню перейдите на вкладку URL, введите адрес `https://github.com/SillyTavern/SillyTavern`, и нажмите Clone. В поле Local path можно изменить директорию, в которую будет загружена SillyTavern.
160
+ 6. Чтобы запустить SillyTavern, откройте Проводник и перейдите в выбранную на предыдущем шаге папку. По умолчанию репозиторий будет склонирован сюда: `C:\Users\[Имя пользователя]\Documents\GitHub\SillyTavern`
161
+ 7. Дважды щёлкните по файлу `start.bat`. (обратите внимание: окончание `.bat` может быть скрыто настройками вашей ОС. Таким образом, имя файла будет выглядеть как "`Start`". Дважды щёлкните по нему, чтобы запустить SillyTavern)
162
+ 8. После того, как вы дважды щёлкнули по файлу, должно открыться чёрное окошко, и SillyTavern начнёт устанавливать свои зависимости.
163
+ 9. Если установка прошла успешно, то в командной строке будет вот такое, а в браузере откроется вкладка с SillyTavern:
164
+ 10. Подключайтесь к любому из [поддерживаемых API](https://docs.sillytavern.app/usage/api-connections/) и начинайте переписку!
165
+
166
+ ## 🐧 Linux и 🍎 MacOS
167
+
168
+ В MacOS и Linux всё это делается через Терминал.
169
+
170
+ 1. Установите git и nodeJS (как именно - зависит от вашей ОС)
171
+ 2. Клонируйте репозиторий
172
+
173
+ - для ветки release: `git clone https://github.com/SillyTavern/SillyTavern -b release`
174
+ - для ветки staging: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
175
+
176
+ 3. Перейдите в папку установки с помощью `cd SillyTavern`.
177
+ 4. Запустите скрипт `start.sh` с помощью одной из команд:
178
+
179
+ - `./start.sh`
180
+ - `bash start.sh`
181
+
182
+ ## Установка с помощью SillyTavern Launcher
183
+
184
+ ### Для пользователей Linux
185
+ 1. Откройте любимый терминал и установите git
186
+ 2. Загрузите Sillytavern Launcher с помощью команды: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
187
+ 3. Перейдите в SillyTavern-Launcher: `cd SillyTavern-Launcher`
188
+ 4. Запустите лаунчер установки: `chmod +x install.sh && ./install.sh`, затем выберите, что конкретно хотите установить
189
+ 5. После завершения установки, запустите лаунчер следующей командой: `chmod +x launcher.sh && ./launcher.sh`
190
+
191
+ ### Для пользователей Mac
192
+ 1. Откройте терминал и установите brew: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
193
+ 2. Затем установите git: `brew install git`
194
+ 3. Загрузите Sillytavern Launcher: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
195
+ 4. Перейдите в SillyTavern-Launcher: `cd SillyTavern-Launcher`
196
+ 5. Запустите лаунчер установки: `chmod +x install.sh && ./install.sh` and choose what you wanna install
197
+ 6. После завершения установки, запустите лаунчер следующей командой: `chmod +x launcher.sh && ./launcher.sh`
198
+
199
+ ## 📱 Мобильные устройства - Установка при помощи termux
200
+
201
+ > **ОБРАТИТЕ ВНИМАНИЕ!**
202
+ >
203
+ > **На Android-телефонах SillyTavern можно запускать нативно посредством Termux. Обратитесь к гайду, написанному ArroganceComplex#2659:**
204
+ >
205
+ > * <https://rentry.org/STAI-Termux>
206
+
207
+
208
+ ## Управление ключами от API
209
+
210
+ SillyTavern сохраняет ключи от ваших API в файле `secrets.json` в папке на сервере.
211
+
212
+ По умолчанию, ключи не будут отображаться на фронте после их ввода и перезагрузки страницы.
213
+
214
+ Чтобы включить возможность отображения ключей путём нажатия кнопки в блоке API:
215
+
216
+ 1. Зайдите в файл `config.yaml` и установите `allowKeysExposure` в положение `true`.
217
+ 2. Перезапустите сервер SillyTavern.
218
+
219
+ ## Удалённое подключение
220
+
221
+ В основном этим пользуются тогда, когда хотят использовать SillyTavern с телефона, запустив сервер SillyTavern на стационарном ПК в той же Wi-Fi-сети.
222
+
223
+ Однако это позволит подключаться откуда угодно, а не только вам.
224
+
225
+ **ВАЖНО: в SillyTavern не предусмотрена возможность использования программы несколькими людьми. Поэтому любой, кто подключится к вашему серверу, получит доступ ко всем вашим персонажам и чатам, а также сможет менять настройки через UI.**
226
+
227
+ ### 1. Заведение "белого списка" IP-адресов
228
+
229
+ * Создайте в корневой папке SillyTavern файл с названием `whitelist.txt`.
230
+ * Откройте файл в текстовом редакторе и внесите список IP-адресов, с которых хотите разрешить подключение.
231
+
232
+ *Принимаются как обычные IP-адреса, так и целые диапазоны, размеченные с помощью астериска. Примеры:*
233
+
234
+ ```txt
235
+ 192.168.0.1
236
+ 192.168.0.20
237
+ ```
238
+
239
+ или
240
+
241
+ ```txt
242
+ 192.168.0.*
243
+ ```
244
+
245
+ (диапазон из примера сверху позволит подключаться всем устройствам в локальной сети)
246
+
247
+ Также принимаются маски CIDR (вида 10.0.0.0/24).
248
+
249
+ * Сохраните файл `whitelist.txt`.
250
+ * Перезапустите сервер ST.
251
+
252
+ После этого устройства из белого списка смогут подключаться к вашему серверу.
253
+
254
+ *Обратите внимание: в файле `config.yaml` также имеется массив `whitelist`, который работает по тому же принципу. Однако если существует файл `whitelist.txt`, то этот массив игнорируется.*
255
+
256
+ ### 2. Получение IP хост-машины с ST
257
+
258
+ После настройки белого списка адресов, следующим шагом будет получение IP-адреса хост-машины, на которой запущена SillyTavern.
259
+
260
+ Если хост-машина находится в той же Wi-Fi-сети, то можно воспользоваться её внутренним Wi-Fi-IP-адресом:
261
+
262
+ * На Windows: нажмите Пуск > введите `cmd.exe` в поиске > в консоли введите команду `ipconfig` и нажмите Enter > найдите пункт `IPv4-адрес`.
263
+
264
+ Если вы (или кто-то другой) хотите подключаться к хост-машине из другой сети, то вам понадобится ваш публичный IP-адрес.
265
+
266
+ * Откройте [эту страницу](https://whatismyipaddress.com/) с вашей хост-машины и найдите пункт `IPv4`. На этот адрес и будет подключаться удалённое устройство.
267
+
268
+ ### 3. Соединить удалённое устройство с хост-машиной ST
269
+
270
+ Какой бы IP-адрес вы ни выбрали, вам нужно будет вводить его в адресной строке браузера вашего удалённого устройства.
271
+
272
+ Обычный адрес хост-машины, находящейся в той же Wi-Fi-сети, выглядит примерно так:
273
+
274
+ `http://192.168.0.5:8000`
275
+
276
+ НЕ используйте https://
277
+ Только http://
278
+
279
+ ### Открытие доступа до ST для всех IP-адресов
280
+
281
+ Мы не рекомендуем так делать, но вы можете открыть файл `config.yaml` и изменить `whitelistMode` на `false`.
282
+
283
+ Обязательно нужно удалить (или переименовать) файл `whitelist.txt`, если такой файл есть в корневой директории SillyTavern.
284
+
285
+ Эта практика считается небезопасной, поэтому, если вы решите так сделать, мы попросим вас установить логин и пароль.
286
+
287
+ Оба этих параметра настраиваются в `config.yaml` (username и password).
288
+
289
+ Останется только перезапустить сервер ST, и после этого к вам сможет подключиться любой пользователь вне зависимости от IP-адреса его устройства. Главное, чтобы он знал логин и пароль.
290
+
291
+ ### Не получается соединиться?
292
+
293
+ * Создайте входящее/исходящее правило в вашем фаерволле для порта, указанного в `config.yaml`. НЕ ПУТАЙТЕ этот процесс с пробросом портов на роутере. Если по ошибке перепутаете, то на ваш сервер сможет забраться посторонний человек и украсть ваши логи, этого следует избегать.
294
+ * Переключите Сетевой профиль на значение "Частные". Для этого зайдите в Параметры > Сеть и Интернет > Ethernet. КРАЙНЕ важно для Windows 11, без этого не получится подключиться даже с правилом фаервола.
295
+
296
+ ## Проблемы с производительностью?
297
+
298
+ Попробуйте включить опцию "Отключить эффект размытия" в меню "Пользовательские настройки".
299
+
300
+ ## Нравится ваш проект! Как помочь?
301
+
302
+ ### ЧТО ДЕЛАТЬ
303
+
304
+ 1. Присылайте пулл реквесты
305
+ 2. Присылайте идеи и баг-репорты, оформленные по установленным шаблонам
306
+ 3. Прежде чем задавать вопросы, прочтите readme и документацию
307
+
308
+ ### ЧЕГО НЕ ДЕЛАТЬ
309
+
310
+ 1. Предлагать донаты
311
+ 2. Присылать баг-репорты безо всякого контекста
312
+ 3. Задавать вопросы, на которые уже отвечали
313
+
314
+ ## Где найти старые фоны?
315
+
316
+ Мы двигаемся в сторону 100% уникальности всего используемого контента, поэтому старые фоны были убраны из репозитория.
317
+
318
+ Они отправлены в архив, скачать их можно здесь:
319
+
320
+ <https://files.catbox.moe/1xevnc.zip>
321
+
322
+
323
+
324
+
325
+ ## Авторы и лицензии
326
+
327
+ **Мы надеемся, что эта программа принесёт людям пользу,
328
+ но мы не даём НИКАКИХ ГАРАНТИЙ; мы ни в коем случае не гарантируем того,
329
+ что программа СООТВЕТСТВУЕТ КАКИМ-ЛИБО КРИТЕРИЯМ или ПРИГОДНА ДЛЯ КАКОЙ-ЛИБО ЦЕЛИ.
330
+ Подробнее можно узнать в GNU Affero General Public License.**
331
+
332
+ * Базовая TAI от Humi: Лицензия неизвестна
333
+ * Модификации от Cohee и производная кодовая база: AGPL v3
334
+ * Дополнения RossAscends: AGPL v3
335
+ * Кусочки TavernAITurbo мода от CncAnon: Лицензия неизвестна
336
+ * Различные коммиты и предложения от kingbri (<https://github.com/bdashore3>)
337
+ * Расширения и внедрение разного рода удобств - city_unit (<https://github.com/city-unit>)
338
+ * Различные коммиты и баг-репорты от StefanDanielSchwarz (<https://github.com/StefanDanielSchwarz>)
339
+ * Режим Вайфу вдохновлён работой PepperTaco (<https://github.com/peppertaco/Tavern/>)
340
+ * Благодарность Pygmalion University за прекрасную работу по тестированию и за все предлагаемые крутые фичи!
341
+ * Благодарность oobabooga за компиляцию пресетов для TextGen
342
+ * Пресеты для KoboldAI из KAI Lite: <https://lite.koboldai.net/>
343
+ * Шрифт Noto Sans от Google (OFL license)
344
+ * Тема Font Awesome <https://fontawesome.com> (Иконки: CC BY 4.0, Шрифты: SIL OFL 1.1, Код: MIT License)
345
+ * Клиентская библиотека для AI Horde от ZeldaFan0225: <https://github.com/ZeldaFan0225/ai_horde>
346
+ * Пусковой скрипт для Linux от AlpinDale
347
+ * Благодарность paniphons за оформление документа с FAQ
348
+ * Фон в честь 10 тысяч пользователей в Discord от @kallmeflocc
349
+ * Стандартный контент (персонажи и лорбуки) предоставлен пользователями @OtisAlejandro, @RossAscends и @kallmeflocc
350
+ * Корейский перевод от @doloroushyeonse
351
+ * Поддержка k_euler_a для Horde от <https://github.com/Teashrock>
352
+ * Китайский перевод от [@XXpE3](https://github.com/XXpE3), 中文 ISSUES 可以联系 @XXpE3
353
+
354
+ <!-- LINK GROUP -->
355
+ [back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square
356
+ [cover]: https://github.com/SillyTavern/SillyTavern/assets/18619528/c2be4c3f-aada-4f64-87a3-ae35a68b61a4
357
+ [discord-link]: https://discord.gg/sillytavern
358
+ [discord-shield]: https://img.shields.io/discord/1100685673633153084?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square
359
+ [discord-shield-badge]: https://img.shields.io/discord/1100685673633153084?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=for-the-badge
@@ -1,4 +1,4 @@
1
- [English](readme.md) | 中文 | [日本語](readme-ja_jp.md)
1
+ [English](readme.md) | 中文 | [日本語](readme-ja_jp.md) | [Русский](readme-ru_ru.md)
2
2
 
3
3
  ![image](https://github.com/SillyTavern/SillyTavern/assets/18619528/c2be4c3f-aada-4f64-87a3-ae35a68b61a4)
4
4
 
package/.github/readme.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <a name="readme-top"></a>
2
2
 
3
- English | [中文](readme-zh_cn.md) | [日本語](readme-ja_jp.md)
3
+ English | [中文](readme-zh_cn.md) | [日本語](readme-ja_jp.md) | [Русский](readme-ru_ru.md)
4
4
 
5
5
  ![][cover]
6
6
 
@@ -9,10 +9,14 @@ on:
9
9
  schedule:
10
10
  # Build the staging image everyday at 00:00 UTC
11
11
  - cron: "0 0 * * *"
12
+ push:
13
+ # Temporary workaround
14
+ branches:
15
+ - release
12
16
 
13
17
  env:
14
18
  # This should allow creation of docker images even in forked repositories
15
- IMAGE_NAME: ${{ github.repository }}
19
+ REPO: ${{ github.repository }}
16
20
  REGISTRY: ghcr.io
17
21
 
18
22
  jobs:
@@ -20,21 +24,34 @@ jobs:
20
24
  runs-on: ubuntu-latest
21
25
 
22
26
  steps:
27
+ # Workaround for GitHub repo names containing uppercase characters
28
+ - name: Set lowercase repo name
29
+ run: |
30
+ echo "IMAGE_NAME=${REPO,,}" >> ${GITHUB_ENV}
31
+
23
32
  # Using the following workaround because currently GitHub Actions
24
33
  # does not support logical AND/OR operations on triggers
25
34
  # It's currently not possible to have `branches` under the `schedule` trigger
26
- - name: Checkout the release branch
27
- if: ${{ github.event_name == 'release' }}
28
- uses: actions/checkout@v3
35
+ - name: Checkout the release branch (on release)
36
+ if: ${{ github.event_name == 'release' || github.event_name == 'push' }}
37
+ uses: actions/checkout@v4.1.2
29
38
  with:
30
39
  ref: "release"
31
40
 
32
41
  - name: Checkout the staging branch
33
42
  if: ${{ github.event_name == 'schedule' }}
34
- uses: actions/checkout@v3
43
+ uses: actions/checkout@v4.1.2
35
44
  with:
36
45
  ref: "staging"
37
46
 
47
+ # Get current branch name
48
+ # This is also part of the workaround for Actions not allowing logical
49
+ # AND/OR operators on triggers
50
+ # Otherwise the action triggered by schedule always has ref_name = release
51
+ - name: Get the current branch name
52
+ run: |
53
+ echo "BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)" >> ${GITHUB_ENV}
54
+
38
55
  # Setting up QEMU for multi-arch image build
39
56
  - name: Set up QEMU
40
57
  uses: docker/setup-qemu-action@v3
@@ -47,7 +64,7 @@ jobs:
47
64
  id: metadata
48
65
  with:
49
66
  images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
50
- tags: ${{ github.ref_name }}
67
+ tags: ${{ env.BRANCH_NAME }}
51
68
 
52
69
  # Login into package repository as the person who created the release
53
70
  - name: Log in to the Container registry
package/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM node:19.1.0-alpine3.16
1
+ FROM node:lts-alpine3.18
2
2
 
3
3
  # Arguments
4
4
  ARG APP_HOME=/home/node/app
@@ -26,19 +26,9 @@ COPY . ./
26
26
 
27
27
  # Copy default chats, characters and user avatars to <folder>.default folder
28
28
  RUN \
29
- IFS="," RESOURCES="assets,backgrounds,user,context,instruct,QuickReplies,movingUI,themes,characters,chats,groups,group chats,User Avatars,worlds,OpenAI Settings,NovelAI Settings,KoboldAI Settings,TextGen Settings" && \
30
- \
31
- echo "*** Store default $RESOURCES in <folder>.default ***" && \
32
- for R in $RESOURCES; do mv "public/$R" "public/$R.default"; done || true && \
33
- \
34
- echo "*** Create symbolic links to config directory ***" && \
35
- for R in $RESOURCES; do ln -s "../config/$R" "public/$R"; done || true && \
36
- \
37
- rm -f "config.yaml" "public/settings.json" || true && \
29
+ rm -f "config.yaml" || true && \
38
30
  ln -s "./config/config.yaml" "config.yaml" || true && \
39
- ln -s "../config/settings.json" "public/settings.json" || true && \
40
- mkdir "config" || true && \
41
- mkdir -p "public/user" || true
31
+ mkdir "config" || true
42
32
 
43
33
  # Cleanup unnecessary files
44
34
  RUN \
package/config.yaml CHANGED
@@ -1,8 +1,12 @@
1
- # -- NETWORK CONFIGURATION --
1
+ # -- DATA CONFIGURATION --
2
+ # Root directory for user data storage
3
+ dataRoot: ./data
4
+ # -- SERVER CONFIGURATION --
2
5
  # Listen for incoming connections
3
6
  listen: false
4
7
  # Server port
5
8
  port: 8000
9
+ # -- SECURITY CONFIGURATION --
6
10
  # Toggle whitelist mode
7
11
  whitelistMode: true
8
12
  # Whitelist of allowed IP addresses
@@ -16,7 +20,15 @@ basicAuthUser:
16
20
  password: "password"
17
21
  # Enables CORS proxy middleware
18
22
  enableCorsProxy: false
19
- # Disable security checks - NOT RECOMMENDED
23
+ # Enable multi-user mode
24
+ enableUserAccounts: false
25
+ # Enable discreet login mode: hides user list on the login screen
26
+ enableDiscreetLogin: false
27
+ # Used to sign session cookies. Will be auto-generated if not set
28
+ cookieSecret: ''
29
+ # Disable CSRF protection - NOT RECOMMENDED
30
+ disableCsrfProtection: false
31
+ # Disable startup security checks - NOT RECOMMENDED
20
32
  securityOverride: false
21
33
  # -- ADVANCED CONFIGURATION --
22
34
  # Open the browser automatically
@@ -1,8 +1,12 @@
1
- # -- NETWORK CONFIGURATION --
1
+ # -- DATA CONFIGURATION --
2
+ # Root directory for user data storage
3
+ dataRoot: ./data
4
+ # -- SERVER CONFIGURATION --
2
5
  # Listen for incoming connections
3
6
  listen: false
4
7
  # Server port
5
8
  port: 8000
9
+ # -- SECURITY CONFIGURATION --
6
10
  # Toggle whitelist mode
7
11
  whitelistMode: true
8
12
  # Whitelist of allowed IP addresses
@@ -16,7 +20,15 @@ basicAuthUser:
16
20
  password: "password"
17
21
  # Enables CORS proxy middleware
18
22
  enableCorsProxy: false
19
- # Disable security checks - NOT RECOMMENDED
23
+ # Enable multi-user mode
24
+ enableUserAccounts: false
25
+ # Enable discreet login mode: hides user list on the login screen
26
+ enableDiscreetLogin: false
27
+ # Used to sign session cookies. Will be auto-generated if not set
28
+ cookieSecret: ''
29
+ # Disable CSRF protection - NOT RECOMMENDED
30
+ disableCsrfProtection: false
31
+ # Disable startup security checks - NOT RECOMMENDED
20
32
  securityOverride: false
21
33
  # -- ADVANCED CONFIGURATION --
22
34
  # Open the browser automatically