上下文模板
适用于:文本补全 API
对于聊天补全 API 中的等效设置,请使用 提示词管理器.
通常,AI 模型要求您以某种特定方式向它们提供角色数据。 SillyTavern 包含针对不同型号的预制转换规则列表,但您可以根据需要自定义它们。
在“中编辑这些设置高级格式设置“面板。
故事串
该字段是提示词前导码(内部称为故事字符串)的模板。这是添加定义信息的主要方式 角色卡 用于文本完成和指导模型。
该模板支持 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}}:(可选)角色 对话示例,带有分隔符的指令格式。{{mesExamplesRaw}}:角色的 对话示例 原始格式,没有任何格式。
重要
使用时
{{mesExamples}}在故事字符串中,设置 “消息行为示例” 在 用户设置 面板至 “永远不要包含示例” 以避免在提示词中重复示例消息。
一个特别的 {{trim}} 支持宏来删除它周围的任何换行符。如果您希望文本的一部分不与上一行用换行符分隔,请使用它(空间 不是 修剪过的).
警告:如果故事字符串模板中缺少上述任何参数,则它们根本不会在提示词中发送。
提示词锚
的 {{anchorBefore}} 和 {{anchorAfter}} 是提示词的通用占位符,由选定静态位置的各种扩展和杂项功能添加,例如:
故事字符串位置
默认情况下,渲染的故事字符串(所有占位符均已替换)放置在提示词的最开头,后面是示例消息和可见的聊天历史记录。
或者,您可以通过选择“聊天中@深度”选项将其移动到动态位置,该选项将故事字符串放置在聊天上下文中的特定深度。
注意
如果模板包含用于包装故事字符串的静态提示词元素(特定于模型的前缀或后缀),则使用“In-Chat @ Depth”位置将导致其与重复序列错误地双重包装,这可能会导致意外结果。
在这种情况下,您可以通过以下方式之一解决该问题:
故事字符串绕行
以下部分仅适用于 指令模式 已开启。
分隔符示例
用作块头和示例对话块之间的分隔符。任何实例 <START> 示例对话中的标签将替换为此字段的内容。
聊天开始
作为分隔符插入在渲染的故事字符串之后和示例对话块之后,但在上下文中的第一条消息之前。
分隔符作为停止字符串
将“示例分隔符”和“聊天开始”添加到停止字符串列表。
如果模型倾向于产生幻觉或泄漏分隔符前面的整个示例对话块,则很有帮助。
名称作为停止字符串
将角色和用户用户人设名称添加到停止字符串列表中。
建议保持打开状态以防止模型冒充。
始终将角色的名称添加到提示词
当指令模式打开时,此设置无效。名称行为而是由所选的定义 包括姓名 选项。
将角色的名称附加到提示词以强制模型将消息完成为角色:
** OTHER CONTEXT HERE **
Character: