上下文模板

通常情况下,AI 模型需要你以某种特定方式向其提供角色数据。SillyTavern 内置了一份针对不同模型的预置转换规则,但你也可以按自己的喜好进行自定义。

请在“高级格式化”面板中编辑这些设置。

故事字符串

该字段是提示词前言(内部称为故事字符串)的模板。这是为文本补全和指令模型添加角色卡中所定义信息的主要方式。

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

我们向 Handlebars 求值器提供以下参数(用双花括号包裹):

  1. {{anchorBefore}}:设置为使用“故事字符串之前”位置的提示词。
  2. {{anchorAfter}}:设置为使用“故事字符串之后”位置的提示词。
  3. {{description}}:角色的描述
  4. {{scenario}}:角色的场景
  5. {{personality}}:角色的人格
  6. {{system}}系统提示词,或在角色主提示词覆盖存在且用户设置中启用了“优先使用角色提示词”时使用该覆盖。
  7. {{persona}}:所选人格描述
  8. {{char}}:角色名。
  9. {{user}}:所选人格的名称。
  10. {{wiBefore}}{{loreBefore}}:插入位置设为“角色定义之前”的已激活世界书条目合集。
  11. {{wiAfter}}{{loreAfter}}:插入位置设为“角色定义之后”的已激活世界书条目合集。
  12. {{mesExamples}}:(可选)角色的对话示例,以分隔符进行指令格式化。
  13. {{mesExamplesRaw}}:角色的对话示例原始格式,不含任何格式化。

支持一个特殊的 {{trim}} 宏,用于移除其周围的所有换行符。如果你希望某段文本不通过换行符与上一行分隔,可以使用它(空格不会被移除)。

警告:如果上述任何参数在故事字符串模板中缺失,它们将完全不会包含在发送的提示词中。

提示词锚点

{{anchorBefore}}{{anchorAfter}} 是供各扩展和杂项功能在所选静态位置添加提示词的通用占位符,例如:

故事字符串位置

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

或者,你也可以通过选择“聊天内按深度”选项将其移动到动态位置,这样会将故事字符串放置在聊天上下文的指定深度处。

故事字符串包装

  • 默认位置:渲染后的故事字符串将使用故事字符串序列中定义的序列进行包装。
  • 聊天内按深度位置:渲染后的故事字符串将使用聊天消息序列中为所选角色(默认:系统)定义的序列进行包装。

示例分隔符

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

聊天起始

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

分隔符作为停止字符串

将“示例分隔符”和“聊天起始”添加到停止字符串列表中。

如果模型倾向于幻觉或泄露以分隔符开头的整段对话示例块,这会很有用。

名称作为停止字符串

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

建议保持开启,以防止模型冒充。

始终将角色名加入提示词

将角色名追加到提示词中,以强制模型以该角色的身份完成消息:

** OTHER CONTEXT HERE **
Character: