高级格式化

本节提供的设置允许你对提示词构建策略进行更精细的控制,主要适用于文本补全 API。

本面板中的大多数设置不适用于聊天补全 API,因为它们由提示词管理器系统管理。

  • 系统提示词
  • 上下文模板
  • 分词器
  • 自定义停止字符串

重置模板

你可以将默认模板恢复到初始状态。这可以通过用户界面完成,也可以手动删除相关的数据文件。

通过界面重置

  1. 打开 高级格式化 菜单。
  2. 选择你要重置的模板。
  3. 点击 恢复当前模板 按钮。
  4. 在弹出提示时确认操作。

手动重置

  1. 导航到你的用户数据目录(详见数据路径)。
  2. 从用户数据目录的根目录下删除 content.log 文件。该文件记录了为你的用户复制的默认文件。
  3. 从相关子目录(contextinstructsysprompt 等)中删除模板 JSON 文件。
  4. 重启 SillyTavern 服务器。应用程序会重新填充默认内容,恢复所有被删除的默认模板。

后端定义的模板

部分文本补全来源支持自动选择由模型作者推荐的模板。其工作原理是将模型 tokenizer_config.json 文件中定义的聊天模板的哈希值与 SillyTavern 默认模板之一进行比对。

  1. 必须在 高级格式化 菜单中启用 派生模板 选项。这可以应用于上下文、指令或两者。
  2. 必须选择一个受支持的后端作为文本补全来源。目前只有 llama.cpp 和 KoboldCpp 支持派生模板。
  3. 在建立与 API 的连接时,模型必须正确报告其元数据。如果未能生效,请尝试将后端更新到最新版本。
  4. 报告的聊天模板哈希必须与某个已知 SillyTavern 模板匹配。这仅涵盖默认模板,如 Llama 3、Gemma 2、Mistral V7 等。
  5. 如果哈希匹配,且模板列表中存在对应模板(即未被重命名或删除),则会自动选中该模板。

系统提示词

系统提示词用于定义模型应遵循的通用指令,为对话奠定基调与上下文。例如,它可以指示模型扮演 AI 助手、写作搭档或某个虚构角色。

系统提示词是故事字符串的一部分,通常也是模型接收到的提示词的第一部分。

参见提示词指南以了解更多关于系统提示词的内容。

上下文模板

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

本节的选项详见上下文模板

分词器

分词器是一种将文本拆分为更小单元(称为 token)的工具。这些 token 可以是单个词,甚至可以是词的一部分,例如前缀、后缀或标点符号。一个经验法则是:一个 token 通常对应 3~4 个文本字符。

本节的选项详见分词器

自定义停止字符串

接受一个 JSON 序列化的停止字符串数组。示例:["\n", "\nUser:", "\nChar:"]。如果你不确定格式是否正确,可以使用 在线 JSON 验证器。如果模型输出以某个停止字符串结尾,该字符串将从输出中移除。

支持的 API:

  1. KoboldAI Classic(1.2.2 及以上版本)或 KoboldCpp
  2. AI Horde
  3. 文本补全 API:Text Generation WebUI(ooba)、Tabby、Aphrodite、Mancer、TogetherAI、Ollama 等
  4. NovelAI
  5. OpenAI(最多 4 个字符串)及兼容 API
  6. OpenRouter(文本补全和聊天补全均支持)
  7. Claude
  8. Google AI Studio
  9. MistralAI

回复起始内容

文本补全 API

预填提示词的最后一行,强制模型从该点继续生成。这在强制特定内容时很有用,例如通过定义的前缀引导模型进入 模型推理

<think>
Sure!

聊天补全 API

在提示词末尾添加一条助手角色消息。对于某些后端模型,这等同于预填充模型回复;但有些模型可能完全不支持此功能,并会因校验错误而失败。如果你不确定,请将此字段留空。