# 指令模式

指令模式允许您调整在各种提示格式(如 Alpaca、ChatML、Llama2 等)上训练的指令遵循模型的提示。

# API 支持

# 文本完成 API

完全支持。这包括:

  • 文本完成下的所有源
  • KoboldAI Classic
  • AI Horde

# 选择格式

选择的指令模板必须与后端上运行的实际模型的期望相匹配。

这通常反映在 HuggingFace 上的模型卡中,有些甚至提供与 SillyTavern 兼容的 JSON 文件。

示例:NeverSleep/Noromaid-13b-v0.1.1

# 聊天完成 API(OpenAI、Claude 等)

这不适用于聊天完成 API (并且不需要)。它们使用完全不同的提示构建器。

# NovelAI

虽然技术上支持 NovelAI,但他们的模型都没有经过训练来理解指令格式。NovelAI 模型可以使用特殊的指令模块,当在聊天消息中遇到用花括号括起来的指令时,该模块会自动激活,因此对整个提示使用指令模式将导致输出的质量下降

这是一个自动激活 NovelAI 指令模块的示例:

用户:{ 写一首关于 Nintendo Switch 的快乐歌曲。 }

# 指令模式设置

# 系统提示

# 模板

为一些知名的指令模型提供现成的模板序列。

更改模板会将未保存的设置重置到最后保存的状态!如果您进行了不想丢失的更改,请不要忘记保存您的模板。

# 激活正则表达式

如果定义为有效的正则表达式,当连接到模型且其名称与此正则表达式匹配时,将自动选择此模板。

指令模式需要事先启用。只有跨模板的第一个正则表达式匹配将被选择(按字母顺序评估)。

# 用换行符包装序列

插入提示时,每个序列文本都将用换行符包装。Alpaca 及其衍生版本需要此功能。

如果您想完全控制行终止符,请禁用此功能。

# 替换序列中的宏

如果启用,如果在消息包装序列中定义,则已知的 {{macro}} 替换将被替换。

此外,可以在消息前缀中使用特殊的 {{name}} 宏来引用附加到消息的实际名称(而不是当前活动的 {{char}} 或 {{user}}),这在使用群组聊天或 /sendas 命令时很有帮助。如果无法确定名称,则使用"System"作为回退占位符。

# 包含名称

如果启用,在前缀序列后将角色和用户名称前置到聊天历史记录日志中。

以下选项可用:

  • 从不:不要在消息内容之前添加名称前缀。
  • 群组和过去角色:仅向来自群组角色和过去角色的消息添加名称前缀。
  • 始终:始终在消息内容之前添加名称前缀。

# 序列:系统提示包装

定义系统提示将如何包装。

# 系统提示前缀

插入系统提示之前。

# 系统提示后缀

插入系统提示之后。

**重要:**这仅适用于系统提示本身,不适用于整个故事字符串!如果要包装故事字符串,请将这些序列添加到上下文模板部分的故事字符串模板中。

# 序列:聊天消息包装

这些设置定义不同角色的消息在构建提示时将如何包装。

所有前缀序列也将自动用作停止字符串。

# 用户消息前缀

插入用户消息之前,并在模拟时作为最后一行提示。

# 用户消息后缀

插入用户消息之后。

# 助手消息前缀

插入助手消息之前,并在生成 AI 回复时作为最后一行提示。

# 助手消息后缀

插入助手消息之后。

# 系统消息前缀

插入系统(由斜杠命令或扩展添加)消息之前。

# 系统消息后缀

插入系统消息之后。

# 系统与用户相同

如果选中,系统消息将使用用户角色消息序列。

否则,系统消息将使用自己的序列(如果不为空)或根本不进行任何包装(如果为空)。

# 其他序列

用于更精细调整提示构建的各种高级配置

# 第一个助手前缀

插入第一个助手的消息之前。

# 最后一个助手前缀

插入最后一个助手的消息之前,或在生成 AI 回复时作为最后一行提示。

# 系统指令前缀

在后台生成中性/系统文本时插入为最后一行提示(例如,Stable Diffusion 提示或摘要)。

# 用户填充消息

如果聊天历史记录不以用户消息开头,将在开头插入。

用例:当指令格式严格要求提示首先是用户并且只有交替角色的消息时,例如:Llama 2 Chat、Mistral Instruct。

# 停止序列

表示回复结束的文本。也作为停止字符串发送到后端 API。

如果生成了停止序列,它之后的所有内容都将从输出中删除(包括序列本身)。