上下文模板

中文译稿 · 由官方原文机器翻译,尚未逐句校对。对照原文 ↗

适用于:文本补全 API

对于聊天补全 API 中的等效设置,请使用 提示词管理器.

通常,AI 模型要求您以某种特定方式向它们提供角色数据。 SillyTavern 包含针对不同型号的预制转换规则列表,但您可以根据需要自定义它们。

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

故事串

该字段是提示词前导码(内部称为故事字符串)的模板。这是添加定义信息的主要方式 角色卡 用于文本完成和指导模型。

该模板支持 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}}:(可选)角色 对话示例,带有分隔符的指令格式。
  13. {{mesExamplesRaw}}:角色的 对话示例 原始格式,没有任何格式。

重要

使用时 {{mesExamples}} 在故事字符串中,设置 “消息行为示例” 在 用户设置 面板至 “永远不要包含示例” 以避免在提示词中重复示例消息。

一个特别的 {{trim}} 支持宏来删除它周围的任何换行符。如果您希望文本的一部分不与上一行用换行符分隔,请使用它(空间 不是 修剪过的).

警告:如果故事字符串模板中缺少上述任何参数,则它们根本不会在提示词中发送。

提示词锚

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

故事字符串位置

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

或者,您可以通过选择“聊天中@深度”选项将其移动到动态位置,该选项将故事字符串放置在聊天上下文中的特定深度。

注意

如果模板包含用于包装故事字符串的静态提示词元素(特定于模型的前缀或后缀),则使用“In-Chat @ Depth”位置将导致其与重复序列错误地双重包装,这可能会导致意外结果。

在这种情况下,您可以通过以下方式之一解决该问题:

  1. 内置模板:使用中描述的步骤将模板重置为其默认值 高级格式设置.
  2. 自定义模板:将静态元素从故事字符串模板移至 故事字符串序列.

故事字符串绕行

以下部分仅适用于 指令模式 已开启。

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

分隔符示例

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

聊天开始

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

分隔符作为停止字符串

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

如果模型倾向于产生幻觉或泄漏分隔符前面的整个示例对话块,则很有帮助。

名称作为停止字符串

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

建议保持打开状态以防止模型冒充。

始终将角色的名称添加到提示词

当指令模式打开时,此设置无效。名称行为而是由所选的定义 包括姓名 选项。

将角色的名称附加到提示词以强制模型将消息完成为角色:

** OTHER CONTEXT HERE **
Character: