SillyTavern WorldInfo
SillyTavern serves as a robust local role-playing platform designed to provide an immersive and customizable experience. Running on a server installed on your personal computer, it offers a user-friendly interface in your browser, allowing you to effortlessly manage your role-playing sessions. The platform provides a comprehensive suite of features, including character management, WorldInfo integration, chat management, and AI API connection management.
Character management allows you to create, customize, and manage your characters, along with their attributes, appearances, and background stories. This feature makes it easy to build a diverse cast of unique individuals for your role-play sessions.
WorldInfo is a key component of SillyTavern. It is an advanced system for organizing and dynamically accessing data sets, such as character attributes, storylines, settings, and AI settings. Using JSON format, you can define entries with numerous options for triggering, positioning, and customizing their content, which helps in creating rich and intricate role-play scenarios. By leveraging WorldInfo, you can shape your narrative with precision and flexibility, making your experiences more interactive and immersive.
The chat management feature facilitates seamless communication with other players and the AI by enabling you to control the flow of conversations and messages. This allows you to engage in engaging role-play exchanges with your fellow players or AI companions.
Lastly, the AI API connection management feature enables you to incorporate advanced AI capabilities into your role-playing experience. You can interact with powerful AI systems and utilize their analytical, creative, and storytelling abilities to enrich your role-play sessions.
Overall, SillyTavern offers an all-encompassing solution for local role-play enthusiasts, providing you with the tools to create and control intricate storylines, manage characters, facilitate communication, and connect with advanced AI systems. With its comprehensive feature set, SillyTavern empowers you to design and participate in memorable role-play adventures, all within the comfort of your own home.
Here is the JSON definition as an example and it's explanation:
{
"entries": {
"0": {
"uid": 0,
"key": [],
"keysecondary": [],
"comment": "Constant entry always on",
"content": "This entry is always present in the AI's response.",
"constant": true,
"vectorized": false,
"selective": true,
"selectiveLogic": 0,
"addMemo": true,
"order": 100,
"position": 0,
"disable": false,
"excludeRecursion": false,
"preventRecursion": false,
"delayUntilRecursion": false,
"probability": 100,
"useProbability": true,
"depth": 4,
"group": "",
"groupOverride": false,
"groupWeight": 100,
"scanDepth": null,
"caseSensitive": null,
"matchWholeWords": null,
"useGroupScoring": null,
"automationId": "",
"role": null,
"sticky": 0,
"cooldown": 0,
"delay": 0,
"displayIndex": 0
},
"1": {
"uid": 1,
"key": ["example"],
"keysecondary": [],
"comment": "Conditional entry only if triggered by thekeyword 'example'",
"content": "This entry provides an example for conditional triggers and explains other entry definitions.",
"constant": false,
"vectorized": false,
"selective": true,
"selectiveLogic": 0,
"addMemo": true,
"order": 100,
"position": 0,
"disable": false,
"excludeRecursion": false,
"preventRecursion": false,
"delayUntilRecursion": false,
"probability": 100,
"useProbability": true,
"depth": 4,
"group": "",
"groupOverride": false,
"groupWeight": 100,
"scanDepth": null,
"caseSensitive": null,
"matchWholeWords": null,
"useGroupScoring": null,
"automationId": "",
"role": null,
"sticky": 0,
"cooldown": 0,
"delay": 0,
"displayIndex": 1
}
}
}
- "uid": Each entry is uniquely identified by a numerical value, which helps in organizing and referencing them.
- "key" and "keysecondary": These arrays list the keywords or phrases that trigger the entry when present in the chat. You can have multiple keywords in either array or a combination of both, and you can use logical operators (and, or, not) to refine the trigger conditions.
- "comment": A text field providing a brief description of the entry's purpose.
- "content": The actual text or data that will be used in the response when the entry is triggered.
- "constant": A boolean value that indicates if the entry is always present (true) or conditional (false).
- "vectorized": Determines if the entry uses a vector-based storage system (rule based background system that reorganizes entry positions dynamically, we don't want to use this, as it is still in development).
- "selective": This boolean value shows whether the entry requires a specific trigger or not. In other words, if it should always be present or only show up when a specific keyword is used.
- "selectiveLogic": Denotes the method to trigger the entry by a keyword, with 0 meaning any keyword in "key" or "keysecondary", and other values representing more advanced logic.
- "addMemo": Enables or disables the addition of a memo about the entry's activation in a log.
- "order": A numerical value that determines the priority of the entry relative to others, with higher values meaning it will be inserted closer to the end of the output.
- "position": The placement of the entry within the chat context (Before Char Defs, After Char Defs, Before Example Messages, After Example Messages, Before AN, Bottom of AN, @ Depth, as a system message, user message, or assistant message).
- "disable": When enabled, prevents the entry from being triggered.
- "excludeRecursion": Disables the ability to activate the entry while another entry is active.
- "preventRecursion": Prohibits the entry from activating other entries.
- "delayUntilRecursion": The entry will only activate after a recursive check.
- "probability": Sets the chance (in percentage) for the entry NOT to get triggered. A probability of 100% means it will always be inserted, while 0% disables it.
- "useProbability": Enables or disables the probability-based control of entry activation.
- "depth": Determines at which depth in the chat the entry is activated.
- "group": Organizes entries into groups for management and triggering.
- "groupOverride": Overrides group-based triggering for this entry, priotizing it always before other entries in the group.
- "groupWeight": Relative likelihood of an entry being activated within its group (percentage).
- "scanDepth": Defines the depth at which keywords are searched for triggering an entry.
- "caseSensitive": Determines whether the keyword matching is case-sensitive.
- "matchWholeWords": Specifies if the entire keyword should be present in the text or not.
- "useGroupScoring": Enables or disables group-based scoring for entry triggers.
- "automationId": An optional identifier for external automation systems.
- "role": Defines the role the entry should be inserted as (system message, user message, or assistant message).
- "sticky": Specifies how long (in messages) the entry should remain active after being triggered.
- "cooldown": Prevents the entry from triggering again within a certain number of messages.
- "delay": The number of messages that need to be exchanged before the entry becomes active after triggering.
- "displayIndex": A visual identifier for sorting entries in the WorldInfo editor.
By utilizing these options, you can create intricate and dynamic WorldInfo definitions to customize and control the characters's and system's response, making the role-play experience more immersive and interactive, while using SillyTavern.