- The first macro evaluation occurs when the entry is activated.
- The second macro evaluation occurs after the regex replacement
* and only when the entry is before or after the char definition
this may cause confusion for users.
I'm not sure if this is the right thing to do, but it's one way I can think of to make all this make more sense.
* Throttle chat backups
* Throttle chat backups and apply backup interval throttling
- Added a new configuration option `chatBackupThrottleInterval` to the `config.yaml` file to specify the interval in milliseconds to throttle chat backups per user.
- Updated the `getBackupFunction` function in `chats.js` to use the `chatBackupThrottleInterval` value from the configuration file when creating a throttled backup function.
* Implement collection scopes for vector models
* Update makersuite-vectors.js to use Gemini API text-embedding-004 model
* Add model scope for Google vectors
* Fix purge log
* Refactor header setting
* Fix typo
* Only display UI warning if scopes disabled
* Remove i18n attribute
---------
Co-authored-by: ceruleandeep <83318388+ceruleandeep@users.noreply.github.com>
* Refactor instruct names behavior controls
Closes#2819
* Remove current persona from force names
* Don't add current user name in groups
* Revert to old text
* Add titles to names behavior
* Proper default for names_behavior
- Tied and only visible to the "delay until recursion" toggle
- Will set it to a numerical value if used, otherwise keeps true/false state of the toggle
* initial commit
* dont hijack all ctrl keybinds
* change strikethrough bind, convert to subscribable class, target key textareas
* better early return, hotkey reversiblility
* possible undo solution, key checks to switch
* execCommand alternate, perfect Undo
* format full word when caret is in the middle of a word
* double backticks do nothing, dummy.
* ctrl+K for ....'K'ode snippet...
* remove console logs
* Add new hotkeys to help
* Allow hotkeys in message edit textarea
* add markdown hotkey help text
* help text addition to mention hotkeys work in message edits
* add markdown hotkeys to WI entry content box
* disengage if alt/win pressed, universal prevent default
* disengage if shiftKey pressed
* re-allow shift for one special case
* add MD hotkeys toggle in user settings
* add markdown enabled icon on relevant textareas when appropriate
* Add icon to help
* Uniform formatting
* Add opacity to icon
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
- Fix empty checkpoint name on mes click to auto generate
- Change /checkpoint-create to not require name and auto generate
- Fix popup input type returning empty string instead of null on empty input field
- Adds the 'onclick' slash command arg to /echo
- It utilizes the Closure object without serialization, using the exact same scope it received on creation. Should be mindful about memory leaks and possible parallel execution.
Fixed an issue where the text inside the buttons in the API connection menu became vertically long and difficult to read in a multi-byte character environment.
Fixed an issue where the text inside the buttons in the API connection menu became vertically long and difficult to read in a multi-byte character environment.
- When a WI entry has sticky, and inclusion group and "delay until recursion" set, another entry from the same group might prevent the sticky from activating. This is fixed here.
- Instead of processing entries by default sorting (based on order and books (char first, etc)), sticky will now be the first to process. This will make sure that stickied entries will reach the prompt, even in budget-limited scenarios.
* WIP: Enable chatting without character selected
* Add burger menu item
* Neutral assistant chat space
* Revert "Neutral assistant chat space"
This reverts commit be2da4a629.
* Revert "Add burger menu item"
This reverts commit d4e8d990c1.
* Use simple ephemeral chats
* Only start a new assistant chat if not already in it
* Don't emit event not to clear pending files
* Allow edits, disable checkpoints and branches
* Exclude from tags, allow copy
* Allow hide/unhide
* Allow zooming avatar
* Suppress warning
* Rename neutral character
* Rename neutral back to Assistant
* Include slider for Max Recursion Depth
* Implement Behavior for Max Recursion Depth
* Title message correction
* Disabling min activations when max recursion depth is disabled and vice versa
* Feature renamed to Max Recursion Steps
* Added warnings that min activations and max recursion steps disable each other
* Revert "Added warnings that min activations and max recursion steps disable each other"
This reverts commit 8c7efd09c5.
* Revert "Feature renamed to Max Recursion Steps"
This reverts commit f043fe6b60.
* Revert "Disabling min activations when max recursion depth is disabled and vice versa"
This reverts commit a3a28874bf.
* Renames the feature to Max Recursion Steps and disables it when Min Activations are enabled
* Combine info-warnings, log stop condition
---------
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
* started adding v6 support
* added error checking and change messages to the user
* fixed lsp caused issue
* fixed formatting error
* added error handling to https
* fixed formatting errors
* brought server starting into different func and added enable v6 and v4
* added error checking for disabling both v6 and v4. added option to prefer v6 for dns. added that stuff to the default config
* fixed dumb bug
* changed to settings named disable ipvx
* fixed failed ips still showing as listening
* fixed error handling
* changed ip protocol config layout
* small const name changes
* fixed no error if only available protocol fails, and changed wording of some errors
* fixed error handling saying 'non-fatal error' for protocol fail even when it's the only one enabled
* moved more logic to listen error handler
* fixed eslint issues
* added more info on when to prefer ipv6 for dns
* in conf changed one 'ipv6' to 'IPv6' for consistency
* changed error message and redid how starting the server works
* removed unneeded log
* removed unneeded log
* removed unneeded comments
* fixed errors
* fixed errors
* fixed errors
* changed the wording of ip related error messages
* removed empty lines
* changed to .finally(startServer);
* removed some whitespace
* disabled ipv6 by default ╯︿╰ and changed some message wording
* added auto mode for autorun hostname and changed formatting for listening log and added goto message with autorun url
* added autorun port override
* removed debug log
* changed formatting
* added cli args to ipv6 and autorun stuff
* moved cli args around
* changed formatting
* changed colors for ip
* added avoidLocalhost cli arg
* changed formatting
* changed to not print protocol on listening
* added config option for avoid localhost and changed formatting of messages
* fixed avoid localhost config option
* Fix ipv4 color
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
- Only add group members as stopping strings if generating for a specific group member or user. (Allow slash commands to work around name stopping string restrictions)
* fix: fix llm expression classifier on group chats
* chore: adjust some things
* fix: exisiting chats defaulting to last character's sent message
* chore: use dual awaits than promise
* chore: restore allSettled and separate await call for llm only
* chore: move classification to generateRaw
* chore: remove characterId
* chore: revert some placements back to how they were
* chore: remove uneeded imports
* Update world-info.js
- make the rename button is also available in case of WIbook corruption.
- make the WI engine doesn't crash when certain entrys with `content === null`.
* Update zh-cn.json
* Part revert "Update world-info.js"
This part reverts commit 0693c9c400.
- On both skip and replace, tag map could run into issues with old IDs being referenced. Fixed that by building a mapping for the actual ID that will be the result.
parseTimestamp now returns an ISO 8601 string instead of a moment (currently, only timestampToMoment uses parseTimestamp)
timestampToMoment now does the parsed timestamp conversion itself
- Remove the carriage return from Key so that I18N will work properly in some browsers.
- Append two HTML files that will not actually be utilized so that the I18N tool will work properly.
- Add an event listener on document level that checks for focus events on input/textarea controls. If they have the class "auto-select" the content will be auto-selected
- WI entry updates utilize debounced save
- Trade-off between consistency of possible data loss and performance issues in STscript loops that update multiple things in a WI file are not worth it.
- Implement StructurecCloneMap, which is a map that provides structured clones on both get and set
- Don't delete WI cache on save, but update the cache
- Ensure that cache is updated immediately, so any future get will load the new saved data already
- Still be consistent with clones, so requested cache data that wasn't saved isn't taken into account
- Adds a button that automatically updates the "Order" values of entries based on the custom sorting order ("displayIndex")
- Shows popup to choose starting value, because it's descending (default: 100)
- shows warnings/errors if any issues appear with the value
- warning inside popup if more than 100 entries exist, and a higher value has to be chosen
- Implements #2533
- only run hljs with syntax enabled
- only check localStorage once, then rely on the checkbox
- run hljs on a 30fps loop instead of event-based
- use morphdom to update syntax dom instead of innerHTML
The code changes in `translate.js` update the language code for Chinese translations. The `zh-TW` language code is changed to `zt`. This ensures consistency and compatibility with the translation system(https://libretranslate.com/languages).
- Fixed height (to prevent bouncing and lag/performance issues due to constant resizing. Also looks nicer)
- Added "No icons found" empty text
- Slight rework of button callback
- Reset value/result on canceled closing
- Fix close event still firing and closing the popup on multiple close/cancel calls, even though it *shouldn't* have happened
- Remove manual removal of popup event listeners. Not needed, if they are only subscribed to controls inside the dialog or the dialog itself. That's cleaned up automatically. Is confusing otherwise anyway.
- export QR as JSON
- copy QR to clipboard
- cut QR (copy to clipboard and delete)
- transfer QR to other QR Set
- paste QR from clipboard
- import QR from JSON file
- add/paste/import buttons between existing QRs
There's no formal permissions checking in ST's UI, so add a temporary
check in the server endpoint before requesting a download.
Signed-off-by: kingbri <bdashore3@proton.me>
Tabby has a HuggingFace downloader API endpoint. Add direct support
in SillyTavern by using the same method as ollama, but with the correct
parameters exposed.
Signed-off-by: kingbri <bdashore3@proton.me>
- removing queue position from character object - storing in map in group_chat.js instead
- moving queue position to div
- moving '#' from js to css ::before
- adding option to settings
- cleaning up guards
* Validate story string about missing fields
* Update validation to only warn once
* Improve story string validation log once
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
> "break;" line had space before word. Oops.
> Stability hides steps, cfg, height, etc. when selected.
> Settings are loaded and saved.
> isValid state is modified now for Stability. Oops.
> Skips remote function for Stability.
* edit box performance "fix"
Note: jQuery makes an adjustment to height or scrollHeight that pure JavaScript doesn't;+2 was the minimum I needed to not get a vertical scrollbar, so I went with +4
* Refactor
* Use debounce instead of throttle
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
- New popup type "DISPLAY", for showing content with an X in the corner, without buttons
- Rework popup result controls to automatically support click (or other) events to close complete the popup
- Fix inline image icons/actions being keyboard interactable
- Switch inline image enlarge popup to new DISPLAY type
- Implements and resolves#2404
- Common CSS class for entities in char list
- entity flag to lower opacity for entities that aren't really useful for navigation
- Save "remember" setting of tag import popup
- Add user option to change the tag import setting
- Improve tag import popup with adding drilled down bogus folders as auto-added tags
- Extract tag import popup to template
- Force-open popup no matter the setting on char dropdown button option
- FIx /popup and /buttons commands to use the new popups
- Change /buttons to utilize data results
- Fix "hide while executing" option from QR editor
- Fix QR editor throwing an error on execution
- Switched dynamic styles to :focus-visible to let the browser decide when to display
- Changed most existing :focus CSS selectors to also use :focus-visible
-Made style variables for focus outlines (main and a faint one)
- Remove focus outline from chat bar buttons
- Fix focus of chat bar highlight, moved to outer border
- Fix buttons in chat backgrounds with keyboard navigation
* periodically calls the tts module when a paragraph has been generated
* adding option for periodic auto generation
* updating find end paragraph logic and config label
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
- Add CSS styling rule to still highlight a button on hover when it is being focused already (Otherwise you won't get any effect on hovering and clicking on the default button if a popup has just opened)
- Dynamic styles extended to ignore rules where both hover and focus is used
* set pipe to empty string on empty closure
* fix missing parser flags and scope
* add closure serializing
* add enum provider function to slash command arguments
* add enum providers for /bg, /ask, and /go
* fix index out of bounds returning undefined
* keep whitespace as is in mixed unnamed args (string+closure)
* add _hasUnnamedArgument to named arguments dictionary
* allow /var key=x retrieval
* add enum provider to /tag-add
* fix typo (case)
* add option to make enum matching optional
* add executor to enum provider
* change /tag-add enum provider to only show tags not already assigned
* add enum provider to /tag-remove
* fix name enum provider excluding groups
* remove void from slash command callback return types
* Lint undefined and null pipes
* enable pointer events in chat autocomplete
* fix type hint
---------
Co-authored-by: LenAnderson <Anderson.Len@outlook.com>
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
* add Noto Sans Mono as default monospace font
* fix ::selection for syntax highlighted editor
* add full noto sans mono
* add explicit "overflow: auto" to textarea to stop Firefox from freaking out
* add syntax hightlight disable toggle
* fix noto sans mono path
* fix details position on scroll
* disable pointer events on autocomplete wrap
* fix for Firefox bug using relative colors
* Shorten font file names.
So that I won't have to scroll the list horizontally
---------
Co-authored-by: LenAnderson <Anderson.Len@outlook.com>
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
- Add data attribute to the right nav panel for the currently open menu type
- JSDoc of possible menu_type values
- Refactor using the menu_type setter
- Remove legacy "settings" menu type, as that one is not part of those really
- Make ST-style buttons keyboard selectable
- Allow custom classes/selectors to be set as buttons too, with the same functionality (CSS selector-based)
- Observer to automatically add functionality to any button added to the DOM
- Allow buttons to not be selectable via 'disabled' or 'not_focusable'
- Need to pull my "wider" popup type from the other branch, because 1/1 aspect ratio scaling is just bad
- Add a few tailwind-like classes for ul-li styling
- Add <kbd> element styling for keyboard buttons
- Switch generic popups to actual <dialog> elements
- Move toastr settings from html to JS
- Add style variable for animation duration (to re-use in CSS)
- Remember focus of popup on stacking pop-up close to switch back to the element you started out in
- Fix keybinds of popups to only act on actual result-triggering controls
- Fix toastr appearing behind popups by dynamically moving the container inside the currently open dialog
- Improve autofocus on popup open
- Make cleaner and prettier popup animations, and tie them to the animation speed
-
Tabby now supports batching and the "n" parameter for both non-streaming
and streaming. Add this into SillyTavern.
Signed-off-by: kingbri <bdashore3@proton.me>
- Rework tag color pickers to... actually work without hacks
- Color picker default to main text color and tag default background. If default color is chosen, sets "empty" in tag, for possible style changes
- Fix tabbing on tag name in tag view list being broken
- Unique names on new tag click
- Several fixes on tags popups
- Animation utility functions (for popup, heh)
- Utility function to get free (unique) name
- Rework "import tags" dialog, providing options which tags to import, and rendering the tags there, for manual management
- Refactor tag list function to allow custom remove actions
- Refactor functions to allow adding of multiple tags at once
- Add "custom buttons" functionality, each with their own popup result
- Handle 'Enter' by defining a default action
- Using default action to style the default button to make the default action visible
- Allow override of ok/cancel button on any popup type to display those
- Allow multiple popups to overlay each other
- Small styling changes for bottom spacing on non-input popups
* Add reverse proxy support to Google MakerSuite.
* Remove hardcoded URLs for some Google MakerSuite API calls.
* Don't send real key to alt.endpoint
* Fix for image captioning
* Fix key validation
* +fix key check for mistral
* Fix caption key validation
* Fix tokenization endpoint use
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
- Refactor overwrite check to utility function
- Don't mind me refactoring character delete functions. I tried something, but I think the refactoring still makes sense
Speculative ngram allows for a different method of speculative
decoding. Using a draft model is still preferred.
Signed-off-by: kingbri <bdashore3@proton.me>
description:Report something that's not working the intended way. Support requests for external programs (reverse proxies, 3rd party servers, other peoples' forks) will be refused!
description:Report something that's not working the intended way. Support requests for external programs (reverse proxies, 3rd party servers, other peoples' forks) will be refused! Please use English only.
[English](readme.md) | [中文](readme-zh_cn.md) | [日本語](readme-ja_jp.md) | Русский
![][cover]
Мобайл-френдли интерфейс, поддержка множества API (KoboldAI/CPP, Horde, NovelAI, Ooba, OpenAI, OpenRouter, Claude, Scale), ВН-образный режим Вайфу, Stable Diffusion, TTS, поддержка миров (лорбуков), кастомизируемый UI, автоперевод, тончайшая настройка промптов + возможность устанавливать расширения.
Основано на форке [TavernAI](https://github.com/TavernAI/TavernAI) версии 1.2.8
## Важные новости!
1. Чтобы помочь вам быстрее разобраться в SillyTavern, мы создали [сайт с документацией](https://docs.sillytavern.app/). Ответы на большинство вопросов можно найти там.
2. Почему пропали расширения после апдейта? Начиная с версии 1.10.6, большинство встроенных расширений были конвертированы в формат загружаемых аддонов. Их можно установить обратно через меню "Download Extensions and Assets" на панели расширений (значок с тремя кубиками сверху).
3.Не поддерживается следующая платформа: android arm LEtime-web. 32-битный Android требует внешнюю зависимость, которую нельзя установить посредством npm. Для её установки потребуется следующая команда: `pkg install esbuild`. После этого продолжайте установку по общей инструкции.
### Разрабатывается Cohee, RossAscends и всем сообществом SillyTavern
### Что такое SillyTavern и TavernAI?
SillyTavern — это интерфейс, который устанавливается на ПК (и на Android), который даёт возможность общаться с генеративным ИИ и чатиться/ролеплеить с вашими собственными персонажами или персонажами других пользователей.
SillyTavern — это форк версии TavernAI 1.2.8, который разрабатывается более активно и имеет множество новых функций. Сейчас уже можно сказать, что это две отдельные и абсолютно самостоятельные программы.
SillyTavern разрабатывается в двух ветках, чтобы всем категориям пользователей было удобно.
* release -🌟 **Рекомендовано для большинства пользователей.** Самая стабильная ветка, рекомендуем именно её. Обновляется только в момент крупных релизов. Подходит для большей части пользователей.
* staging - ⚠️ **Не рекомендуется для повседневного использования.**В этой ветке весь самый свежий и новый функционал, но будьте аккуратны, поскольку сломаться может в любом месте и в любое время. Только для продвинутых пользователей и энтузиастов.
Если вы не умеете обращаться с git через командную строку, или не знаете, что такое ветка, то не переживайте! Наилучшим вариантом всегда остаётся ветка release.
### Что ещё нужно, кроме SillyTavern?
Сама по себе SillyTavern бесполезна, ведь это просто интерфейс. Вам потребуется доступ к бэкенду с ИИ, который и будет отыгрывать выбранного вами персонажа. Поддерживаются разные виды бэкендов: OpenAPI API (GPT), KoboldAI (локально или на Google Colab), и многое другое. Больше информации в [FAQ](https://docs.sillytavern.app/usage/faq/).
### Требуется ли для SillyTavern мощный ПК?
SillyTavern — это просто интерфейс, поэтому запустить его можно на любой картошке. Мощным должен быть бэкенд с ИИ.
## Есть вопросы или предложения?
### У нас появился сервер в Discord
| [![][discord-shield-badge]][discord-link] | [Вступайте в наше Discord-сообщество!](https://discord.gg/sillytavern) Задавайте вопросы, делитесь любимыми персонажами и промптами. |
* Reddit: [/u/RossAscends](https://www.reddit.com/user/RossAscends/) или [/u/sillylossy](https://www.reddit.com/user/sillylossy/)
* [Запостить issue на GitHub](https://github.com/SillyTavern/SillyTavern/issues)
## Эта версия включает
* Глубоко переработанную TavernAI 1.2.8 (переписано и оптимизировано более 50% кода)
* Свайпы
* Групповые чаты: комнаты для нескольких ботов, где персонажи могут говорить друг с другом и с вами
* Чекпоинты и ветки для чатов
* Продвинутые настройки для KoboldAI / TextGen со множеством созданных сообществом пресетов
* Поддержка миров (функция "Информация о мире" / WorldInfo): создавайте свой богатый лор, или экономьте токены для карточек персонажей
* Соединение через [OpenRouter](https://openrouter.ai) для разных API (Claude, GPT-4/3.5 и других)
* Соединение с API [Oobabooga's TextGen WebUI](https://github.com/oobabooga/text-generation-webui)
*Соединение с [AI Horde](https://horde.koboldai.net/)
*Настройку форматирования промптов
## Расширения
SillyTavern поддерживает расширения, при этом некоторые из ИИ-модулей работают через [SillyTavern Extras API](https://github.com/SillyTavern/SillyTavern-extras)
*Заметки автора / Смещение характера
*Эмоции для персонажей (спрайты)
*Автоматический саммарайз (краткий пересказ) истории чата
*Возможность отправить в чат картинку, которую ИИ сможет рассмотреть и понять
*Генерация картинок в Stable Diffusion (5 пресетов для чата, плюс свободный режим)
*Text-to-speech для сообщений ИИ (с помощью ElevenLabs, Silero, или родной TTS вашей ОС)
Полный список расширений и инструкций к ним можно найти в [документации](https://docs.sillytavern.app/).
## Улучшения от RossAscends для UI/CSS/общего удобства
* Мобильный интерфейс адаптирован для iOS, добавлена возможность сохранить ярлык на главный экран и открыть приложение в полноэкранном режиме.
* Горячие клавиши
* Up = Редактировать последнее сообщение в чате
*Ctrl+Up = Редактировать ВАШЕ последнее сообщение в чате
*Left = свайп влево
*Right = свайп вправо (ОБРАТИТЕ ВНИМАНИЕ: когда в окне ввода что-то напечатано, клавиши для свайпа не работают)
*Ctrl+Left = посмотреть локальные переменные (в консоли браузера)
*Enter (при нахождении внутри окна ввода) = отправить ваше сообщение ИИ
* Ctrl+Enter = Повторная генерация последнего ответа ИИ
* Страница больше не перезагружается при смене имени пользователя или удалении персонажа
* Отключаемая возможность автоматически соединяться с API при загрузке страницы.
*Отключаемая возможность автоматически загружать последнего открытого персонажа при загрузке страницы.
*Улучшенный счётчик токенов - работает с несохранёнными персонажами, отображает и перманентные, и временные токены
*Улучшенный менеджер чатов
*Файлы с новыми чатами получают читабельные названия вида "(персонаж) - (когда создано)"
*Увеличен размер превью чата с 40 символов до 300.
*Несколько вариантов сортировки списка персонажей (по имени, дате создания, размеру чата).
*Панели настроек слева и справа автоматически скрываются, если щёлкнуть за их пределы.
* При нажатии на значок замка навигационная панель будет закреплена на экране, и эта настройка сохранится между сессиями
*Сам статус панели (открыта или закрыта) также сохраняется между сессиями
*Кастомизируемый интерфейс чата:
*Настройте звук при получении нового ответа
*Переключайтесь между круглыми и прямоугольными аватарками
* Увеличенное вширь окно чата для стационарных ПК
*Возможность включать полупрозрачные панели, стилизованные под стекло
*Настраиваемые цвета для обычного текста, курсива, цитат
*Настраиваемый цвет фона и интенсивность размытия
# ⌛ Установка
> **Внимание!**
> * НЕ УСТАНАВЛИВАЙТЕ В ПАПКИ, КОТОРЫЕ КОНТРОЛИРУЕТ WINDOWS (Program Files, System32 и т.п.).
> * НЕ ЗАПУСКАЙТЕ START.BAT С ПРАВАМИ АДМИНИСТРАТОРА
> * УСТАНОВКАНА WINDOWS 7 НЕВОЗМОЖНА ИЗ-ЗА ОТСУТСТВИЯ NODEJS 18.16
## 🪟 Windows
## Установка через Git
1. Установите [NodeJS](https://nodejs.org/en) (рекомендуется последняя LTS-версия)
2. Установите [Git for Windows](https://gitforwindows.org/)
3. Откройте Проводник (`Win+E`)
4. Перейдите в папку, которую не контролирует Windows, или создайте её. (пример: C:\MySpecialFolder\)
5. Откройте командную строку. Для этого нажмите на адресную строку (сверху), введите `cmd` и нажмите Enter.
6. Когда появится чёрное окошко (командная строка), введите ОДНУ из перечисленных ниже команд:
- для ветки release: `git clone https://github.com/SillyTavern/SillyTavern -b release`
- для ветки staging: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
7. Когда клонирование закончится, дважды щёлкните по `Start.bat`, чтобы установить зависимости для NodeJS.
8. После этого сервер запустится, и SillyTavern откроется в вашем браузере.
## Установка с помощью SillyTavern Launcher
1. Установите [Git for Windows](https://gitforwindows.org/)
2. Откройте Проводник (`Win+E`) и создайте или выберите папку, в которую будет установлен лаунчер
3.Откройте командную строку. Для этого нажмите на адресную строку (сверху), введите `cmd` и нажмите Enter.
5.Дважды щёлкните по `installer.bat` и выберите, что именно хотите установить
6. После завершения установки дважды щёлкните по `launcher.bat`
## Установка с помощью GitHub Desktop
(Тут речь про git **только** в рамках GitHub Desktop, если хотите использовать `git` в командной строке, вам также понадобится [Git for Windows](https://gitforwindows.org/))
1.Установите [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
3. После завершения установки GitHub Desktop, нажмите `Clone a repository from the internet....` (обратите внимание: для этого шага **НЕ требуется** аккаунт на GitHub)
4.В меню перейдите на вкладку URL, введите адрес `https://github.com/SillyTavern/SillyTavern`, и нажмите Clone. В поле Local path можно изменить директорию, в которую будет загружена SillyTavern.
6.Чтобы запустить SillyTavern, откройте Проводник и перейдите в выбранную на предыдущем шаге папку. По умолчанию репозиторий будет склонирован сюда: `C:\Users\[Имя пользователя]\Documents\GitHub\SillyTavern`
7.Дважды щёлкните по файлу `start.bat`. (обратите внимание: окончание `.bat` может быть скрыто настройками вашей ОС. Таким образом, имя файла будет выглядеть как "`Start`". Дважды щёлкните по нему, чтобы запустить SillyTavern)
8.После того, как вы дважды щёлкнули по файлу, должно открыться чёрное окошко, и SillyTavern начнёт устанавливать свои зависимости.
9.Если установка прошла успешно, то в командной строке будет вот такое, а в браузере откроется вкладка с SillyTavern:
10.Подключайтесь к любому из [поддерживаемых API](https://docs.sillytavern.app/usage/api-connections/) и начинайте переписку!
## 🐧 Linux и 🍎 MacOS
В MacOS и Linux всё это делается через Терминал.
1. Установите git и nodeJS (как именно - зависит от вашей ОС)
2. Клонируйте репозиторий
- для ветки release: `git clone https://github.com/SillyTavern/SillyTavern -b release`
- для ветки staging: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
3. Перейдите в папку установки с помощью `cd SillyTavern`.
4. Запустите скрипт `start.sh`с помощью одной из команд:
-`./start.sh`
-`bash start.sh`
## Установка с помощью SillyTavern Launcher
### Для пользователей Linux
1. Откройте любимый терминал и установите git
2. Загрузите Sillytavern Launcher с помощью команды: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
3. Перейдите в SillyTavern-Launcher: `cd SillyTavern-Launcher`
4. Запустите лаунчер установки: `chmod +x install.sh && ./install.sh`, затем выберите, что конкретно хотите установить
5. После завершения установки, запустите лаунчер следующей командой: `chmod +x launcher.sh && ./launcher.sh`
4. Перейдите в SillyTavern-Launcher: `cd SillyTavern-Launcher`
5. Запустите лаунчер установки: `chmod +x install.sh && ./install.sh` and choose what you wanna install
6. После завершения установки, запустите лаунчер следующей командой: `chmod +x launcher.sh && ./launcher.sh`
## 📱 Мобильные устройства - Установка при помощи termux
> **ОБРАТИТЕ ВНИМАНИЕ!**
>
> **На Android-телефонах SillyTavern можно запускать нативно посредством Termux. Обратитесь к гайду, написанному ArroganceComplex#2659:**
>
> * <https://rentry.org/STAI-Termux>
## Управление ключами от API
SillyTavern сохраняет ключи от ваших API в файле `secrets.json` в папке на сервере.
По умолчанию, ключи не будут отображаться на фронте после их ввода и перезагрузки страницы.
Чтобы включить возможность отображения ключей путём нажатия кнопки в блоке API:
1. Зайдите в файл `config.yaml` и установите `allowKeysExposure` в положение `true`.
2. Перезапустите сервер SillyTavern.
## Удалённое подключение
В основном этим пользуются тогда, когда хотят использовать SillyTavern с телефона, запустив сервер SillyTavern на стационарном ПК в той же Wi-Fi-сети.
Однако это позволит подключаться откуда угодно, а не только вам.
**ВАЖНО: в SillyTavern не предусмотрена возможность использования программы несколькими людьми. Поэтому любой, кто подключится к вашему серверу, получит доступ ко всем вашим персонажам и чатам, а также сможет менять настройки через UI.**
### 1. Заведение "белого списка" IP-адресов
* Создайте в корневой папке SillyTavern файл с названием `whitelist.txt`.
* Откройте файл в текстовом редакторе и внесите список IP-адресов, с которых хотите разрешить подключение.
*Принимаются как обычные IP-адреса, так и целые диапазоны, размеченные с помощью астериска. Примеры:*
```txt
192.168.0.1
192.168.0.20
```
или
```txt
192.168.0.*
```
(диапазон из примера сверху позволит подключаться всем устройствам в локальной сети)
Также принимаются маски CIDR (вида 10.0.0.0/24).
* Сохраните файл `whitelist.txt`.
* Перезапустите сервер ST.
После этого устройства из белого списка смогут подключаться к вашему серверу.
*Обратите внимание: в файле `config.yaml` также имеется массив `whitelist`, который работает по тому же принципу. Однако если существует файл `whitelist.txt`, то этот массив игнорируется.*
### 2. Получение IP хост-машины с ST
После настройки белого списка адресов, следующим шагом будет получение IP-адреса хост-машины, на которой запущена SillyTavern.
Если хост-машина находится в той же Wi-Fi-сети, то можно воспользоваться её внутренним Wi-Fi-IP-адресом:
*На Windows: нажмите Пуск > введите `cmd.exe` в поиске > в консоли введите команду `ipconfig` и нажмите Enter > найдите пункт `IPv4-адрес`.
Если вы (или кто-то другой) хотите подключаться к хост-машине из другой сети, то вам понадобится ваш публичный IP-адрес.
* Откройте [эту страницу](https://whatismyipaddress.com/) с вашей хост-машины и найдите пункт `IPv4`. На этот адрес и будет подключаться удалённое устройство.
### 3. Соединить удалённое устройство с хост-машиной ST
Какой бы IP-адрес вы ни выбрали, вам нужно будет вводить его в адресной строке браузера вашего удалённого устройства.
Обычный адрес хост-машины, находящейся в той же Wi-Fi-сети, выглядит примерно так:
`http://192.168.0.5:8000`
НЕ используйте https://
Только http://
### Открытие доступа до ST для всех IP-адресов
Мы не рекомендуем так делать, но вы можете открыть файл `config.yaml` и изменить `whitelistMode` на `false`.
Обязательно нужно удалить (или переименовать) файл `whitelist.txt`, если такой файл есть в корневой директории SillyTavern.
Эта практика считается небезопасной, поэтому, если вы решите так сделать, мы попросим вас установить логин и пароль.
Оба этих параметра настраиваются в `config.yaml` (username и password).
Останется только перезапустить сервер ST, и после этого к вам сможет подключиться любой пользователь вне зависимости от IP-адреса его устройства. Главное, чтобы он знал логин и пароль.
### Не получается соединиться?
* Создайте входящее/исходящее правило в вашем фаерволле для порта, указанного в `config.yaml`. НЕ ПУТАЙТЕ этот процесс с пробросом портов на роутере. Если по ошибке перепутаете, то на ваш сервер сможет забраться посторонний человек и украсть ваши логи, этого следует избегать.
* Переключите Сетевой профиль на значение "Частные". Для этого зайдите в Параметры > Сеть и Интернет > Ethernet. КРАЙНЕ важно для Windows 11, без этого не получится подключиться даже с правилом фаервола.
## Проблемы с производительностью?
Попробуйте включить опцию "Отключить эффект размытия" в меню "Пользовательские настройки".
## Нравится ваш проект! Как помочь?
### ЧТО ДЕЛАТЬ
1. Присылайте пулл реквесты
2. Присылайте идеи и баг-репорты, оформленные по установленным шаблонам
3. Прежде чем задавать вопросы, прочтите readme и документацию
### ЧЕГО НЕ ДЕЛАТЬ
1. Предлагать донаты
2. Присылать баг-репорты безо всякого контекста
3. Задавать вопросы, на которые уже отвечали
## Где найти старые фоны?
Мы двигаемся в сторону 100% уникальности всего используемого контента, поэтому старые фоны были убраны из репозитория.
Они отправлены в архив, скачать их можно здесь:
<https://files.catbox.moe/1xevnc.zip>
## Авторы и лицензии
**Мы надеемся, что эта программа принесёт людям пользу,
но мы не даём НИКАКИХ ГАРАНТИЙ; мы ни в коем случае не гарантируем того,
что программа СООТВЕТСТВУЕТ КАКИМ-ЛИБО КРИТЕРИЯМ или ПРИГОДНА ДЛЯ КАКОЙ-ЛИБО ЦЕЛИ.
Подробнее можно узнать в GNU Affero General Public License.**
* Базовая TAI от Humi: Лицензия неизвестна
* Модификации от Cohee и производная кодовая база: AGPL v3
* Дополнения RossAscends: AGPL v3
* Кусочки TavernAITurbo мода от CncAnon: Лицензия неизвестна
* Различные коммиты и предложения от kingbri (<https://github.com/bdashore3>)
* Расширения и внедрение разного рода удобств - city_unit (<https://github.com/city-unit>)
* Различные коммиты и баг-репорты от StefanDanielSchwarz (<https://github.com/StefanDanielSchwarz>)
* Режим Вайфу вдохновлён работой PepperTaco (<https://github.com/peppertaco/Tavern/>)
* Благодарность Pygmalion University за прекрасную работу по тестированию и за все предлагаемые крутые фичи!
* Благодарность oobabooga за компиляцию пресетов для TextGen
* Пресеты для KoboldAI из KAI Lite: <https://lite.koboldai.net/>
* Шрифт Noto Sans от Google (OFL license)
* Тема Font Awesome <https://fontawesome.com> (Иконки: CC BY 4.0, Шрифты: SIL OFL 1.1, Код: MIT License)
*Клиентская библиотека для AI Horde от ZeldaFan0225: <https://github.com/ZeldaFan0225/ai_horde>
*Пусковой скрипт для Linux от AlpinDale
*Благодарность paniphons за оформление документа с FAQ
*Фон в честь 10 тысяч пользователей в Discord от @kallmeflocc
*Стандартный контент (персонажи и лорбуки) предоставлен пользователями @OtisAlejandro, @RossAscends и @kallmeflocc
*Корейский перевод от @doloroushyeonse
*Поддержка k_euler_a для Horde от <https://github.com/Teashrock>
*Китайский перевод от [@XXpE3](https://github.com/XXpE3), 中文 ISSUES 可以联系 @XXpE3
> Приведенная здесь информация может быть устаревшей или неполной и предоставляется только для вашего удобства. Пожалуйста, используйте английскую версию для получения наиболее актуальной информации.
<aname="readme-top"></a>
![][cover]
<divalign="center">
[English](readme.md) | [中文](readme-zh_cn.md) | [日本語](readme-ja_jp.md) | Русский
Мобайл-френдли интерфейс, поддержка множества API (KoboldAI/CPP, Horde, NovelAI, Ooba, OpenAI, OpenRouter, Claude, Scale), ВН-образный режим Вайфу, Stable Diffusion, TTS, поддержка миров (лорбуков), кастомизируемый UI, автоперевод, тончайшая настройка промптов + возможность устанавливать расширения.
Основано на форке [TavernAI](https://github.com/TavernAI/TavernAI) версии 1.2.8
## Важные новости!
1. Чтобы помочь вам быстрее разобраться в SillyTavern, мы создали [сайт с документацией](https://docs.sillytavern.app/). Ответы на большинство вопросов можно найти там.
2. Почему пропали расширения после апдейта? Начиная с версии 1.10.6, большинство встроенных расширений были конвертированы в формат загружаемых аддонов. Их можно установить обратно через меню "Download Extensions and Assets" на панели расширений (значок с тремя кубиками сверху).
3.Не поддерживается следующая платформа: android arm LEtime-web. 32-битный Android требует внешнюю зависимость, которую нельзя установить посредством npm. Для её установки потребуется следующая команда: `pkg install esbuild`. После этого продолжайте установку по общей инструкции.
### Разрабатывается Cohee, RossAscends и всем сообществом SillyTavern
### Что такое SillyTavern и TavernAI?
SillyTavern — это интерфейс, который устанавливается на ПК (и на Android), который даёт возможность общаться с генеративным ИИ и чатиться/ролеплеить с вашими собственными персонажами или персонажами других пользователей.
SillyTavern — это форк версии TavernAI 1.2.8, который разрабатывается более активно и имеет множество новых функций. Сейчас уже можно сказать, что это две отдельные и абсолютно самостоятельные программы.
SillyTavern разрабатывается в двух ветках, чтобы всем категориям пользователей было удобно.
* release -🌟 **Рекомендовано для большинства пользователей.** Самая стабильная ветка, рекомендуем именно её. Обновляется только в момент крупных релизов. Подходит для большей части пользователей.
* staging - ⚠️ **Не рекомендуется для повседневного использования.**В этой ветке весь самый свежий и новый функционал, но будьте аккуратны, поскольку сломаться может в любом месте и в любое время. Только для продвинутых пользователей и энтузиастов.
Если вы не умеете обращаться с git через командную строку, или не знаете, что такое ветка, то не переживайте! Наилучшим вариантом всегда остаётся ветка release.
### Что ещё нужно, кроме SillyTavern?
Сама по себе SillyTavern бесполезна, ведь это просто интерфейс. Вам потребуется доступ к бэкенду с ИИ, который и будет отыгрывать выбранного вами персонажа. Поддерживаются разные виды бэкендов: OpenAPI API (GPT), KoboldAI (локально или на Google Colab), и многое другое. Больше информации в [FAQ](https://docs.sillytavern.app/usage/faq/).
### Требуется ли для SillyTavern мощный ПК?
SillyTavern — это просто интерфейс, поэтому запустить его можно на любой картошке. Мощным должен быть бэкенд с ИИ.
## Есть вопросы или предложения?
### У нас появился сервер в Discord
| [![][discord-shield-badge]][discord-link] | [Вступайте в наше Discord-сообщество!](https://discord.gg/sillytavern) Задавайте вопросы, делитесь любимыми персонажами и промптами. |
5.Дважды щёлкните по `installer.bat` и выберите, что именно хотите установить
6. После завершения установки дважды щёлкните по `launcher.bat`
## Установка с помощью GitHub Desktop
(Тут речь про git **только** в рамках GitHub Desktop, если хотите использовать `git` в командной строке, вам также понадобится [Git for Windows](https://gitforwindows.org/))
1. Установите [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
3. После завершения установки GitHub Desktop, нажмите `Clone a repository from the internet....` (обратите внимание: для этого шага **НЕ требуется** аккаунт на GitHub)
4.В меню перейдите на вкладку URL, введите адрес `https://github.com/SillyTavern/SillyTavern`, и нажмите Clone. В поле Local path можно изменить директорию, в которую будет загружена SillyTavern.
6. Чтобы запустить SillyTavern, откройте Проводник и перейдите в выбранную на предыдущем шаге папку. По умолчанию репозиторий будет склонирован сюда: `C:\Users\[Имя пользователя]\Documents\GitHub\SillyTavern`
7. Дважды щёлкните по файлу `start.bat`. (обратите внимание: окончание `.bat` может быть скрыто настройками вашей ОС. Таким образом, имя файла будет выглядеть как "`Start`". Дважды щёлкните по нему, чтобы запустить SillyTavern)
8. После того, как вы дважды щёлкнули по файлу, должно открыться чёрное окошко, и SillyTavern начнёт устанавливать свои зависимости.
9. Если установка прошла успешно, то в командной строке будет вот такое, а в браузере откроется вкладка с SillyTavern:
10. Подключайтесь к любому из [поддерживаемых API](https://docs.sillytavern.app/usage/api-connections/) и начинайте переписку!
## 🐧 Linux и 🍎 MacOS
В MacOS и Linux всё это делается через Терминал.
1. Установите git и nodeJS (как именно - зависит от вашей ОС)
2. Клонируйте репозиторий
- для ветки release: `git clone https://github.com/SillyTavern/SillyTavern -b release`
- для ветки staging: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
3. Перейдите в папку установки с помощью `cd SillyTavern`.
4. Запустите скрипт `start.sh`с помощью одной из команд:
-`./start.sh`
-`bash start.sh`
## Установка с помощью SillyTavernLauncher
### Для пользователей Linux
1. Откройте любимый терминал и установите git
2. Загрузите Sillytavern Launcher с помощью команды: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
3. Перейдите в SillyTavern-Launcher: `cd SillyTavern-Launcher`
4. Запустите лаунчер установки: `chmod +x install.sh && ./install.sh`, затем выберите, что конкретно хотите установить
5. После завершения установки, запустите лаунчер следующей командой: `chmod +x launcher.sh && ./launcher.sh`
4. Перейдите в SillyTavern-Launcher: `cd SillyTavern-Launcher`
5. Запустите лаунчер установки: `chmod +x install.sh && ./install.sh` and choose what you wanna install
6. После завершения установки, запустите лаунчер следующей командой: `chmod +x launcher.sh && ./launcher.sh`
## 📱 Мобильные устройства - Установка при помощи termux
> **ОБРАТИТЕ ВНИМАНИЕ!**
>
> **На Android-телефонах SillyTavern можно запускать нативно посредством Termux. Обратитесь к гайду, написанному ArroganceComplex#2659:**
>
> * <https://rentry.org/STAI-Termux>
## Управление ключами от API
SillyTavern сохраняет ключи от ваших API в файле `secrets.json` в папке на сервере.
По умолчанию, ключи не будут отображаться на фронте после их ввода и перезагрузки страницы.
Чтобы включить возможность отображения ключей путём нажатия кнопки в блоке API:
1. Зайдите в файл `config.yaml` и установите `allowKeysExposure` в положение `true`.
2. Перезапустите сервер SillyTavern.
## Удалённое подключение
В основном этим пользуются тогда, когда хотят использовать SillyTavern с телефона, запустив сервер SillyTavern на стационарном ПК в той же Wi-Fi-сети.
Однако это позволит подключаться откуда угодно, а не только вам.
**ВАЖНО: в SillyTavern не предусмотрена возможность использования программы несколькими людьми. Поэтому любой, кто подключится к вашему серверу, получит доступ ко всем вашим персонажам и чатам, а также сможет менять настройки через UI.**
### 1. Заведение "белого списка" IP-адресов
* Создайте в корневой папке SillyTavern файл с названием `whitelist.txt`.
* Откройте файл в текстовом редакторе и внесите список IP-адресов, с которых хотите разрешить подключение.
*Принимаются как обычные IP-адреса, так и целые диапазоны, размеченные с помощью астериска. Примеры:*
```txt
192.168.0.1
192.168.0.20
```
или
```txt
192.168.0.*
```
(диапазон из примера сверху позволит подключаться всем устройствам в локальной сети)
Также принимаются маски CIDR (вида 10.0.0.0/24).
*Сохраните файл `whitelist.txt`.
* Перезапустите сервер ST.
После этого устройства из белого списка смогут подключаться к вашему серверу.
*Обратите внимание: в файле `config.yaml` также имеется массив `whitelist`, который работает по тому же принципу. Однако если существует файл `whitelist.txt`, то этот массив игнорируется.*
### 2. Получение IP хост-машины с ST
После настройки белого списка адресов, следующим шагом будет получение IP-адреса хост-машины, на которой запущена SillyTavern.
Если хост-машина находится в той же Wi-Fi-сети, то можно воспользоваться её внутренним Wi-Fi-IP-адресом:
*На Windows: нажмите Пуск > введите `cmd.exe` в поиске > в консоли введите команду `ipconfig` и нажмите Enter > найдите пункт `IPv4-адрес`.
Если вы (или кто-то другой) хотите подключаться к хост-машине из другой сети, то вам понадобится ваш публичный IP-адрес.
* Откройте [эту страницу](https://whatismyipaddress.com/) с вашей хост-машины и найдите пункт `IPv4`. На этот адрес и будет подключаться удалённое устройство.
### 3. Соединить удалённое устройство с хост-машиной ST
Какой бы IP-адрес вы ни выбрали, вам нужно будет вводить его в адресной строке браузера вашего удалённого устройства.
Обычный адрес хост-машины, находящейся в той же Wi-Fi-сети, выглядит примерно так:
`http://192.168.0.5:8000`
НЕ используйте https://
Только http://
### Открытие доступа до ST для всех IP-адресов
Мы не рекомендуем так делать, но вы можете открыть файл `config.yaml` и изменить `whitelistMode` на `false`.
Обязательно нужно удалить (или переименовать) файл `whitelist.txt`, если такой файл есть в корневой директории SillyTavern.
Эта практика считается небезопасной, поэтому, если вы решите так сделать, мы попросим вас установить логин и пароль.
Оба этих параметра настраиваются в `config.yaml` (username и password).
Останется только перезапустить сервер ST, и после этого к вам сможет подключиться любой пользователь вне зависимости от IP-адреса его устройства. Главное, чтобы он знал логин и пароль.
### Не получается соединиться?
* Создайте входящее/исходящее правило в вашем фаерволле для порта, указанного в `config.yaml`. НЕ ПУТАЙТЕ этот процесс с пробросом портов на роутере. Если по ошибке перепутаете, то на ваш сервер сможет забраться посторонний человек и украсть ваши логи, этого следует избегать.
* Переключите Сетевой профиль на значение "Частные". Для этого зайдите в Параметры > Сеть и Интернет > Ethernet. КРАЙНЕ важно для Windows 11, без этого не получится подключиться даже с правилом фаервола.
## Проблемы с производительностью?
Попробуйте включить опцию "Отключить эффект размытия" в меню "Пользовательские настройки".
## Нравится ваш проект! Как помочь?
### ЧТО ДЕЛАТЬ
1. Присылайте пулл реквесты
2. Присылайте идеи и баг-репорты, оформленные по установленным шаблонам
3. Прежде чем задавать вопросы, прочтите readme и документацию
### ЧЕГО НЕ ДЕЛАТЬ
1. Предлагать донаты
2. Присылать баг-репорты безо всякого контекста
3. Задавать вопросы, на которые уже отвечали
## Где найти старые фоны?
Мы двигаемся в сторону 100% уникальности всего используемого контента, поэтому старые фоны были убраны из репозитория.
Они отправлены в архив, скачать их можно здесь:
<https://files.catbox.moe/1xevnc.zip>
## Авторы и лицензии
**Мы надеемся, что эта программа принесёт людям пользу,
но мы не даём НИКАКИХ ГАРАНТИЙ; мы ни в коем случае не гарантируем того,
что программа СООТВЕТСТВУЕТ КАКИМ-ЛИБО КРИТЕРИЯМ или ПРИГОДНА ДЛЯ КАКОЙ-ЛИБО ЦЕЛИ.
Подробнее можно узнать в GNU Affero General Public License.**
*Базовая TAI от Humi: Лицензия неизвестна
*Модификации от Cohee и производная кодовая база: AGPL v3
*Дополнения RossAscends: AGPL v3
*Кусочки TavernAITurbo мода от CncAnon: Лицензия неизвестна
*Различные коммиты и предложения от kingbri (<https://github.com/bdashore3>)
*Расширения и внедрение разного рода удобств - city_unit (<https://github.com/city-unit>)
*Различные коммиты и баг-репорты от StefanDanielSchwarz (<https://github.com/StefanDanielSchwarz>)
*Режим Вайфу вдохновлён работой PepperTaco (<https://github.com/peppertaco/Tavern/>)
* Благодарность Pygmalion University за прекрасную работу по тестированию и за все предлагаемые крутые фичи!
* Благодарность oobabooga за компиляцию пресетов для TextGen
* Пресеты для KoboldAI из KAI Lite: <https://lite.koboldai.net/>
* Шрифт Noto Sans от Google (OFL license)
* Тема Font Awesome <https://fontawesome.com> (Иконки: CC BY 4.0, Шрифты: SIL OFL 1.1, Код: MIT License)
* Клиентская библиотека для AI Horde от ZeldaFan0225: <https://github.com/ZeldaFan0225/ai_horde>
* Пусковой скрипт для Linux от AlpinDale
* Благодарность paniphons за оформление документа с FAQ
* Фон в честь 10 тысяч пользователей в Discord от @kallmeflocc
* Стандартный контент (персонажи и лорбуки) предоставлен пользователями @OtisAlejandro, @RossAscends и @kallmeflocc
* Корейский перевод от @doloroushyeonse
* Поддержка k_euler_a для Horde от <https://github.com/Teashrock>
* Китайский перевод от [@XXpE3](https://github.com/XXpE3), 中文 ISSUES 可以联系 @XXpE3
1. We have created a [Documentation website](https://docs.sillytavern.app/) to answer most of your questions and help you get started.
</div>
2. Missing extensions after the update? Since the 1.10.6 release version, most of the previously built-in extensions have been converted to downloadable add-ons. You can download them via the built-in "Download Extensions and Assets" menu in the extensions panel (stacked blocks icon in the top bar).
---
3. Unsupported platform: android arm LEtime-web. 32-bit Android requires an external dependency that can't be installed with npm. Use the following command to install it: `pkg install esbuild`. Then run the usual installation steps.
SillyTavern provides a single unified interface for many LLM APIs (KoboldAI/CPP, Horde, NovelAI, Ooba, Tabby, OpenAI, OpenRouter, Claude, Mistral and more), a mobile-friendly layout, Visual Novel Mode, Automatic1111 & ComfyUI API image generation integration, TTS, WorldInfo (lorebooks), customizable UI, auto-translate, more prompt options than you'd ever want or need, and endless growth potential via third-party extensions.
### Brought to you by Cohee, RossAscends, and the SillyTavern community
We have a [Documentation website](https://docs.sillytavern.app/) to answer most of your questions and help you get started.
### What is SillyTavern or TavernAI?
## What is SillyTavern?
SillyTavern is a user interface you can install on your computer (and Android phones) that allows you to interact with text generation AIs and chat/roleplay with characters you or the community create.
SillyTavern (or ST for short) is a locally installed user interface that allows you to interact with text generation LLMs, image generation engines, and TTS voice models.
SillyTavern is a fork of TavernAI 1.2.8 which is under more active development and has added many major features. At this point, they can be thought of as completely independent programs.
Beginning in February 2023 as a fork of TavernAI 1.2.8, SillyTavern now has over 100 contributors and 2 years of independent development under its belt, and continues to serve as a leading software for savvy AI hobbyists.
1. We aim to empower users with as much utility and control over their LLM prompts as possible. The steep learning curve is part of the fun!
2. We do not provide any online or hosted services, nor programmatically track any user data.
3. SillyTavern is a passion project brought to you by a dedicated community of LLM enthusiasts, and will always be free and open sourced.
### Branches
## Branches
SillyTavern is being developed using a two-branch system to ensure a smooth experience for all users.
* release -🌟 **Recommended for most users.** This is the most stable and recommended branch, updated only when major releases are pushed. It's suitable for the majority of users.
* staging - ⚠️ **Not recommended for casual use.** This branch has the latest features, but be cautious as it may break at any time. Only for power users and enthusiasts.
*`release` -🌟 **Recommended for most users.** This is the most stable and recommended branch, updated only when major releases are pushed. It's suitable for the majority of users. Typically updated once a month.
*`staging` - ⚠️ **Not recommended for casual use.** This branch has the latest features, but be cautious as it may break at any time. Only for power users and enthusiasts. Updates several times daily.
If you're not familiar with using the git CLI or don't understand what a branch is, don't worry! The release branch is always the preferable option for you.
### What do I need other than SillyTavern?
## What do I need other than SillyTavern?
On its own SillyTavern is useless, as it's just a user interface. You have to have access to an AI system backend that can act as the roleplay character. There are various supported backends: OpenAPI API (GPT), KoboldAI (either running locally or on Google Colab), and more. You can read more about this in [the FAQ](https://docs.sillytavern.app/usage/faq/).
Since SillyTavern is only an interface, you will need access to an LLM backend to provide inference. You can use AI Horde for instant out-of-the-box chatting. Aside from that, we support many other local and cloud-based LLM backends: OpenAI-compatible API, KoboldAI, Tabby, and many more. You can read more about our supported APIs in [the FAQ](https://docs.sillytavern.app/usage/api-connections/).
### Do I need a powerful PC to run SillyTavern?
Since SillyTavern is only a user interface, it has tiny hardware requirements, it will run on anything. It's the AI system backend that needs to be powerful.
The hardware requirements are minimal: it will run on anything that can run NodeJS 18 or higher. If you intend to do LLM inference on your local machine, we recommend a 3000-series NVIDIA graphics card withat least 6GB of VRAM. Check your backend's documentation for more details.
### Suggested Backends (not affiliated)
* [AI Horde](https://aihorde.net/) - use models hosted by volunteers. Requires no further setup
* [KoboldCpp](https://github.com/LostRuins/koboldcpp) - a community's favorite for running GGUF models locally
* [tabbyAPI](https://github.com/theroyallab/tabbyAPI) - a popular, lightweight, locally-hosted exl2 inference API
* [OpenRouter](https://openrouter.ai) - a single API for many cloud providers (OpenAI, Claude, Meta Llama, etc.) as well as popular community models.
## Questions or suggestions?
### We now have a community Discord server
### Discord server
| [![][discord-shield-badge]][discord-link] | [Join our Discord community!](https://discord.gg/sillytavern) Get support, share favorite characters and prompts. |
SillyTavern is built around the concept of "character cards". A character card is a collection of prompts that set the behavior of the LLM and is required to have persistent conversations in SillyTavern. They function similarly to ChatGPT's GPTs or Poe's bots. The content of a character card can be anything: an abstract scenario, an assistant tailored for a specific task, a famous personality or a fictional character.
The name field is the only required character card input. To start a neutral conversation with the language model, create a new card simply called "Assistant" and leave the rest of the boxes blank. For a more themed chat, you can provide the language model with various background details, behavior and writing patterns, and a scenario to jump start the chat.
To have a quick conversation without selecting a character card or to just test the LLM connection, simply type your prompt input into the input bar on the Welcome Screen after opening SillyTavern. Please note that such chats are temporary and will not be saved.
To get a general idea on how to define character cards, see the default character (Seraphina) or download selected community-made cards from the "Download Extensions & Assets" menu.
## Key Features
* Advanced text generation settings with many community-made presets
* World Info support: create rich lore or save tokens on your character card
*[OpenRouter](https://openrouter.ai) connection for various APIs (Claude, GPT-4/3.5 and more)
*[Oobabooga's TextGen WebUI](https://github.com/oobabooga/text-generation-webui) API connection
*Group chats: multi-bot rooms for characters to talk to you and/or each other
*Rich UI customization options: theme colors, background images, custom CSS, and more
*User personas: let the AI know a bit about you for greater immersion
*Built-in RAG support: add documents to your chats for the AI to reference
* Extensive chat commands subsystem and own [scripting engine](https://docs.sillytavern.app/usage/st-script/)
## Extensions
SillyTavern has extensibility support, with some additional AI modules hosted via [SillyTavern Extras API](https://github.com/SillyTavern/SillyTavern-extras)
SillyTavern has extensibility support.
* Author's Note / Character Bias
* Character emotional expressions (sprites)
* Auto-Summary of the chat history
*Sending images to chat, and the AI interpreting the content
* Text-to-speech for AI response messages (via ElevenLabs, Silero, or the OS's System TTS)
* Web Search capabilities for adding additional real world context to your prompts
* Many more are available to download from the "Download Extensions & Assets" menu.
A full list of included extensions and tutorials on how to use them can be found in the [Docs](https://docs.sillytavern.app/).
## UI/CSS/Quality of Life tweaks by RossAscends
* Mobile UI optimized for iOS, and supports saving a shortcut to the home screen and opening in fullscreen mode.
* HotKeys
* Up = Edit last message in chat
* Ctrl+Up = Edit last USER message in chat
* Left = swipe left
* Right = swipe right (NOTE: swipe hotkeys are disabled when the chat bar has something typed into it)
* Ctrl+Left = view locally stored variables (in the browser console window)
* Enter (with chat bar selected) = send your message to AI
* Ctrl+Enter = Regenerate the last AI response
* User Name Changes and Character Deletion no longer force the page to refresh.
* Toggle option to automatically connect to API on page load.
* Toggle option to automatically load the most recently viewed character on page load.
* Better Token Counter - works on unsaved characters, and shows both permanent and temporary tokens.
* Better Past Chats View
* New Chat filenames are saved in a readable format of "(character) - (when it was created)"
* Chat preview increased from 40 characters to 300.
* Multiple options for characters list sorting (by name, creation date, chat sizes).
* By default the left and right settings panel will close when you click away from it.
* Clicking the Lock on the nav panel will hold the panel open, and this setting be remembered across sessions.
* Nav panel status of open or closed will also be saved across sessions.
* Customizable chat UI:
* Play a sound when a new message arrives
* Switch between round or rectangle avatar styles
* Have a wider chat window on the desktop
* Optional semi-transparent glass-like panels
* Customizable page colors for 'main text', 'quoted text', and 'italics text'.
* Customizable UI background color and blur amount
Tutorials on how to use them can be found in the [Docs](https://docs.sillytavern.app/).
# ⌛ Installation
> \[!WARNING]
>
> * DO NOT INSTALL INTO ANY WINDOWS CONTROLLED FOLDER (Program Files, System32, etc).
> * DO NOT RUN START.BAT WITH ADMIN PERMISSIONS
> * INSTALLATION ON WINDOWS 7 IS IMPOSSIBLE AS IT CAN NOT RUN NODEJS 18.16
## 🪟 Windows
## Installing via Git
1. Install [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
2. Install [Git for Windows](https://gitforwindows.org/)
3. Open Windows Explorer (`Win+E`)
4. Browse to or Create a folder that is not controlled or monitored by Windows. (ex: C:\MySpecialFolder\)
5. Open a Command Prompt inside that folder by clicking in the 'Address Bar' at the top, typing `cmd`, and pressing Enter.
6. Once the black box (Command Prompt) pops up, type ONE of the following into it and press Enter:
### Installing via Git
- for Release Branch: `git clone https://github.com/SillyTavern/SillyTavern -b release`
- for Staging Branch: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
1. Install [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
2. Install [Git for Windows](https://gitforwindows.org/)
3. Open Windows Explorer (`Win+E`)
4. Browse to or Create a folder that is not controlled or monitored by Windows. (ex: C:\MySpecialFolder\)
5. Open a Command Prompt inside that folder by clicking in the 'Address Bar' at the top, typing `cmd`, and pressing Enter.
6. Once the black box (Command Prompt) pops up, type ONE of the following into it and press Enter:
7. Once everything is cloned, double-click `Start.bat` to make NodeJS install its requirements.
8. The server will then start, and SillyTavern will pop up in your browser.
* for Release Branch: `git clone https://github.com/SillyTavern/SillyTavern -b release`
* for Staging Branch: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
## Installing via SillyTavern Launcher
1. Install [Git for Windows](https://gitforwindows.org/)
2. Open Windows Explorer (`Win+E`) and make or choose a folder where you wanna install the launcher to
3. Open a Command Prompt inside that folder by clicking in the 'Address Bar' at the top, typing `cmd`, and pressing Enter.
4. When you see a black box, insert the following command: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
5. Double-click on `installer.bat` and choose what you wanna install
6. After installation double-click on `launcher.bat`
7. Once everything is cloned, double-click `Start.bat` to make NodeJS install its requirements.
8. The server will then start, and SillyTavern will pop up in your browser.
### Installing via GitHub Desktop
## Installing via GitHub Desktop
(This allows git usage **only** in GitHub Desktop, if you want to use `git` on the command line too, you also need to install [Git for Windows](https://gitforwindows.org/))
1. Install [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
3. After installing GitHub Desktop, click on `Clone a repository from the internet....` (Note: You **do NOT need** to create a GitHub account for this step)
@@ -170,154 +159,200 @@ For MacOS / Linux all of these will be done in a Terminal.
1. Install git and nodeJS (the method for doing this will vary depending on your OS)
2. Clone the repo
- for Release Branch: `git clone https://github.com/SillyTavern/SillyTavern -b release`
- for Staging Branch: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
* for Release Branch: `git clone https://github.com/SillyTavern/SillyTavern -b release`
* for Staging Branch: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
3.`cd SillyTavern` to navigate into the install folder.
4. Run the `start.sh` script with one of these commands:
-`./start.sh`
-`bash start.sh`
*`./start.sh`
*`bash start.sh`
## Installing via SillyTavern Launcher
## ⚡ Installing via SillyTavern Launcher
SillyTavern Launcher is an installation wizard that will help you get setup with many options, including installing a backend for local inference.
### For Windows users
1. On your keyboard: press **`WINDOWS + R`** to open Run dialog box. Then, run the following command to install git:
```shell
cmd /c winget install -e --id Git.Git
```
2. On your keyboard: press **`WINDOWS + E`** to open File Explorer, then navigate to the folder where you want to install the launcher. Once in the desired folder, type `cmd` into the address bar and press enter. Then, run the following command:
These instructions assume you have installed Docker, are able to access your command line for the installation of containers, and familiar with their general operation.
### Building the image yourself
We have a comprehensive guide on using SillyTavern in Docker [here](http://docs.sillytavern.app/installation/docker/) which covers installations on Windows, macOS and Linux! Give it a read if you wish to build the image yourself.
### Using the GitHub Container Registry (easiest)
You will need two mandatory directory mappings and a port mapping to allow SillyTavern to function. In the command, replace your selections in the following places:
#### Container Variables
##### Volume Mappings
* [config] - The directory where SillyTavern configuration files will be stored on your host machine
* [data] - The directory where SillyTavern user data (including characters) will be stored on your host machine
* [plugins] - (optional) The directory where SillyTavern server plugins will be stored on your host machine
##### Port Mappings
* [PublicPort] - The port to expose the traffic on. This is mandatory, as you will be accessing the instance from outside of its virtual machine container. DO NOT expose this to the internet without implementing a separate service for security.
##### Additional Settings
* [DockerNet] - The docker network that the container should be created with a connection to. If you don't know what it is, see the [official Docker documentation](https://docs.docker.com/reference/cli/docker/network/).
* [version] - On the right-hand side of this GitHub page, you'll see "Packages". Select the "sillytavern" package and you'll see the image versions. The image tag "latest" will keep you up-to-date with the current release. You can also utilize "staging" and "release" tags that point to the nightly images of the respective branches, but this may not be appropriate, if you are utilizing extensions that could be broken, and may need time to update.
> Note that 8000 is a default listening port. Don't forget to use an appropriate port if you change it in the config.
## 📱 Installing via Termux on Android OS
> \[!NOTE]
> **SillyTavern can be run natively on Android phones using Termux. Please refer to this guide by ArroganceComplex#2659:**
> **SillyTavern can be run natively on Android devices using Termux, but we do not provide official support for this use case.**
>
> **Please refer to this guide by ArroganceComplex#2659:**
>
> * <https://rentry.org/STAI-Termux>
**Unsupported platform: android arm LEtime-web.** 32-bit Android requires an external dependency that can't be installed with npm. Use the following command to install it: `pkg install esbuild`. Then run the usual installation steps.
## API keys management
SillyTavern saves your API keys to a `secrets.json` file in the server directory.
SillyTavern saves your API keys to a `secrets.json` file in the user data directory (`/data/default-user/secrets.json` is the default path).
By default, they will not be exposed to a frontend after you enter them and reload the page.
By default, API keys will not be visible from the interface after you have saved them and refreshed the page.
In order to enable viewing your keys by clicking a button in the API block:
In order to enable viewing your keys:
1. Set the value of `allowKeysExposure` to `true` in `config.yaml` file.
2. Restart the SillyTavern server.
3. Click the 'View hidden API keys' link at the bottom right of the API Connection Panel.
## Command-line arguments
You can pass command-line arguments to SillyTavern server startup to override some settings in `config.yaml`.
| `--requestProxyBypass` | Request proxy bypass list (space separated list of hosts) | array |
## Remote connections
Most often this is for people who want to use SillyTavern on their mobile phones while their PC runs the ST server on the same wifi network.
Most often this is for people who want to use SillyTavern on their mobile phones while their PC runs the ST server on the same Wi-Fi network. However, it can be used to allow remote connections from anywhere as well.
However, it can be used to allow remote connections from anywhere as well.
Read the detailed guide on how to set up remote connections in the [Docs](https://docs.sillytavern.app/usage/remoteconnections/).
**IMPORTANT: SillyTavern is a single-user program, so anyone who logs in will be able to see all characters and chats, and be able to change any settings inside the UI.**
### 1. Managing whitelisted IPs
* Create a new text file inside your SillyTavern base install folder called `whitelist.txt`.
* Open the file in a text editor, and add a list of IPs you want to be allowed to connect.
*Both individual IPs and wildcard IP ranges are accepted. Examples:*
```txt
192.168.0.1
192.168.0.20
```
or
```txt
192.168.0.*
```
(the above wildcard IP range will allow any device on the local network to connect)
CIDR masks are also accepted (eg. 10.0.0.0/24).
* Save the `whitelist.txt` file.
* Restart your ST server.
Now devices which have the IP specified in the file will be able to connect.
*Note: `config.yaml` also has a `whitelist` array, which you can use in the same way, but this array will be ignored if `whitelist.txt` exists.*
### 2. Getting the IP for the ST host machine
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 use the ST-host's internal wifi IP:
* For Windows: windows button > type `cmd.exe` in the search bar > type `ipconfig` in the console, hit Enter > look for `IPv4` listing.
If you (or someone else) want to connect to your hosted ST while not being on the same network, you will need the public IP of your ST-hosting device.
* While using the ST-hosting device, access [this page](https://whatismyipaddress.com/) and look 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 this:
`http://192.168.0.5:8000`
Use http:// NOT https://
### Opening your ST to all IPs
We do not recommend doing this, but you can open `config.yaml` and change `whitelistMode` to `false`.
You must remove (or rename) `whitelist.txt` in the SillyTavern base install folder if it exists.
This is usually an insecure practice, so we require you to set a username and password when you do this.
The username and password are set in `config.yaml`.
After restarting your ST server, any device will be able to connect to it, regardless of their IP as long as they know the username and password.
### Still Unable To Connect?
* Create an inbound/outbound firewall rule for the port found in `config.yaml`. Do NOT mistake this for port-forwarding on your router, otherwise, someone could find your chat logs and that's a big no-no.
* Enable the Private Network profile type in Settings > Network and Internet > Ethernet. This is VERY important for Windows 11, otherwise, you would be unable to connect even with the aforementioned firewall rules.
You may also want to configure SillyTavern user profiles with (optional) password protection: [Users](https://docs.sillytavern.app/installation/st-1.12.0-migration-guide/#users).
## Performance issues?
Try enabling the No Blur Effect (Fast UI) mode on the User settings panel.
## I like your project! How do I contribute?
### DO's
1. Send pull requests
2. Send feature suggestions and issue reports using established templates
3. Read the readme file and built-in documentation before asking anything
### DONT's
1. Offer monetary donations
2. Send bug reports without providing any context
3. Ask the questions that were already answered numerous times
## Where can I find the old backgrounds?
We're moving to a 100% original content only policy, so old background images have been removed from this repository.
You can find them archived here:
<https://files.catbox.moe/1xevnc.zip>
1. Disable the Blur Effect and enable Reduced Motion on the User Settings panel (UI Theme toggles category).
2. If using response streaming, set the streaming FPS to a lower value (10-15 FPS is recommended).
3. Make sure the browser is enabled to use GPU acceleration for rendering.
## License and credits
@@ -326,31 +361,19 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.**
*TAI Base by Humi: MIT
*Cohee's modifications and derived code: AGPL v3
*RossAscends' additions: AGPL v3
* Portions of CncAnon's TavernAITurbo mod: Unknown license
* kingbri's various commits and suggestions (<https://github.com/bdashore3>)
* city_unit's extensions and various QoL features (<https://github.com/city-unit>)
* StefanDanielSchwarz's various commits and bug reports (<https://github.com/StefanDanielSchwarz>)
* Waifu mode inspired by the work of PepperTaco (<https://github.com/peppertaco/Tavern/>)
* Thanks Pygmalion University for being awesome testers and suggesting cool features!
* Thanks oobabooga for compiling presets for TextGen
* KoboldAI Presets from KAI Lite: <https://lite.koboldai.net/>
*[TavernAI](https://github.com/TavernAI/TavernAI) 1.2.8 by Humi: MIT License
*Portions of CncAnon's TavernAITurbo mod used with permission
*Visual Novel Mode inspired by the work of PepperTaco (<https://github.com/peppertaco/Tavern/>)
* Noto Sans font by Google (OFL license)
* Icon theme by Font Awesome <https://fontawesome.com> (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*AI Horde client library by ZeldaFan0225: <https://github.com/ZeldaFan0225/ai_horde>
*Linux startup script by AlpinDale
* Thanks paniphons for providing a FAQ document
* 10K Discord Users Celebratory Background by @kallmeflocc
* Default content (characters and lore books) provided by @OtisAlejandro, @RossAscends and @kallmeflocc
* Korean translation by @doloroushyeonse
* k_euler_a support for Horde by <https://github.com/Teashrock>
* Chinese translation by [@XXpE3](https://github.com/XXpE3), 中文 ISSUES 可以联系 @XXpE3
*Default content by @OtisAlejandro (Seraphina character and lorebook) and @kallmeflocc (10K Discord Users Celebratory Background)
*Docker guide by [@mrguymiah](https://github.com/mrguymiah) and [@Bronya-Rand](https://github.com/Bronya-Rand)
3. You can also use GitHub Codespaces which sets up everything for you.
## Getting the code ready
1. Register a GitHub account.
2. Fork this repository under your account.
3. Clone the fork onto your machine.
4. Open the cloned repository in the code editor.
5. Create a git branch (recommended).
6. Make your changes and test them locally.
7. Commit the changes and push the branch to the remote repo.
8. Go to GitHub, and open a pull request, targeting the upstream branch.
## Contribution guidelines
1. Our standards are pretty low, but make sure the code is not too ugly:
- Run VS Code's autoformat when you're done.
- Check with ESLint by running `npm run lint`, then fix the errors.
- Use common sense and follow existing naming conventions.
2. Create pull requests for the staging branch, 99% of contributions should go there. That way people could test your code before the next stable release.
3. You can still send a pull request for release in the following scenarios:
- Updating README.
- Updating GitHub Actions.
- Hotfixing a critical bug.
4. Project maintainers will test and can change your code before merging.
5. Write at least somewhat meaningful PR descriptions. There's no "right" way to do it, but the following may help with outlining a general structure:
- What is the reason for a change?
- What did you do to achieve this?
- How would a reviewer test the change?
6. Mind the license. Your contributions will be licensed under the GNU Affero General Public License. If you don't know what that implies, consult your lawyer.
## Further reading
1. [How to write UI extensions](https://docs.sillytavern.app/for-contributors/writing-extensions/)
2. [How to write server plugins](https://docs.sillytavern.app/for-contributors/server-plugins)
"story_string":"<|start_header_id|>system<|end_header_id|>\n\n{{#if system}}{{system}}\n\n\n{{/if}}## Overall plot description:\n\n{{#if scenario}}{{scenario}}{{else}}Conversation between {{char}} and {{user}}.{{/if}}{{#if wiBefore}}\n\n{{wiBefore}}{{/if}}\n\n\n## Characters:\n\n### {{char}}\n\n{{#if description}}{{description}}\n\n{{/if}}{{#if personality}}{{personality}}\n\n{{/if}}### {{user}}\n\n{{#if persona}}{{persona}}{{else}}{{user}} is the protagonist of the role-play.{{/if}}{{#if wiAfter}}\n\n{{wiAfter}}{{/if}}{{#if mesExamples}}\n\n{{mesExamples}}{{/if}}",
"example_separator":"<|eot_id|>\n<|start_header_id|>user<|end_header_id|>\n\nWrite an example narrative / conversation that is not part of the main story.",
"chat_start":"<|eot_id|>\n<|start_header_id|>user<|end_header_id|>\n\nStart the role-play between {{char}} and {{user}}.",
"story_string":"### Instruction:\nWrite {{char}}'s next reply in this roleplay with {{user}}. Use the provided character sheet and example dialogue for formatting direction and character speech patterns.\n\n{{#if system}}{{system}}\n\n{{/if}}### Character Sheet:\n{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality: {{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{persona}}\n{{/if}}",
"system_prompt":"[Enter Adventure Mode. Narrate the story based on {{user}}'s dialogue and actions after \">\". Describe the surroundings in vivid detail. Be detailed, creative, verbose, and proactive. Move the story forward by introducing fantasy elements and interesting characters.]",
"system_prompt":"Develop the plot slowly, always stay in character. Describe all actions in full, elaborate, explicit, graphic, and vivid detail. Mention all relevant sensory perceptions.",
"system_prompt":"Write {{char}}'s next reply in a fictional roleplay chat between {{user}} and {{char}}.\nWrite 1 reply only, italicize actions, and avoid quotation marks. Use markdown. Be proactive, creative, and drive the plot and conversation forward. Include dialog as well as narration.",
"system_prompt":"Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\nWrite {{char}}'s next reply in a fictional roleplay chat between {{user}} and {{char}}.\n",
"system_prompt":"Avoid repetition, don't loop. Develop the plot slowly, always stay in character. Describe all actions in full, elaborate, explicit, graphic, and vivid detail. Mention all relevant sensory perceptions.",
"system_prompt":"Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n### Instruction:\nTake the role of {{char}} in a play that leaves a lasting impression on {{user}}. Write {{char}}'s next reply.\nNever skip or gloss over {{char}}’s actions. Progress the scene at a naturally slow pace.\n\n",
"system_prompt":"You are an expert actor that can fully immerse yourself into any role given. You do not break character for any reason, even if someone tries addressing you as an AI or language model. Currently your role is {{char}}, which is described in detail below. As {{char}}, continue the exchange with {{user}}.",
"system_prompt":"You are an expert actor that can fully immerse yourself into any role given. You do not break character for any reason, even if someone tries addressing you as an AI or language model. Currently your role is {{char}}, which is described in detail below. As {{char}}, continue the exchange with {{user}}.",
"system_prompt":"You are a helpful assistant. Please answer truthfully and write out your thinking step by step to be sure you get the right answer. If you make a mistake or encounter an error in your thinking, say so out loud and attempt to correct it. If you don't know or aren't sure about something, say so clearly. You will act as a professional logician, mathematician, and physicist. You will also act as the most appropriate type of expert to answer any particular question or solve the relevant problem; state which expert type your are, if so. Also think of any particular named expert that would be ideal to answer the relevant question or solve the relevant problem; name and act as them, if appropriate.\n",
"system_prompt":"Enter RP mode. You shall reply to {{user}} while staying in character. Your responses must be detailed, creative, immersive, and drive the scenario forward. You will follow {{char}}'s persona.",
"system_prompt":"Elaborate on the topic using a Tree of Thoughts and backtrack when necessary to construct a clear, cohesive Chain of Thought reasoning. Always answer without hesitation.",
"system_prompt":"A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.\n\nWrite {{char}}'s next reply in a fictional roleplay chat between {{user}} and {{char}}.\n",
"system_prompt":"A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.\n\nWrite {{char}}'s next reply in a fictional roleplay chat between {{user}} and {{char}}.\n",
"input_sequence":"\nUSER: ",
"output_sequence":"\nASSISTANT: ",
"last_output_sequence":"",
@@ -7,8 +6,7 @@
"stop_sequence":"",
"wrap":false,
"macro":true,
"names":false,
"names_force_groups":true,
"names_behavior":"force",
"activation_regex":"",
"system_sequence_prefix":"BEGINNING OF CONVERSATION:",
"system_prompt":"A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.\n\nWrite {{char}}'s next detailed reply in a fictional roleplay chat between {{user}} and {{char}}.",
"system_prompt":"[System note: Write one reply only. Do not decide what {{user}} says or does. Write at least one paragraph, up to four. Be descriptive and immersive, providing vivid details about {{char}}'s actions, emotions, and the environment. Write with a high degree of complexity and burstiness. Do not repeat this message.]",
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.