上下文模板
适用于:文本补全 API
聊天补全 API 中的等效设置,请使用提示词管理器。
AI 模型通常要求以特定方式提供角色数据。SillyTavern 内置了针对多种模型的预制转换规则,你也可以根据需要自由定制。
在「高级格式设置」面板中编辑这些设置。
故事字符串
此字段是提示词前言的模板(内部称为故事字符串),是为文本补全和 instruct 模型添加角色卡信息的主要方式。
该模板支持 Handlebars 语法、自定义文本注入或格式化,以及任何其他宏。语言参考:https://handlebarsjs.com/guide/
以下参数可用于 Handlebars 求值器(用双花括号包裹):
{{anchorBefore}}:位置设置为「Before Story String」的提示词。{{anchorAfter}}:位置设置为「After Story String」的提示词。{{description}}:角色的描述。{{scenario}}:角色的场景。{{personality}}:角色的性格。{{system}}:系统提示词,或角色的主提示词覆盖(若存在且在用户设置中启用了「优先使用角色提示词」)。{{persona}}:所选人设的描述。{{char}}:角色名称。{{user}}:所选人设的名称。{{wiBefore}}或{{loreBefore}}:位置设置为「Before Char Defs」的已激活世界信息条目合并内容。{{wiAfter}}或{{loreAfter}}:位置设置为「After Char Defs」的已激活世界信息条目合并内容。{{mesExamples}}:(可选)角色的示例对话,以带分隔符的 instruct 格式呈现。{{mesExamplesRaw}}:角色的示例对话的原始格式,不含任何格式化。
重要
在故事字符串中使用 {{mesExamples}} 时,请将 用户设置面板中的**「示例消息行为」设置为「从不包含示例」**,以避免在提示词中重复出现示例消息。
支持特殊的 {{trim}} 宏,可移除其周围的换行符。如果希望某段文本紧接前一行而不换行,请使用此宏(空格不会被修剪)。
警告:如果故事字符串模板中缺少上述任何参数,该参数的内容将不会出现在提示词中。
提示词锚点
{{anchorBefore}} 和 {{anchorAfter}} 是通用占位符,用于放置由各种扩展和杂项功能在固定位置添加的提示词,例如:
故事字符串位置
默认情况下,渲染后的故事字符串(所有占位符均已替换)位于提示词最开头,后接示例消息和可见的聊天历史。
此外,可通过选择「In-chat @ Depth」选项将其移至动态位置,使故事字符串出现在聊天上下文的特定深度处。
故事字符串包裹
以下内容仅在 Instruct 模式开启时适用。
- **Default(默认)**位置:渲染后的故事字符串将使用故事字符串序列中定义的序列进行包裹。
- In-chat @ Depth 位置:渲染后的故事字符串将使用聊天消息序列中为所选角色(默认为系统)定义的序列进行包裹。
示例分隔符
用作示例对话块的块头和块间分隔符。示例对话中所有的 <START> 标签将被替换为此字段的内容。
聊天开始
在渲染后的故事字符串之后、示例对话块之后,但在上下文中第一条消息之前插入的分隔符。
将分隔符作为停止字符串
将「示例分隔符」和「聊天开始」添加到停止字符串列表中。
在模型倾向于产生幻觉或「泄露」以分隔符开头的完整示例对话块时很有帮助。
将名称作为停止字符串
将角色名称和用户人设名称添加到停止字符串列表中。
建议保持开启,以防止模型冒充用户或角色。
始终在提示词中添加角色名称
当 Instruct 模式开启时,此设置无效。名称行为由所选的包含名称选项决定。
在提示词末尾追加角色名称,强制模型以角色身份续写消息:
** 其他上下文 **
角色: