上下文模板
适用于:文本补全 API
对于聊天补全 API 的等效设置,请使用提示词管理器。
通常情况下,AI 模型需要你以某种特定方式向其提供角色数据。SillyTavern 内置了一份针对不同模型的预置转换规则,但你也可以按自己的喜好进行自定义。
请在“高级格式化”面板中编辑这些设置。
故事字符串
该字段是提示词前言(内部称为故事字符串)的模板。这是为文本补全和指令模型添加角色卡中所定义信息的主要方式。
该模板支持 Handlebars 语法、自定义文本注入或格式化,以及任何其他宏。语言参考请见:https://handlebarsjs.com/guide/
我们向 Handlebars 求值器提供以下参数(用双花括号包裹):
{{anchorBefore}}:设置为使用“故事字符串之前”位置的提示词。{{anchorAfter}}:设置为使用“故事字符串之后”位置的提示词。{{description}}:角色的描述。{{scenario}}:角色的场景。{{personality}}:角色的人格。{{system}}:系统提示词,或在角色主提示词覆盖存在且用户设置中启用了“优先使用角色提示词”时使用该覆盖。{{persona}}:所选人格描述。{{char}}:角色名。{{user}}:所选人格的名称。{{wiBefore}}或{{loreBefore}}:插入位置设为“角色定义之前”的已激活世界书条目合集。{{wiAfter}}或{{loreAfter}}:插入位置设为“角色定义之后”的已激活世界书条目合集。{{mesExamples}}:(可选)角色的对话示例,以分隔符进行指令格式化。{{mesExamplesRaw}}:角色的对话示例原始格式,不含任何格式化。
重要
在故事字符串中使用 {{mesExamples}} 时,请将 用户设置面板中的**“对话示例行为”设为“从不包含示例”**,以避免示例消息在提示词中重复。
支持一个特殊的 {{trim}} 宏,用于移除其周围的所有换行符。如果你希望某段文本不通过换行符与上一行分隔,可以使用它(空格不会被移除)。
警告:如果上述任何参数在故事字符串模板中缺失,它们将完全不会包含在发送的提示词中。
提示词锚点
{{anchorBefore}} 和 {{anchorAfter}} 是供各扩展和杂项功能在所选静态位置添加提示词的通用占位符,例如:
故事字符串位置
默认情况下,渲染后的故事字符串(所有占位符已替换)被放置在提示词的最开头,其后是示例消息和可见的聊天历史。
或者,你也可以通过选择“聊天内按深度”选项将其移动到动态位置,这样会将故事字符串放置在聊天上下文的指定深度处。
故事字符串包装
以下部分仅在指令模式开启时适用。
示例分隔符
用作对话示例块之间的块头和分隔符。对话示例中任何 <START> 标签实例都将被替换为此字段的内容。
聊天起始
作为分隔符插入,位于渲染后的故事字符串之后、对话示例块之后,但在上下文中的第一条消息之前。
分隔符作为停止字符串
将“示例分隔符”和“聊天起始”添加到停止字符串列表中。
如果模型倾向于幻觉或泄露以分隔符开头的整段对话示例块,这会很有用。
名称作为停止字符串
将角色名和用户人格名添加到停止字符串列表中。
建议保持开启,以防止模型冒充。
始终将角色名加入提示词
当指令模式开启时,此设置无效。名称行为改由所选的包含名称选项决定。
将角色名追加到提示词中,以强制模型以该角色的身份完成消息:
** OTHER CONTEXT HERE **
Character: