diff --git a/Administration/sso.md b/Administration/sso.md index 2acf04ab2..52868b334 100644 --- a/Administration/sso.md +++ b/Administration/sso.md @@ -19,7 +19,7 @@ To do this, enable `autheliaAuth` in *config.yaml*. autheliaAuth: true ``` -This augments or replaces the built-in [password management](/Usage/Core_Concepts/user-settings.md#account-management) component of a [multi-user mode](/Administration/multi-user.md) setup. +This augments or replaces the built-in [password management](/Usage/User_Settings/User_Settings.md#account-management) component of a [multi-user mode](/Administration/multi-user.md) setup. ## Replacing HTTP BA diff --git a/For_Contributors/st-script.md b/For_Contributors/st-script.md index fbdc22f73..8dcbbf195 100644 --- a/For_Contributors/st-script.md +++ b/For_Contributors/st-script.md @@ -742,7 +742,7 @@ This will insert a user message at the beginning of the conversation history: ## World Info commands -World Info (also known as Lorebook) is a highly utilitarian tool for dynamically inserting data into the prompt. See the dedicated page for more detailed explanation: [World Info](/Usage/Core_Concepts/worldinfo.md). +World Info (also known as Lorebook) is a highly utilitarian tool for dynamically inserting data into the prompt. See the dedicated page for more detailed explanation: [World Info](/Usage/worldinfo.md). 1. `/getchatbook` – gets a name of the chat-bound World Info file or create a new one if was unbound, and pass it down the pipe. 2. `/findentry file=bookName field=fieldName [text]` – finds a UID of the record from the specified file (or a variable pointing to a file name) using fuzzy matching of a field value with the provided text (default field: `key`) and passes the UID down the pipe, e.g. `/findentry file=chatLore field=key Shadowfang`. diff --git a/Usage/Core_Concepts/Connection-Profiles.md b/Usage/API_Connections/Connection-Profiles.md similarity index 90% rename from Usage/Core_Concepts/Connection-Profiles.md rename to Usage/API_Connections/Connection-Profiles.md index 5b08849a3..56da683fe 100644 --- a/Usage/Core_Concepts/Connection-Profiles.md +++ b/Usage/API_Connections/Connection-Profiles.md @@ -1,5 +1,7 @@ --- icon: paperclip +route: /usage/core-concepts/connection-profiles +order: 100 --- # Connection Profiles @@ -21,10 +23,10 @@ Connection Profiles store the following selections. ### Text Completion APIs -* [System Prompt and its state](/Usage/Core_Concepts/advancedformatting.md#system-prompt) +* [System Prompt and its state](/Usage/Prompts/advancedformatting.md#system-prompt) * [Instruct Mode state and template](//Usage/Core_Concepts/instructmode.md) -* [Context Template](/Usage/Core_Concepts/advancedformatting.md#context-template) -* [Tokenizer](/Usage/Core_Concepts/advancedformatting.md#tokenizer) +* [Context Template](/Usage/Prompts/advancedformatting.md#context-template) +* [Tokenizer](/Usage/Prompts/advancedformatting.md#tokenizer) ### Chat Completion APIs diff --git a/Usage/API_Connections/index.md b/Usage/API_Connections/index.md index e9c84d665..0c62af759 100644 --- a/Usage/API_Connections/index.md +++ b/Usage/API_Connections/index.md @@ -1,5 +1,5 @@ --- -order: -30 +order: 150 icon: repo-forked expanded: false route: /usage/api-connections diff --git a/Usage/self-hosted.md b/Usage/API_Connections/self-hosted.md similarity index 99% rename from Usage/self-hosted.md rename to Usage/API_Connections/self-hosted.md index b0184b858..5baa01cea 100755 --- a/Usage/self-hosted.md +++ b/Usage/API_Connections/self-hosted.md @@ -1,5 +1,5 @@ --- -order: -40 +order: 90 icon: desktop-download route: /usage/how-to-use-a-self-hosted-model/ --- diff --git a/Usage/Core_Concepts/Author's-Note.md b/Usage/Characters/Author's-Note.md similarity index 98% rename from Usage/Core_Concepts/Author's-Note.md rename to Usage/Characters/Author's-Note.md index 8705d1c43..85240e1ad 100644 --- a/Usage/Core_Concepts/Author's-Note.md +++ b/Usage/Characters/Author's-Note.md @@ -1,5 +1,6 @@ --- order: character-40 +route: /usage/core-concepts/authors-note --- # Author's Note diff --git a/Usage/Core_Concepts/Tags.md b/Usage/Characters/Tags.md similarity index 99% rename from Usage/Core_Concepts/Tags.md rename to Usage/Characters/Tags.md index ffd1e5463..bc94b2680 100644 --- a/Usage/Core_Concepts/Tags.md +++ b/Usage/Characters/Tags.md @@ -1,5 +1,6 @@ --- order: character-30 +route: /usage/core-concepts/tags --- # Tags diff --git a/Usage/Core_Concepts/characterdesign.md b/Usage/Characters/characterdesign.md similarity index 99% rename from Usage/Core_Concepts/characterdesign.md rename to Usage/Characters/characterdesign.md index 3a19357a7..f3b99dd8a 100644 --- a/Usage/Core_Concepts/characterdesign.md +++ b/Usage/Characters/characterdesign.md @@ -1,6 +1,6 @@ --- order: character-10 -icon: person-fill +route: /usage/core-concepts/characterdesign --- # Character Design diff --git a/Usage/Core_Concepts/chatfilemanagement.md b/Usage/Characters/chatfilemanagement.md similarity index 92% rename from Usage/Core_Concepts/chatfilemanagement.md rename to Usage/Characters/chatfilemanagement.md index 0768a713f..46b934d50 100644 --- a/Usage/Core_Concepts/chatfilemanagement.md +++ b/Usage/Characters/chatfilemanagement.md @@ -1,5 +1,6 @@ --- order: character-15 +route: /usage/core-concepts/chatfilemanagement --- # Chat File Management @@ -14,7 +15,7 @@ Some of these options are available in the "Manage chat files" dialog that opens The simplest way to use a character card is a Solo chat; just click on their card and start chatting. -Once you have a few character cards, you can also use the "Create New Chat Group" button to create a [group chat](/Usage/Core_Concepts/groupchats.md) including multiple characters which will then interact with each other and you. +Once you have a few character cards, you can also use the "Create New Chat Group" button to create a [group chat](/Usage/Characters/groupchats.md) including multiple characters which will then interact with each other and you. ## Chat import diff --git a/Usage/Core_Concepts/data-bank.md b/Usage/Characters/data-bank.md similarity index 99% rename from Usage/Core_Concepts/data-bank.md rename to Usage/Characters/data-bank.md index ab09b7ca3..1f00cb652 100644 --- a/Usage/Core_Concepts/data-bank.md +++ b/Usage/Characters/data-bank.md @@ -1,5 +1,6 @@ --- order: character-50 +route: /usage/core-concepts/data-bank tags: [ vector storage, diff --git a/Usage/Core_Concepts/groupchats.md b/Usage/Characters/groupchats.md similarity index 99% rename from Usage/Core_Concepts/groupchats.md rename to Usage/Characters/groupchats.md index 1707ddb64..6db32df0d 100644 --- a/Usage/Core_Concepts/groupchats.md +++ b/Usage/Characters/groupchats.md @@ -1,5 +1,6 @@ --- order: character-20 +route: /usage/core-concepts/groupchats --- # Group Chats diff --git a/Usage/Characters/index.md b/Usage/Characters/index.md new file mode 100644 index 000000000..378a96db2 --- /dev/null +++ b/Usage/Characters/index.md @@ -0,0 +1,121 @@ +--- +order: 100 +icon: person-fill +--- + +# Characters + +Characters are the AI identities that you can create and manage to shape the AI's role in the conversation. Each +character has a name, personality, and conversation history. You can create as many characters as you like, and +switch between them at any time. + +Characters can be used in solo chats, or add multiple characters to a group chat to +let them interact with each other. + +## Character Management Panel + +Open the **Characters** panel from the navbar to access the character +list. Click on a character or group to chat with them or edit them, or +choose **Create New Character** to add a new character. + +### Panel Controls + +* **Pin Panel**: Keep panel open while interacting +* **Character List**: Return to character list view +* **HotSwap Bar**: Quick access to favorite characters + +### Character List + +* **Create New Character**: Add a new character +* **Import Character**: Load character from file +* **External Import**: Import from URL +* **Create Group**: Start a new group chat + +#### Search and sort + +* **Search Bar**: Filter characters by name or attributes +* **Sort Dropdown**: Multiple sorting options: + - Alphabetical (A-Z, Z-A) + - Chronological (Newest, Oldest) + - Usage-based (Recent, Most/Least chats) + - Size-based (Most/Least tokens) + - Special (Favorites, Random) + +#### Filter characters by type or tag + +* **Favorites Filter**: Show favorite characters +* **Groups Filter**: Show only group chats +* **Tags as Folders**: Organize by tag hierarchy +* **Manage Tags**: [Tag configuration](/Usage/Characters/Tags.md) +* **Tag List**: View all available tags +* **Clear Filters**: Reset all filters + +### Character Creation/Edit Panel + +* **Avatar Image**: Upload and preview character profile picture +* **Token Count**: [Token usage](characterdesign.md#character-tokens) for the character +* **Stats**: Chat history and usage statistics +* [Tag management](/Usage/Characters/Tags.md) + +#### Quick Actions + +- Favorite toggle +- Advanced definitions +- Character lore +- Chat lore: link the chat to a [World Info](/Usage/worldinfo.md) +- Export character +- Duplicate +- Delete + +#### Extended Options + +* World Info linking +* Card lore import +* Scenario override +* Persona conversion +* Character rename +* Source linking +* Replace/Update +* Tag import +* Gallery view + +#### Content Fields + +* **[Character Description](characterdesign.md#character-description)**: Brief character summary +* **[First Message](characterdesign.md#first-message)**: Initial greeting or prompt when starting a new chat +* **Alternative greetings**: Define multiple first messages that you can swipe between when starting a chat + +### Advanced Definitions Panel + +Click on the **Advanced Definitions** button to access the extended character settings. + +#### Prompt Overrides (Chat Completion/Instruct Mode) + +* **Main Prompt**: Replaces default [main/system prompt](/Usage/Prompts/prompts.md#main-prompt-system-prompt), can use + \{\{original\}\} placeholder to include the original prompt +* **Post-History Instructions**: Overrides + default [post-history instructions](/Usage/Prompts/prompts.md#post-history-instructions) + +#### Creator's Metadata + +Non-prompt information about the character: + +- Creator name/contact +- Character version +- Creator's notes +- Embedded tags list + +#### Character Personality + +* **[Personality Summary](characterdesign.md#personality-summary)**: Brief overview of character's traits +* **[Scenario](characterdesign.md#scenario)**: Context and circumstances of the dialog +* **Character's Note**: Custom message with selectable depth and message role (also + see [Author's Note](/Usage/Characters/Author's-Note.md)) +* **Talkativeness** (Group Chats): Slider for Shy → Normal → Chatty +* **Example Messages**: Examples of character's writing style + +### Group Chat Management + +If this is a group chat, you can manage the group members and settings from this panel. + +See [Group Chats](/Usage/Characters/groupchats.md) for more details. diff --git a/Usage/hotkeys.md b/Usage/Chatting/hotkeys.md similarity index 97% rename from Usage/hotkeys.md rename to Usage/Chatting/hotkeys.md index 4d216f2ab..c80a6c8b3 100644 --- a/Usage/hotkeys.md +++ b/Usage/Chatting/hotkeys.md @@ -1,6 +1,7 @@ --- order: -60 icon: key-asterisk +route: /usage/hotkeys --- # HotKeys diff --git a/Usage/Chatting/index.md b/Usage/Chatting/index.md new file mode 100644 index 000000000..f8a1d187a --- /dev/null +++ b/Usage/Chatting/index.md @@ -0,0 +1,116 @@ +--- +icon: report +order: 170 +expanded: false +--- + +# Chatting + +When you are [connected to an API](/Usage/API_Connections/index.md), send messages to the AI by typing in the chat bar at the bottom of the screen. Then click **Send** or press Enter. +![Chat bar](/static/chatbox.png) + +The AI will respond with a message that continues the conversation. + +![Chat message](/static/chatmessage.png) + +You can now: + +* **Send another message** +* **Swipe the response**: Click the **Swipe** button on the message to generate a different response. +* **Edit the message**: Click the **Edit** button on any message to [edit the message content](#edit-message-content). +* **Message actions**: Click the **Message actions** button on a message for more [message options](#message-actions-panel) like translation, image generation, and story branching. +* **Chat options**: Click the **Options** button next to the chat bar for more [chat options](#chat-options-panel) like author's notes and chat file management. + +!!! Edit and swipe +If you wish you'd said something different, you can edit your message and then swipe the AI's response to get a new one. +!!! + +!!! Keyboard shortcuts +You can also use the **Right** arrow key to swipe, and the **Up** arrow key to edit the last message in the chat. For more hotkeys, use the `/help hotkeys` [slash command](/Usage/Chatting/slashcommands.md) in the chat or check the [HotKeys](/Usage/Chatting/hotkeys.md) page. +!!! + +## Message actions panel + +Manage individual chat messages via the ellipsis (•••) button on the message. + +To display these options for all messages in your chats, enable the [Expand Message Actions](/Usage/User_Settings/uicustomization.md#theme-toggles) setting in your user settings. + +### Core Functions + +* **Translate**: Convert message to different language +* **Generate Image**: [Create an image](/extensions/Stable-Diffusion.md) from message content +* **Narrate**: [Text-to-speech](/extensions/TTS.md) conversion +* **Prompt**: View the generation prompt and token usage + +### Message Visibility + +* **Included**: AI sees this message; click to exclude it +* **Excluded**: AI does not see this message; click to include it + +### Content Management + +* **Embed**: [Attach files or images](/Usage/Characters/data-bank.md#about-documents) +* **Checkpoint**: Create story checkpoint +* **Checkpoint Navigation**: Click to open checkpoint chat, Shift+Click to update + existing checkpoint +* **Branch**: Start alternate story path +* **Copy**: Copy message text +* **Edit**: Edit message content + +## Edit message content + +A compact panel of message manipulation tools that appears when you **Edit** a chat +message. + +### Core Actions + +* **Confirm**: Save message changes +* **Cancel**: Discard message changes + +### Message Operations + +* **Copy**: Duplicate message content +* **Delete**: Remove message + +### Message Position + +* **Move Up**: Shift message higher in chat +* **Move Down**: Shift message lower in chat + +Note: Movement controls may be disabled based on message position in chat history. + +## Chat options panel + +Manage chat settings and operations via the **Options** button at the bottom left of +the chat interface. + +### Display Controls + +* **Close chat**: Exit current chat session +* **Toggle Panels**: Show/hide [interface panels](/Usage/index.md#control-panels) + +### Generation Settings + +* **[Author's Note](/Usage/Characters/Author's-Note.md)**: Custom context instructions +* **[CFG Scale](/Usage/Prompts/CFG.md)**: Adjust response creativity +* **Token Probabilities**: View token generation stats + +### Chat Navigation + +* **Back to parent chat**: Return to main conversation +* **Save checkpoint**: Create story checkpoint +* **Convert to group**: Transform into [group chat](/Usage/Characters/groupchats.md) + +### Chat Management + +* **Start new chat**: Begin fresh conversation +* **Manage chat files**: [Chat file operations](/Usage/Characters/chatfilemanagement.md) such as import, export, and renaming + +### Message Controls + +* **Delete messages**: Select and remove multiple messages +* **Regenerate**: Create new response +* **Impersonate**: AI writes message as user +* **Continue**: Extend last message + +Note: Some options may be hidden depending on context and chat state. diff --git a/Usage/Core_Concepts/slashcommands.md b/Usage/Chatting/slashcommands.md similarity index 94% rename from Usage/Core_Concepts/slashcommands.md rename to Usage/Chatting/slashcommands.md index 58c1d90f1..47fce975e 100644 --- a/Usage/Core_Concepts/slashcommands.md +++ b/Usage/Chatting/slashcommands.md @@ -1,5 +1,6 @@ --- icon: rel-file-path +route: /usage/core-concepts/slashcommands --- # Slash commands diff --git a/Usage/Common-Settings.md b/Usage/Common-Settings.md index 8a58e3d82..bb9262e5d 100644 --- a/Usage/Common-Settings.md +++ b/Usage/Common-Settings.md @@ -1,5 +1,5 @@ --- -order: -50 +order: 160 icon: sliders --- diff --git a/Usage/Core_Concepts/index.md b/Usage/Core_Concepts/index.md deleted file mode 100644 index bddd54369..000000000 --- a/Usage/Core_Concepts/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -icon: tasklist -order: -60 -expanded: true -route: /usage/core-concepts ---- - -## Configuration panels - -:::callout -**[Response Configuration](/Usage/Common-Settings.md)** and **[Prompt Manager](/Usage/Core_Concepts/prompt-manager.md)** - -sliders -Control text generation and sampling. Customize prompt construction for Chat Completion APIs. -::: - -:::callout -**[API Connections](/Usage/API_Connections/index.md)** - -API Connections icon -Connect to AI models for generating text, images, and more -::: - -:::callout -**[Advanced Formatting](/Usage/Core_Concepts/advancedformatting.md)** - -Advanced Formatting icon -Customize prompt construction for Text Completion APIs -::: - -:::callout -**[World Info](/Usage/Core_Concepts/worldinfo.md)** - -World Info icon -Manage information and when to insert it into the prompt -::: - -:::callout -**[User Settings](/Usage/Core_Concepts/user-settings.md)** - -User Settings icon -Change the theme, and the look and feel of messages and chats -::: - -:::callout -**Backgrounds** - -Backgrounds icon -Change the background image -::: - -:::callout -**[Extensions](/extensions/index.md)** - -Extensions icon -Add new features and capabilities to the AI or the interface -::: - -:::callout -**[Personas](/Usage/Core_Concepts/personas.md)** - -Personas icon -Create and manage personas to use with the AI -::: - -:::callout -**[Characters](/Usage/Core_Concepts/characterdesign.md)** - -Characters icon -Create and manage characters for the AI to use -::: - - - - diff --git a/Usage/Core_Concepts/prompts.md b/Usage/Core_Concepts/prompts.md deleted file mode 100644 index 02033a257..000000000 --- a/Usage/Core_Concepts/prompts.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -order: prompts -icon: pencil ---- - -# Prompts - -When you send a message to your AI, the text you write is combined with other text to form a single request that's sent to the AI. This combined text is called a "prompt" or sometimes the "request" or "context." - -The prompt can include a variety of different types of text, including: - -* [Main instructions](#main-prompt) to the AI about how to generate a response -* Definitions of the [roles that the AI should take on](characterdesign.md) -* Definitions of [the role that you are taking on](personas.md) -* [Information about the "world"](worldinfo.md) that the AI is interacting with -* Relevant documents or information from [Data Bank](data-bank.md) -* [Summaries](/extensions/Summarize.md) of the past conversation -* Results of [web searches](/extensions/WebSearch.md) or other [external data sources](/For_Contributors/Function-Calling.md) -* Previous messages in the conversation -* **Your message to the AI** -* Final instructions for the AI about how to generate a response - -This can be a lot to manage! To help you understand how to structure and modify the request that's sent to the AI, SillyTavern identifies different elements that you might want to include in your prompt. You can then structure your prompt to include the things that make sense for the way you want to interact with the AI. - -Many of these elements are explained in the sections where you will change them. For example, to describe the role that you would like the AI to take on, you could use the [Description](characterdesign.md#personality-summary) field in [Character Design](characterdesign.md). - -## Viewing the Prompt - -Reading the final prompt that's sent to the AI is very helpful for understanding what the AI was told, and why it generated the response that it did. You can view the prompt in several ways: - -* Using the Prompt Itemization icon on the reply message from the AI -* Using the [Prompt Inspector](https://github.com/SillyTavern/Extension-PromptInspector) extension -* Checking the logs in the terminal window that you're running SillyTavern in -* Checking the console in your browser's developer tools - -## Changing how the Prompt is Built - -Presenting all the parts of your prompt to the AI in the right way is crucial for getting the best responses. You can control how the prompt is built. - -+++ Text Completion APIs - -Use the [Advanced Formatting](advancedformatting.md) panel to customize prompt construction for Text Completion APIs. - -+++ Chat Completion APIs - -Use the [Prompt Manager](prompt-manager.md) to customize prompt construction for Chat Completion APIs. - -+++ - - -## Common Prompt Elements - -Some prompts are set for every message you send to the AI. These are explained here. - -### Main Prompt - -The Main Prompt (or System Prompt) defines the general instructions for the model to follow. It sets the tone and context for the conversation. For example, it tells the model to act as an AI assistant, a writing partner, or a fictional character. - -Supports substitutions via any of the supported [\{\{macro\}\}](characterdesign.md#macros-replacement-tags) parameters. - -For example: - -> You are a helpful AI assistant. You should provide useful information and help \{\{user\}\} with their questions. - -+++ Text Completion APIs - -The [System Prompt](advancedformatting.md#system-prompt) is a part of the [Story String](context-template.md#story-string) and usually the first part of the prompt that the model receives. - -+++ Chat Completion APIs - -The Main Prompt is one of the default prompts in [Prompt Manager](prompt-manager.md). It is usually the first message in the context that the model receives, attributed to ("sent by") the system role. - -+++ - -### Post-History Instructions - -Post-History Instructions are additional instructions that are sent to the AI after the main prompt and the user message. They can be used to provide additional context or instructions to the AI based on the conversation history. - -Since the Post-History Instructions are sent after the user message, they are the final instructions that the AI receives before generating a response. The AI usually gives them a higher priority than the main prompt, and they can override the main prompt's instructions. - -+++ Text Completion APIs - -Post-History Instructions cannot be defined globally. You could achieve the same effect with an [Author's Note](Author's-Note.md). - -To use per-character Post-History Instructions, add them to the character's [Post-History Instructions](characterdesign.md) and enable **both** [Prefer Char. Instructions](user-settings.md) and [Allow Post-History Instructions](context-template.md#allow-post-history-instructions). - -The Post-History Instructions is added as an invisible user role injection that precedes the last line of the prompt (usually containing a response message "header"). - -+++ Chat Completion APIs - -Post-History Instructions is one of the default prompts in [Prompt Manager](prompt-manager.md). It is usually the last message in the context that the model receives, attributed to ("sent by") the system role. If your Chat Completion API does not support the system role, it will usually be attributed to the user role instead. - -+++ - -## Adding to the Prompt (World Info) - -You can insert additional information anywhere in the prompt using the [World Info](worldinfo.md) feature. By setting the conditions for when the information should be inserted, you can guide the AI to include specific details, change how it responds, or add new elements to the conversation. - -Some common uses of World Info include: - -* a "lorebook" or "encyclopedia" with information about the world or setting -* a way to manage different system prompts for various characters and situations -* a place to store memories that the AI should "recall" in the conversation -* a more modular system for creating, editing, and sharing character details -* a source of random events and surprises for the AI to react to, or to make you react to! diff --git a/Usage/Core_Concepts/CFG.md b/Usage/Prompts/CFG.md similarity index 100% rename from Usage/Core_Concepts/CFG.md rename to Usage/Prompts/CFG.md diff --git a/Usage/Core_Concepts/advancedformatting.md b/Usage/Prompts/advancedformatting.md similarity index 84% rename from Usage/Core_Concepts/advancedformatting.md rename to Usage/Prompts/advancedformatting.md index 9c6487ae4..47af7eb54 100644 --- a/Usage/Core_Concepts/advancedformatting.md +++ b/Usage/Prompts/advancedformatting.md @@ -23,12 +23,14 @@ Most of the settings in this panel do not apply to Chat Completions APIs as they ## System Prompt !!! Applies to: Text Completion APIs -For equivalent settings in Chat Completion APIs, use [Prompt Manager](prompt-manager.md). +For equivalent settings in Chat Completion APIs, use [Prompt Manager](prompt-manager.md). The **Main Prompt** is the equivalent of the System Prompt in Chat Completion APIs. !!! +The System Prompt defines the general instructions for the model to follow. It sets the tone and context for the conversation. For example, it tells the model to act as an AI assistant, a writing partner, or a fictional character. + The System Prompt is a part of the [Story String](context-template.md#story-string) and usually the first part of the prompt that the model receives. -See the [prompting guide](prompts.md#main-prompt) to learn more about the System Prompt. +See the [prompting guide](prompts.md#main-prompt-system-prompt) to learn more about the System Prompt. ## Context Template diff --git a/Usage/Core_Concepts/context-template.md b/Usage/Prompts/context-template.md similarity index 100% rename from Usage/Core_Concepts/context-template.md rename to Usage/Prompts/context-template.md diff --git a/Usage/Core_Concepts/instructmode.md b/Usage/Prompts/instructmode.md similarity index 100% rename from Usage/Core_Concepts/instructmode.md rename to Usage/Prompts/instructmode.md diff --git a/Usage/Core_Concepts/prompt-manager.md b/Usage/Prompts/prompt-manager.md similarity index 100% rename from Usage/Core_Concepts/prompt-manager.md rename to Usage/Prompts/prompt-manager.md diff --git a/Usage/Prompts/prompts.md b/Usage/Prompts/prompts.md new file mode 100644 index 000000000..87e41214e --- /dev/null +++ b/Usage/Prompts/prompts.md @@ -0,0 +1,187 @@ +--- +order: 140 +icon: typography +--- + +# Prompts + +When you send a message to your AI, the text you write is combined with other text to form a single request that's sent to the AI. This combined text is called a "prompt" or sometimes the "request" or "context." + +The prompt can include a variety of different types of text, including: + +* [Main instructions](#main-prompt-system-prompt) to the AI about how to generate a response +* Definitions of the [roles that the AI should take on](/Usage/Characters/characterdesign.md) +* Definitions of [the role that you are taking on](/Usage/personas.md) +* [Information about the "world"](/Usage/worldinfo.md) that the AI is interacting with +* Relevant documents or information from [Data Bank](/Usage/Characters/data-bank.md) +* [Summaries](/extensions/Summarize.md) of the past conversation +* Results of [web searches](/extensions/WebSearch.md) or other [external data sources](/For_Contributors/Function-Calling.md) +* Previous messages in the conversation +* **Your message to the AI** +* [Final instructions](#post-history-instructions) for the AI about how to generate a response + +This can be a lot to manage! To help you understand how to structure and modify the request that's sent to the AI, SillyTavern identifies different elements that you might want to include in your prompt. You can then structure your prompt to include the things that make sense for the way you want to interact with the AI. + +Many of these elements are explained in the sections where you will change them. For example, to describe the role that you would like the AI to take on, you could use the [Description](/Usage/Characters/characterdesign.md#personality-summary) field in [Character Design](/Usage/Characters/characterdesign.md). + +## Viewing the Prompt + +Reading the final prompt that's sent to the AI is very helpful for understanding what the AI was told, and why it generated the response that it did. You can view the prompt in several ways: + +* Using the Prompt Itemization icon on the reply message from the AI +* Using the [Prompt Inspector](https://github.com/SillyTavern/Extension-PromptInspector) extension +* Checking the logs in the terminal window that you're running SillyTavern in +* Checking the console in your browser's developer tools + +## Changing how the Prompt is Built + +Presenting all the parts of your prompt to the AI in the right way is crucial for getting the best responses. You can control how the prompt is built. + ++++ Text Completion APIs + +Use the [Advanced Formatting](advancedformatting.md) panel to customize prompt construction for Text Completion APIs. + ++++ Chat Completion APIs + +Use the [Prompt Manager](prompt-manager.md) to customize prompt construction for Chat Completion APIs. + ++++ + + +## Main Prompt (System Prompt) + +The Main Prompt (or System Prompt) defines the general instructions for the model to follow. It sets the tone and context for the conversation. For example, it tells the model to act as an AI assistant, a writing partner, or a fictional character. + ++++ Text Completion APIs + +The [System Prompt](advancedformatting.md#system-prompt) is a part of the [Story String](context-template.md#story-string) and usually the first part of the prompt that the model receives. + ++++ Chat Completion APIs + +The Main Prompt is one of the default prompts in [Prompt Manager](prompt-manager.md). It is usually the first message in the context that the model receives, attributed to ("sent by") the system role. + ++++ + + +The default Main Prompt is: + +> Write \{\{char\}\}'s next reply in a fictional chat between \{\{char\}\} and \{\{user\}\}. + +The \{\{char\}\} and \{\{user\}\} placeholders are replaced with the names of the character and persona that you've defined in the conversation. + +You can use any of the supported [\{\{macro\}\}](/Usage/Characters/characterdesign.md#macros-replacement-tags) tags in the Main Prompt to include information that might vary between conversations or changes as the conversation progresses. + +### Adjusting the Main Prompt + +The default main prompt helps the model understand what it's expected to do with the character and persona information that follows, how to interpret the past conversation, and what kind of response to generate. It's a flexible general-purpose prompt that works well for many situations, because it establishes that the AI is writing as a character in a conversation with your persona. + +However, you can adjust the main prompt to better suit your needs. Here are some common reasons to adjust the main prompt: + +* **Provide additional instructions**: for example, you want the AI to explain its reasoning, follow specific rules, or avoid certain topics +* **Clarify the role of the AI**: for example, you want the AI to act as a narrator, a storyteller, or a guide +* **Change the context of the conversation**: for example, you want the AI to respond as if it were an AI assistant, text adventure game, or a writing partner + +!!! Try things out and see what works best for you +All the examples in this guide have worked well for other users, but the prompt that works for your needs and the model you're using might be different. Experiment with different instructions and prompting styles to see what works best for you. If you're not sure what to try, you can always ask for help in the [SillyTavern Discord](https://discord.gg/sillytavern). +!!! + +Giving the AI additional instructions in the Main Prompt can help it understand what you want from the conversation. + +> Write one reply only. Write at least one paragraph, up to four. + +> Markdown is enabled. Use it to format your response. Enclose code snippets in triple backticks. + +> Write character dialogue in quotation marks. Write \{\{char\}\}'s thoughts in parentheses. + +> You are an anime roleplay generation model for users aged 13 to 17. You always generate fun, age-appropriate responses. + +> Answer truthfully and write out your thinking step by step to be sure you get the right answer. + +The AI will more easily follow instructions about what it should do than what it should not do. For example, if you want the AI to avoid writing in a certain way, it's better to tell it how you want it to write instead. And while `Do not decide what {{user}} says or does` is commonly included in prompts to prevent the AI from controlling your persona, some users find `Write {{char}}'s responses in a way that respects {{user}}'s autonomy` is more effective. + +There is often a better place than the Main Prompt to include information about the user or characters, modify a character's writing and speaking style, or give other specific instructions. The Main Prompt is best used for general instructions about the conversation as a whole, or about a type of conversation that you want to have. + +### Effect of Message History + +When adjusting the main prompt to improve the AI's responses, consder that the AI picks up a lot from the message history. The history is its memory of past events, character interactions and relationships, and its style guide for word choice and writing style. + +Use this to your advantage by also providing [example messages](/Usage/Characters/characterdesign.md#examples-of-dialogue) showing how you want the AI to respond. Showing what you want is often easier than trying to explain it! + +When your conversation already has history, changing the main prompt has a limited effect on the AI's responses. In terms of events and relationships, the AI assumes that the main prompt occurred in the distant past, and the message history updates it. In terms of writing style and word choice, the AI assumes that all the messages in history were generated according to the rules in the *current* main prompt, and that it should continue to generate messages in the same way. Some suggestions for dealing with this are: + +* insert current instructions close to or after the end of message history, for example by using an [Author's Note](/Usage/Characters/Author's-Note.md) +* test your changes to the main prompt by starting a new conversation +* edit the message history to remove or correct examples of unwanted behaviour +* use the [Post-History Instructions](#post-history-instructions) to provide final instructions to the AI + +!!! Get it right the first time! +Never let the AI "get away" with something you don't want it to do. If you don't like the AI's response, don't continue the conversation as if it was correct. Instead, modify the prompts, regenerate the message, and continue from there. This will help the AI learn what you want. +!!! + +### Removing the "Fictional Chat" Context + +There are situations where "fictional chat" might not be the right context for your conversation. + +You can remove the "fictional" context from the Main Prompt: + +> Write \{\{char\}\}'s next reply in a conversation with \{\{user\}\}. + +You may not want the AI to think of itself as role-playing at all. Instead of removing the idea of a character, you can remove the idea of an AI: + +> You are \{\{char\}\}, a helpful assistant. You provide useful information and help \{\{user\}\} with their questions. + +### AI as Narrator or Storyteller + +What if you want the AI to act as a narrator, describing events from an omniscient perspective, inventing its own characters and settings? + +One approach is to create a named character for the AI to use as a narrator. This character could be called "Narrator" or "AI", suggesting that the AI is a general-purpose storyteller, or it could be named after a specific scenario or setting, giving the AI the task of narrating a story in that setting. The details of the setting can then be defined in the [Character](/Usage/Characters/characterdesign.md) or in [World Info](/Usage/worldinfo.md). + +You will need to adjust the default main prompt to reflect the AI's role. For a general-purpose narrator, you might use: + +> You are \{\{char\}\}, a skilled and versatile storyteller. Narrate the story. + +or for a specific setting: + +> You are the narrator of a fantasy scenario. Play as the characters that visit \{\{char\}\}. + +It helps to clarify the role of the user in the conversation. Are your messages part of the story, or are they instructions to the narrator about what your character does or says? An example that includes the user in the story: + +> The story should progress by responding to the actions and dialogue of \{\{user\}\}. Narrate the story in third person. + +An example that keeps the user out of the story: + +> 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. + +Defining the role of the user not only helps the AI understand how to respond to your messages, but also to what extent it is allowed to control your persona. This avoids situations where the AI makes decisions for your persona that you would rather make yourself. + +## Post-History Instructions + +Post-History Instructions are additional instructions sent to the AI after the main prompt and the user message. They can be used to provide additional context or instructions to the AI based on the message history. + +Since the Post-History Instructions are sent after the user message, they are the final instructions that the AI receives before generating a response. The AI usually gives them a higher priority than the main prompt, and they can override the main prompt's instructions. + ++++ Text Completion APIs + +Post-History Instructions cannot be defined globally. You could achieve the same effect with an [Author's Note](/Usage/Characters/Author's-Note.md). + +To use per-character Post-History Instructions, add them to the character's [Post-History Instructions](/Usage/Characters/characterdesign.md) and enable **both** [Prefer Char. Instructions](/Usage/User_Settings/User_Settings.md) and [Allow Post-History Instructions](context-template.md#allow-post-history-instructions). + +The Post-History Instructions is added as an invisible user role injection that precedes the last line of the prompt (usually containing a response message "header"). + ++++ Chat Completion APIs + +Post-History Instructions is one of the default prompts in [Prompt Manager](prompt-manager.md). It is usually the last message in the context that the model receives, attributed to ("sent by") the system role. If your Chat Completion API does not support the system role, it will usually be attributed to the user role instead. + ++++ + +## Adding to the Prompt (World Info) + +You can insert additional information anywhere in the prompt using the [World Info](/Usage/worldinfo.md) feature. By setting the conditions for when the information should be inserted, you can guide the AI to include specific details, change how it responds, or add new elements to the conversation. + +Some common uses of World Info include: + +* a "lorebook" or "encyclopedia" with information about the world or setting +* a way to manage different system prompts for various characters and situations +* a place to store memories that the AI should "recall" in the conversation +* a more modular system for creating, editing, and sharing character details +* a source of random events and surprises for the AI to react to, or to make you react to! diff --git a/Usage/Core_Concepts/tokenizer.md b/Usage/Prompts/tokenizer.md similarity index 100% rename from Usage/Core_Concepts/tokenizer.md rename to Usage/Prompts/tokenizer.md diff --git a/Usage/Core_Concepts/user-settings.md b/Usage/User_Settings/User_Settings.md similarity index 98% rename from Usage/Core_Concepts/user-settings.md rename to Usage/User_Settings/User_Settings.md index c2cc26966..918356c8e 100644 --- a/Usage/Core_Concepts/user-settings.md +++ b/Usage/User_Settings/User_Settings.md @@ -1,6 +1,6 @@ --- +order: 120 icon: gear -order: user-settings --- # User Settings @@ -54,7 +54,7 @@ In the Account dialog, you can view and edit your profile information, change yo **Profile Information** * Display name (editable via pencil icon) -* User avatar (can also be changed using [Personas](/Usage/Core_Concepts/personas.md)) +* User avatar (can also be changed using [Personas](/Usage/personas.md)) * Account handle * User role * Account creation date @@ -136,7 +136,7 @@ For more information on the settings in this section of Characters](characterdesign.md) list: +* **Char List Subheader**: Choose what additional information to display under character names in the [ Characters](/Usage/Characters/characterdesign.md) list: - Character Version - Created by * **Import Card Tags**: Controls how tags are handled when importing character cards: diff --git a/Usage/Core_Concepts/Visual-Novel.md b/Usage/User_Settings/Visual-Novel.md similarity index 100% rename from Usage/Core_Concepts/Visual-Novel.md rename to Usage/User_Settings/Visual-Novel.md diff --git a/Usage/Core_Concepts/uicustomization.md b/Usage/User_Settings/uicustomization.md similarity index 98% rename from Usage/Core_Concepts/uicustomization.md rename to Usage/User_Settings/uicustomization.md index 5d989d89b..2287ee27b 100644 --- a/Usage/Core_Concepts/uicustomization.md +++ b/Usage/User_Settings/uicustomization.md @@ -85,7 +85,7 @@ To play your own custom sound on receiving a new message from bot, replace the f Plays at 80% volume. -If the "[Background Sound Only](user-settings.md#miscellaneous)" option is enabled, the sound plays only if SillyTavern window is **unfocused**. +If the "[Background Sound Only](User_Settings.md#miscellaneous)" option is enabled, the sound plays only if SillyTavern window is **unfocused**. ## Formulas Rendering diff --git a/Usage/branches.md b/Usage/branches.md index 67e85202e..344031713 100644 --- a/Usage/branches.md +++ b/Usage/branches.md @@ -1,8 +1,8 @@ --- -redirect: /installation/index.md +redirect: /installation visibility: hidden --- # Branches -This page has been moved to [Installation](/Installation). You will be redirected there shortly. If you are not redirected, click [here](/Installation). +This page has been moved to [Installation](/Installation/index.md). You will be redirected there shortly. If you are not redirected, click [here](/Installation). diff --git a/Usage/faq.md b/Usage/faq.md index 0a332ed51..917cf1236 100755 --- a/Usage/faq.md +++ b/Usage/faq.md @@ -1,5 +1,5 @@ --- -order: -20 +order: 180 icon: question --- @@ -22,7 +22,7 @@ SillyTavern is an app to facilitate these uses: SillyTavern can interact with two types of AI: 1. [Web services](/Usage/API_Connections/openai.md) (Cloud-based, usually paid, proprietary, closed) -2. [Self-hosted](self-hosted.md) (local, free, open-source) +2. [Self-hosted](/Usage/API_Connections/self-hosted.md) (local, free, open-source) ### Paid web service AIs @@ -54,7 +54,7 @@ Cons: * They are not as capable as SOTA models (i.e., they write worse dialog, are less creative, etc). * Running local models requires a GPU with at least 6GB VRAM. -If you are interested in using these, refer to the dedicated guide here: [How To Use A Self-Hosted Model](self-hosted.md). +If you are interested in using these, refer to the dedicated guide here: [How To Use A Self-Hosted Model](/Usage/API_Connections/self-hosted.md). ## Can I use SillyTavern on my phone or tablet? diff --git a/Usage/index.md b/Usage/index.md new file mode 100644 index 000000000..5660dd04b --- /dev/null +++ b/Usage/index.md @@ -0,0 +1,130 @@ +--- +order: 40 +icon: plus +expanded: true +--- + +# Usage + +Interact with AI, your way. Build your world, your work, or your dreams. + +:::callout +## Getting Started + +**[Quick Start](/Usage/quick-start.md)** + +Send your first message to the AI and get a response + +**[Chatting](/Usage/Chatting/index.md)** + +How to chat with the AI and use the chat interface + +**[FAQ](/Usage/Common-Settings.md)** + +Frequently asked questions about SillyTavern, AI models, making characters, getting better responses, and more +::: + + +:::callout +## Fundamentals + +**[API Connections](/Usage/API_Connections/index.md)** + +Connect to AI models for generating text, images, and more + +**[Characters](/Usage/Characters/index.md)** and **[Personas](/Usage/personas.md)** + +Create and use characters to shape the AI's role, and personas to define your identities + +**[Response Configuration](/Usage/Common-Settings.md)** and **[Prompts](/Usage/Prompts/prompts.md)** + +Control the requests that you send to the AI and how it responds +::: + +:::callout +## Building on SillyTavern + +**[World Info](/Usage/worldinfo.md)** + +Manage information and when to insert it into the prompt + +**[Data Bank](/Usage/Characters/data-bank.md)** + +Store and retrieve information for use in the AI's responses + +**[Extensions](/extensions/index.md)** + +Add new features and capabilities to the AI or the interface + +**[Development and Automation](/For_Contributors/index.md)** + +Automate tasks, let your AI interact with the world, and write your own extensions +::: + +--- + +## Control Panels + +What all the buttons do, from the left to the right: + +:::callout + **[Response Configuration](/Usage/Common-Settings.md)** +and **[Prompt Manager](/Usage/Prompts/prompt-manager.md)** + +Control text generation and sampling. Customize prompt construction for Chat Completion APIs. +::: + +:::callout + **[API Connections](/Usage/API_Connections/index.md)** + +Connect to AI models for generating text, images, and more +::: + +:::callout + **[Advanced Formatting](/Usage/Prompts/advancedformatting.md)** + +Customize prompt construction for Text Completion APIs +::: + +:::callout + **[World Info](/Usage/worldinfo.md)** + +Manage information and when to insert it into the prompt +::: + +:::callout + **[User Settings](/Usage/User_Settings/User_Settings.md)** + +Change the theme, and the look and feel of messages and chats +::: + +:::callout + **Backgrounds** + +Change the background image +::: + +:::callout + +**[Extensions](/extensions/index.md)** + +Add new features and capabilities to the AI or the interface +::: + +:::callout + +**[Personas](/Usage/personas.md)** + +Create and manage personas to use with the AI +::: + +:::callout + +**[Characters](/Usage/Characters/index.md)** + +Create and manage characters for the AI to use +::: + + + + diff --git a/Usage/index.yml b/Usage/index.yml deleted file mode 100644 index a47895df8..000000000 --- a/Usage/index.yml +++ /dev/null @@ -1,3 +0,0 @@ -order: 40 -icon: plus -expanded: true diff --git a/Usage/Core_Concepts/personas.md b/Usage/personas.md similarity index 98% rename from Usage/Core_Concepts/personas.md rename to Usage/personas.md index 5b0f1d60f..f9c5a7fee 100644 --- a/Usage/Core_Concepts/personas.md +++ b/Usage/personas.md @@ -1,8 +1,10 @@ --- +order: 110 icon: smiley +route: /usage/core-concepts/personas --- -# Persona Management +# Personas ## What is a persona? diff --git a/Usage/quick-start.md b/Usage/quick-start.md index 807a1b224..1bca6f655 100644 --- a/Usage/quick-start.md +++ b/Usage/quick-start.md @@ -1,9 +1,10 @@ --- -title: Quick Start +order: 190 icon: rocket -order: -10 --- +# Quick Start + !!!light I'm clueless. Just spoonfeed me the easiest and fastest way I can start using SillyTavern. -- *Anonymous* !!! @@ -33,7 +34,7 @@ You can get started with SillyTavern in just a few minutes. Here are two easy wa 6. Close the API Connections window. Enter a message in the chat box at the bottom and press Enter. ![This is an optional caption](/static/quick-start/5_msg.png) -7. Your AI will respond in a few moments. You can continue chatting with it. Success! +7. Your AI will respond in a few moments. You can continue [chatting](/Usage/Chatting/index.md) with it. Success! ![This is an optional caption](/static/quick-start/6_success.png) diff --git a/Usage/Core_Concepts/worldinfo.md b/Usage/worldinfo.md similarity index 98% rename from Usage/Core_Concepts/worldinfo.md rename to Usage/worldinfo.md index 66fbf656e..3f4b54c65 100644 --- a/Usage/Core_Concepts/worldinfo.md +++ b/Usage/worldinfo.md @@ -1,5 +1,5 @@ --- -order: worldinfo +order: 130 icon: globe --- @@ -157,7 +157,7 @@ A single entry can be part of multiple inclusion groups if they are defined as a #### Prioritize Inclusion -To provide more control over which entries are activated via [Inclusion Group](/Usage/Core_Concepts/worldinfo.md#inclusion-group), you can use the 'Prioritize Inclusion' setting. This option allows you to specify deterministically which entry to choose instead of randomly rolling Group Weight chances. +To provide more control over which entries are activated via [Inclusion Group](/Usage/worldinfo.md#inclusion-group), you can use the 'Prioritize Inclusion' setting. This option allows you to specify deterministically which entry to choose instead of randomly rolling Group Weight chances. If multiple entries having the same group label and this setting turned on were activated, the one with the highest 'Order' value will be selected. This is useful for creating fallback sequences via inclusion groups. For example to prioritize low-depth entries with more emphasis, or to choose a specific instruction on setting the scene over another if both are valid. @@ -200,7 +200,7 @@ To enable and use this, the following prerequisites need to be met: 2. The "Enable for World Info" checkbox is ticked in the Vector Storage extension settings. 3. Either the World Info entries that are allowed for keyless matching have the "Vectorized" (🔗) status or the "Enabled for all entries" option is checked in the Vector Storage settings. -The choice of the vectorization model in the extension and the theoretical meaning behind the term "embeddings" won't be covered here. Check out the [Data Bank](/Usage/Core_Concepts/data-bank.md#vector-storage) guide if you require more info on this topic. +The choice of the vectorization model in the extension and the theoretical meaning behind the term "embeddings" won't be covered here. Check out the [Data Bank](/Usage/Characters/data-bank.md#vector-storage) guide if you require more info on this topic. Vector Storage matching adheres to this set of rules: diff --git a/_includes/head.html b/_includes/head.html index bb3694f5a..ac046495b 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -31,9 +31,7 @@ min-height: 8rem; } - .callout img { - width: 3rem; - float: left; + .callout i.fa-solid { margin-right: 1rem; filter: invert(42%) hue-rotate(183deg) brightness(91%) contrast(83%); } diff --git a/extensions/Chat-vectorization.md b/extensions/Chat-vectorization.md index 612ce3582..c1b4e29f7 100644 --- a/extensions/Chat-vectorization.md +++ b/extensions/Chat-vectorization.md @@ -51,10 +51,10 @@ in our collection that are most similar to the text in the search query. In the To enable Chat vectorization, select "Extensions" > "Vector Storage" > "Enabled for chat messages". Configure a vectorization source and vectorization model. Chat vectorization uses the same vector source as Data Bank, -so you may have set this up already. The settings for the Vectorization Source and Vectorization Model are documented in [Data Bank](/Usage/Core_Concepts/data-bank.md). +so you may have set this up already. The settings for the Vectorization Source and Vectorization Model are documented in [Data Bank](/Usage/Characters/data-bank.md). Chat vectorization uses the same vector storage as Data Bank, but this does not need to be set up or configured. -There is also information about Vector Storage in [Data Bank](/Usage/Core_Concepts/data-bank.md). +There is also information about Vector Storage in [Data Bank](/Usage/Characters/data-bank.md). Chat vectorization does not use Data Bank to store the chat messages. The messages are stored in the chat. diff --git a/readme.md b/readme.md index 8efbc4022..109ba3ce4 100644 --- a/readme.md +++ b/readme.md @@ -44,17 +44,17 @@ To have a quick conversation without selecting a character card or to just test 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. -You can also create your own character cards from scratch. Refer to the [Character Design](/Usage/Core_Concepts/characterdesign.md) guide for more information. +You can also create your own character cards from scratch. Refer to the [Character Design](/Usage/Characters/characterdesign.md) guide for more information. ## Key Features -* Advanced [text generation settings](/Usage/Core_Concepts/advancedformatting.md) with many community-made presets -* [World Info support](Usage/Core_Concepts/worldinfo.md): create rich lore or save tokens on your character card -* [Group chats](/Usage/Core_Concepts/groupchats.md): multi-bot rooms for characters to talk to you and/or each other -* [Rich UI customization options](/Usage/Core_Concepts/uicustomization.md): theme colors, background images, custom CSS, and more -* [User personas](/Usage/Core_Concepts/personas.md): let the AI know a bit about you for greater immersion -* [Built-in RAG support](/Usage/Core_Concepts/data-bank.md): add documents to your chats for the AI to reference -* Extensive [chat commands](/Usage/Core_Concepts/slashcommands.md) subsystem and own [scripting engine](/For_Contributors/st-script.md) +* Advanced [text generation settings](/Usage/Prompts/advancedformatting.md) with many community-made presets +* [World Info support](Usage/worldinfo.md): create rich lore or save tokens on your character card +* [Group chats](/Usage/Characters/groupchats.md): multi-bot rooms for characters to talk to you and/or each other +* [Rich UI customization options](/Usage/User_Settings/uicustomization.md): theme colors, background images, custom CSS, and more +* [User personas](/Usage/personas.md): let the AI know a bit about you for greater immersion +* [Built-in RAG support](/Usage/Characters/data-bank.md): add documents to your chats for the AI to reference +* Extensive [chat commands](/Usage/Chatting/slashcommands.md) subsystem and own [scripting engine](/For_Contributors/st-script.md) ## Extensions diff --git a/static/chatbox.png b/static/chatbox.png new file mode 100644 index 000000000..9ed117430 Binary files /dev/null and b/static/chatbox.png differ diff --git a/static/chatmessage.png b/static/chatmessage.png new file mode 100644 index 000000000..2f855cc69 Binary files /dev/null and b/static/chatmessage.png differ