#
世界信息
世界信息(也称为传说书或记忆书)是 ST 中可用的强大工具,用于动态地将提示插入到您的聊天中以帮助指导 AI 回复。
通常,世界信息(简称 WI)用于增强 AI 对您虚构世界细节的理解,但是您可以使用世界信息条目插入任何您想要插入到提示中的内容。
它的功能类似于动态字典,只有在与条目关联的关键字出现在消息文本中时才会插入来自世界信息条目的相关信息。
SillyTavern 引擎激活并适当地将相关传说集成到提示中,为 AI 提供背景信息。
需要注意的是,虽然世界信息有助于引导 AI 朝向所需内容,但它不保证其出现在生成的输出消息中。这取决于您的模型利用额外信息的能力!
#
专业提示
- 世界信息引擎是一个非常强大的提示管理工具。不要只专注于添加角色传说,请随意尝试。
- 激活关键字、标题和其他不在内容字段中的信息不会插入到上下文中,因此每个世界信息条目都应该有全面的、独立的描述。
- 要创建丰富而详细的世界传说,条目可以通过使用递归激活相互链接和引用。有关更多内容,请参见下面的
递归 。 - SillyTavern 为插入的背景信息提供灵活的上下文预算。为了节省提示令牌,建议保持条目内容简洁。
#
进一步阅读
- 世界信息百科全书:世界信息和传说书的详尽深入指南。作者:kingbri、Alicat、Trappu。
#
角色传说
可选地,可以将一个世界信息文件分配给角色,以作为与该角色(包括群组)的所有聊天的专用传说来源。
为此,请导航到角色管理面板并单击地球按钮,然后从下拉列表中选择世界信息并单击"确定"。
要解除绑定或更改角色传说,请 Shift 单击地球按钮。如果在移动设备上,请单击"更多..."然后"链接世界信息"。
#
角色传说插入策略
生成 AI 回复时,来自角色世界信息的条目将使用以下策略之一与来自全局世界信息选择器的条目组合:
#
均匀排序(默认)
所有条目将根据其插入顺序排序,就好像它们是一个大文件的一部分,忽略来源。
#
角色传说优先
来自角色世界信息的条目将首先根据其插入顺序包含,然后是来自全局世界信息的条目。
#
全局传说优先
来自全局世界信息的条目将首先根据其插入顺序包含,然后是来自角色世界信息的条目。
#
世界信息条目
#
关键字
触发世界信息条目激活的关键字列表。关键字默认不区分大小写(这是
#
正则表达式(Regex)作为关键字
关键字通过支持正则表达式提供更灵活的匹配方法。这使得可以使用可选单词或字符、间距以及正则表达式提供的所有其他实用程序来匹配更动态的内容。
如果定义的关键字是有效的正则表达式(Javascript 正则表达式风格,使用 / 作为分隔符。允许所有标志),则在检查条目是否应该触发时将被视为如此。可以输入多个正则表达式作为单独的关键字,并将彼此配合工作。在正则表达式内部,逗号是可能的。纯文本关键字不支持逗号,因为它们被视为关键字分隔符。
高级正则表达式匹配用例示例: 当角色执行与天气相关的动作时应插入的条目/指令
/(?:{{char}}|he|she) (?:is talking about|is noticing|is checking whether|observes) (?:the )?(rainy weather|heavy wind|it is going to rain|cloudy sky)/i
有关正则表达式语法和可能性的更多信息:正则表达式 - JavaScript | MDN
#
高级正则表达式每消息匹配
ST 在 WI 扫描缓冲区中为每个聊天消息添加 character name: 前缀,并且在 v1.12.6 之后,使用字符值 1 (\x01) 连接前置它们。
这意味着您可以使用与该分隔字符相关的正则表达式匹配来自特定角色的特定输入或输出。
例如,要仅匹配用户说"hello",您可以使用以下正则表达式:
/\x01{{user}}:[^\x01]*?hello/
#
关键字输入
有两种输入关键字模式,每种模式都有略有不同的 UI。在 ⌨️ 纯文本模式(默认)中,关键字可以在单个文本字段中作为逗号分隔列表输入。也可以包含正则表达式,但它们没有任何特殊高亮。在 ✨ 花哨模式中,关键字显示为单独的元素,正则表达式将如此高亮。该控件支持编辑和删除关键字。可以通过输入控件内的内联按钮切换模式。
#
可选过滤器
与主关键字一起使用的附加关键字的逗号分隔列表。 如果未提供参数,则忽略此标志。 支持 AND ANY、NOT ANY 或 NOT ALL 的逻辑
- AND ANY = 只有当主关键字和可选过滤器关键字中的任何一个在扫描的上下文中时才激活条目。
- AND ALL = 只有当主关键字和所有可选过滤器关键字都存在时才激活条目。
- NOT ANY = 只有当主关键字和可选过滤器关键字都不在扫描的上下文中时才激活条目。
- NOT ALL = 尽管主关键字触发,但如果所有可选过滤器都在扫描的上下文中,则阻止条目激活。
这些关键字也支持
#
条目内容
条目激活时插入到提示中的文本。
#
插入顺序
数值。如果同时激活多个条目,则定义条目的优先级。较高顺序号的条目将插入到上下文的末尾附近,因为它们对输出有更大的影响。
#
插入位置
- 角色定义之前: 世界信息条目插入到角色描述和场景之前。对对话有中等影响。
- 角色定义之后: 世界信息条目插入到角色描述和场景之后。对对话有更大影响。
- 示例消息之前: 世界信息条目被解析为示例对话块,并插入到角色卡提供的示例之前。
- 示例消息之后: 世界信息条目被解析为示例对话块,并插入到角色卡提供的示例之后。
- 作者注释顶部: 世界信息条目插入到作者注释内容的顶部。影响程度取决于作者注释位置。
- 作者注释底部: 世界信息条目插入到作者注释内容的底部。影响程度取决于作者注释位置。
- @ D: 世界信息条目插入到聊天中的特定深度(深度 0 为提示底部)。
- ⚙️ - 作为系统角色消息
- 👤 - 作为用户角色消息
- 🤖 - 作为助手角色消息
示例消息条目将根据提示构建设置进行格式化:指令模式或聊天完成提示管理器。它们还遵循示例消息行为规则:在完整上下文时逐渐推出、始终保留或完全禁用。
如果您的作者注释被禁用(插入频率 = 0),则作者注释位置中的世界信息条目将被忽略!
#
条目标题/备注
为方便标记条目的文本字段,不被 AI 或任何触发逻辑使用。
如果为空,可以通过单击"填充空备注"按钮使用条目的第一个关键字来填充。
#
策略
- 🔵(蓝圈)= 条目将始终存在于提示中。
- 🟢(绿圈)= 条目只有在关键字存在时才会被触发。
- 🔗(链条链接)= 允许通过嵌入相似性插入条目。
每个条目还有一个切换开关,允许您启用或禁用该条目。
#
概率(触发 %)
该值就像一个额外的过滤器,当条目通过任何方式(常量、主关键字、递归)激活时,增加了不插入条目的机会。
- 概率 = 100 意味着条目将在每次激活时插入。
- 概率 = 50 意味着条目将以 1:1 的机会插入。
- 概率 = 0 意味着条目将不会插入(基本上禁用它)。
使用它在您的聊天中创建随机事件。例如,如果消息中提到了古神的名字,则每条消息可能有 1% 的机会唤醒古神。
#
包含组
包含组控制当同时触发多个具有相同组标签的条目时如何选择条目。如果激活了多个具有相同组标签的条目,则只有一个将插入到提示中。
默认情况下,选择的条目基于其组权重(默认为 100 分)随机选择 — 数字越高,选择概率越高。这允许在触发的条目中进行随机选择,为交互添加惊喜和变化的元素。
单个条目可以是多个包含组的一部分,如果它们被定义为逗号分隔列表。将应用与上述相同的逻辑。如果该条目被触发,它将禁用作为其任何组一部分的所有其他条目。因此,如果激活了任何组,则不会激活该条目。
#
优先包含
为了通过
如果激活了多个具有相同组标签并启用此设置的条目,将选择具有最高"顺序"值的条目。这对于通过包含组创建回退序列很有用。例如,优先考虑具有更多强调的低深度条目,或者在两者都有效时选择设置场景的特定指令而不是另一个。
#
使用组评分
当全局或每个条目启用此设置时,激活的条目关键字的数量决定组获胜者选择。只有具有最高关键字匹配数的组的子集将留给组权重或包含优先级激活 - 其余的将被停用并从组中移除。
使用它为大型组中的单个条目提供更多特异性。例如,它们可以具有通用关键字和特定关键字。当未提供特定关键字时,将插入随机条目,反之亦然。
主关键字的评分计算逻辑是 1 次匹配 = 1 分。
对于辅助关键字,交互取决于所选的选择性逻辑:
- AND ANY:1 次辅助匹配 = 1 分。
- AND ALL:如果它们都匹配,则每个辅助关键字为 1 分。
- NOT ANY 和 NOT ALL:无变化。
示例:
- 条目 1。关键字:song、sing、Black Cat。组:songs
- 条目 2。关键字:song、sing、Ghosts。组:songs
输入 sing me a song 可以激活任一条目(都激活了 2 个关键字),但 sing me a song about Ghosts 将只激活条目 2(激活了 3 个关键字)。
#
自动化 ID
允许将世界信息条目与来自快速回复扩展的STscripts集成。如果快速回复命令和 WI 条目具有相同的自动化 ID,则当激活具有匹配 ID 的条目时将自动执行该命令。
自动化按照触发的顺序执行,遵循您指定的排序策略,结合
如果激活了多个具有相同自动化 ID 的条目,脚本命令将只运行一次。
#
角色过滤器
可以激活此条目的角色名称列表。如果此列表不为空,则条目仅对名称在列表中的角色激活。当选择标签时,条目仅对具有该特定标签的角色激活。
"排除"模式反转过滤器,意味着条目将对除添加到列表中或具有所选标签的角色之外的所有角色激活。
#
触发器
可以激活此世界信息条目的生成类型。如果未选择任何内容,则条目可以针对所有生成类型激活。如果选择了一个或多个,则条目仅针对那些特定的生成类型激活:
- 正常: 常规消息生成请求。
- 继续: 当按下继续按钮时。
- 扮演: 当按下扮演按钮时。
- 滑动: 当生成通过滑动触发时。
- 重新生成: 在单人聊天中按下重新生成按钮时。
- 静默: 后台生成请求,通常由扩展或STscript命令触发。
"重新生成"触发器在群聊中不可用,因为它使用不同的重新生成逻辑:删除上次回复的所有消息,并使用"正常"生成类型根据选择的群组回复策略将消息排队。
#
其他匹配源
默认情况下,世界信息条目仅与当前对话的内容匹配。这些选项允许您匹配不显示在聊天中的不同角色信息,甚至是人格信息。当您想要拥有要在多个角色之间使用的大范围条目但不想管理大型标签列表,或者不想在每次创建新角色时更新角色过滤器列表时,这很有用。这也允许您根据当前活动的人格匹配条目。
- 角色描述: 与角色描述匹配。
- 角色个性: 与角色个性摘要匹配,可在高级定义下找到。
- 场景: 与角色指定的场景匹配,可在高级定义下找到。
- 人格描述: 与当前选择的人格的描述匹配。
- 角色注释: 与角色的注释匹配,可在高级定义下找到。
- 创建者注释: 与角色创建者的注释匹配,可在高级定义下找到。创建者的注释通常不包含在提示中。
#
向量存储匹配
向量存储扩展通过使用最近聊天消息与世界信息条目内容之间的相似性,提供了关键字匹配的替代方案。
要启用和使用此功能,需要满足以下先决条件:
- 向量存储扩展已启用并配置为使用可用的嵌入源之一。
- 在向量存储扩展设置中勾选"为世界信息启用"复选框。
- 允许无关键字匹配的世界信息条目具有"向量化"(🔗)状态,或者在向量存储设置中选中"为所有条目启用"选项。
扩展中向量化模型的选择以及"嵌入"一词背后的理论含义将不在本文中涵盖。如果您需要有关此主题的更多信息,请查看数据银行指南。
向量存储匹配遵循这组规则:
- 可以通过"最大条目数"设置调整允许与向量存储匹配的最大条目数。此数字仅设置限制,不影响世界信息激活设置中设置的令牌预算。所有预算规则仍然适用。
- 此功能仅替换关键字的检查。必须满足所有其他检查才能插入条目:触发%、角色过滤器、包含组等。
- 不使用激活设置或条目覆盖中的"扫描深度"设置。而是使用向量存储"查询消息"值来获取要匹配的文本。这允许像"扫描深度"设置为 0 的配置,因此不会进行常规关键字匹配,但条目仍然可以由向量激活。
- "向量化"状态只是一个额外的标记。如果设置了关键字,该条目仍将表现为正常的、启用的、非常量记录,将由关键字激活。如果您希望它们仅由向量激活,请删除关键字。
注意
由于检索质量完全取决于嵌入模型的输出,因此无法预测将插入哪些条目。如果您想要确定性和可预测的结果,请坚持使用关键字匹配。
#
定时效果
通常,世界信息评估是无状态的,意味着评估结果相同,仅取决于当前聊天上下文。然而,随着定时效果的引入,您可以创建具有激活延迟、在触发后保持活动状态或在激活后无法触发的条目。
#
定时效果规则
- 效果的时间帧以消息(不是消息/交换对)为单位测量,0 表示没有效果。
- 效果仅适用于激活条目的聊天。分支继承父聊天的状态。
- 如果聊天没有前进,例如如果最后一条消息被滑动或删除,则活动的定时效果将被移除。
- 对当前处于定时效果的条目进行任何更改将导致效果被强制移除。
- 如果效果已经活动,则关键字的后续触发不会刷新效果持续时间。
#
定时效果类型
- 粘性 - 条目在激活后保持活动状态 N 条消息。粘性条目在后续扫描中忽略概率检查,直到它们过期。
- 冷却 - 条目在激活后 N 条消息内无法激活。可以与粘性一起使用:条目在粘性持续时间结束时进入冷却。
- 延迟 - 除非在评估时聊天中至少有 N 条消息,否则条目无法激活。
- 延迟 = 0 -> 条目可以随时激活。
- 延迟 = 1 -> 如果聊天为空(无问候语),则条目无法激活。
- 延迟 = 2 -> 如果聊天中零条或只有一条消息,则条目无法激活,等等。
#
定时效果示例
条目配置:粘性 = 3,冷却 = 2,延迟 = 2。
消息 0:延迟
消息 1:条目激活
消息 2:粘性
消息 3:粘性
消息 4:粘性
消息 5:冷却
消息 6:冷却
消息 7:条目可以再次激活
#
激活设置
世界信息屏幕顶部的可折叠菜单。
#
扫描深度
可以在条目级别覆盖。
定义应该在聊天历史记录中扫描多少消息以查找世界信息关键字。
- 如果设置为 0,则仅评估递归条目和作者注释。
- 如果设置为 1,则 SillyTavern 仅扫描最后一条消息。
- 2 = 最后两条消息,等等。
#
包含名称
定义聊天参与者的名称是否应作为消息前缀包含在扫描的文本缓冲区中。这允许激活使用名称作为关键字的条目,而无需在消息中直接提及名称。
请参阅下面要扫描的文本示例,假设聊天参与者名为 Alice 和 Bob。
启用(默认):
Alice:你好!很高兴见到你。
Bob:今天天气怎么样?
禁用:
你好!很高兴见到你。
今天天气怎么样?
#
上下文 % / 预算
定义世界信息条目一次可以使用多少令牌。 您可以定义相对于 API 最大上下文设置的阈值(上下文 %)或客观的令牌阈值(预算)
如果预算耗尽,则即使提示中存在关键字,也不会激活更多条目。
常量条目将首先插入。然后是具有较高顺序号的条目。
通过直接提及其关键字插入的条目比在其他条目内容中提及的条目具有更高的优先级。
#
最小激活次数
此设置与最大递归步骤互斥。
最小激活次数:如果设置为非零值,这将忽略"扫描深度"的限制,从最新消息向后搜索聊天日志中的关键字,直到触发最小激活次数中指定的尽可能多的条目。这仍然受到最大深度设置或总体预算上限的限制。
由最小激活次数触发的额外扫描扫描将不会检查在先前步骤中通过递归添加的条目。只有聊天消息和扩展提示可以触发这些额外激活。但是,由最小激活次数激活的条目可以像往常一样触发其他条目。
#
最大深度
使用最小激活次数设置时要扫描的最大深度。
#
递归扫描
递归扫描允许条目激活其他条目或被其他条目激活,从而实现不同世界信息条目之间的复杂交互和依赖关系。此功能可以显著增强创意场景的动态性质。 是否启用递归扫描可以通过全局设置递归扫描控制。 每个条目有三个选项可用于控制递归:
8 不可递归: 选择此复选框时,该条目不会被其他条目激活。这对于不应更改或受其他世界信息条目影响的静态信息很有用。
防止进一步递归: 选择此选项确保一旦此条目被激活,它将不会触发任何其他条目。这有助于避免意外的激活链。
延迟直到递归: 此条目仅在递归检查期间激活,意味着它不会在初始传递中触发,但可以由具有递归启用的其他条目激活。现在,对于那些延迟,添加了递归级别,条目按级别分组。最初,只有第一级(最小数字)将匹配。一旦找不到匹配,下一级就有资格匹配,重复该过程直到检查所有级别。这允许对递归期间如何以及何时揭示更深层次的信息进行更多控制,特别是与 NOT ANY 或 NOT ALL 关键字匹配组合的标准结合使用时。
条目可以通过在内容文本中提及它们的关键字来激活其他条目。
例如,如果您的世界信息包含两个条目:
条目 #1
关键字:Bessie
内容:Bessie 是一头奶牛,与 Rufus 是朋友。
条目 #2
关键字:Rufus
内容:Rufus 是一只狗。
如果消息文本仅提及 Bessie,则两者都将被拉入上下文。
#
最大递归步骤
此设置与最小激活次数互斥。
当设置为零时,递归嵌套仅受您的提示预算限制。当设置为非零值时,将扫描扫描的总数限制为所需的最大"嵌套级别"。
示例值:
- 1 实际上禁用了递归,因为检查在第一步后停止。
- 2 只能激活递归条目一次。
- 3 可以触发递归两次...
#
区分大小写的键
可以在条目级别覆盖。
要被拉入上下文,条目关键字需要与在世界信息条目中定义的大小写匹配。
当您的关键字是常见单词或常见单词的一部分时,这很有用。
例如,当此设置活动时,关键字 'rose' 和 'Rose' 将根据输入被视为不同。
#
匹配整个单词
可以在条目级别覆盖。
关键字仅包含一个单词的条目只有在整个单词存在于搜索文本中时才会匹配。默认启用。
例如,如果设置启用且条目关键字为"king",则诸如"国王万岁"之类的文本将被匹配,但"这不是我的喜好"则不会。
重要: 当与不使用空格分隔单词的语言(例如日语或中文)一起使用时,此设置可能会产生有害影响。如果您用这些语言编写条目,建议保持关闭。
#
溢出时提醒
如果激活的世界信息超过分配的令牌预算,则显示提醒。