上下文模板

AI 模型通常要求以特定方式提供角色数据。SillyTavern 内置了针对多种模型的预制转换规则,你也可以根据需要自由定制。

在「高级格式设置」面板中编辑这些设置。

故事字符串

此字段是提示词前言的模板(内部称为故事字符串),是为文本补全和 instruct 模型添加角色卡信息的主要方式。

该模板支持 Handlebars 语法、自定义文本注入或格式化,以及任何其他。语言参考:https://handlebarsjs.com/guide/

以下参数可用于 Handlebars 求值器(用双花括号包裹):

  1. {{anchorBefore}}:位置设置为「Before Story String」的提示词。
  2. {{anchorAfter}}:位置设置为「After Story String」的提示词。
  3. {{description}}:角色的描述
  4. {{scenario}}:角色的场景
  5. {{personality}}:角色的性格
  6. {{system}}系统提示词,或角色的主提示词覆盖(若存在且在用户设置中启用了「优先使用角色提示词」)。
  7. {{persona}}:所选人设的描述
  8. {{char}}:角色名称。
  9. {{user}}:所选人设的名称。
  10. {{wiBefore}}{{loreBefore}}:位置设置为「Before Char Defs」的已激活世界信息条目合并内容。
  11. {{wiAfter}}{{loreAfter}}:位置设置为「After Char Defs」的已激活世界信息条目合并内容。
  12. {{mesExamples}}:(可选)角色的示例对话,以带分隔符的 instruct 格式呈现。
  13. {{mesExamplesRaw}}:角色的示例对话的原始格式,不含任何格式化。

支持特殊的 {{trim}} 宏,可移除其周围的换行符。如果希望某段文本紧接前一行而不换行,请使用此宏(空格不会被修剪)。

警告:如果故事字符串模板中缺少上述任何参数,该参数的内容将不会出现在提示词中。

提示词锚点

{{anchorBefore}}{{anchorAfter}} 是通用占位符,用于放置由各种扩展和杂项功能在固定位置添加的提示词,例如:

故事字符串位置

默认情况下,渲染后的故事字符串(所有占位符均已替换)位于提示词最开头,后接示例消息和可见的聊天历史。

此外,可通过选择「In-chat @ Depth」选项将其移至动态位置,使故事字符串出现在聊天上下文的特定深度处。

故事字符串包裹

  • **Default(默认)**位置:渲染后的故事字符串将使用故事字符串序列中定义的序列进行包裹。
  • In-chat @ Depth 位置:渲染后的故事字符串将使用聊天消息序列中为所选角色(默认为系统)定义的序列进行包裹。

示例分隔符

用作示例对话块的块头和块间分隔符。示例对话中所有的 <START> 标签将被替换为此字段的内容。

聊天开始

在渲染后的故事字符串之后、示例对话块之后,但在上下文中第一条消息之前插入的分隔符。

将分隔符作为停止字符串

将「示例分隔符」和「聊天开始」添加到停止字符串列表中。

在模型倾向于产生幻觉或「泄露」以分隔符开头的完整示例对话块时很有帮助。

将名称作为停止字符串

将角色名称和用户人设名称添加到停止字符串列表中。

建议保持开启,以防止模型冒充用户或角色。

始终在提示词中添加角色名称

在提示词末尾追加角色名称,强制模型以角色身份续写消息:

** 其他上下文 **
角色: