# 指令模式

指令模式允许您调整针对各种提示格式(如Alpaca、ChatML、Llama2等)训练的指令跟随模型的提示。

# API 支持

# 文本补全 API

完全支持。这包括:

  • 文本补全下的所有来源
  • KoboldAI Classic
  • AI Horde

# 选择格式

所选的指令模板必须符合实际在后端运行的模型的预期。

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

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

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

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

例外:启用指令覆盖的 OpenRouter。这是一个遗留设置,最终会被移除。

# NovelAI

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

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

User: { Write a happy song about Nintendo Switch. }

# 指令模式设置

# 预设

提供一些知名指令模型的现成预设,包括提示和序列。

更改预设会将您的系统提示重置为默认值!如果您进行了不想丢失的更改,请不要忘记保存您的预设。

# 默认预设(心形图标)

如果切换,连接到API时将自动选择此预设,前提是没有其他预设被正则表达式匹配触发。

指令模式需要事先启用。只能将一个预设标记为默认。

# 激活正则表达式

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

在此之前需要启用指令模式。只有在预设中第一个正则表达式匹配项会被选择(按字母顺序评估)。

# 用换行符包裹序列

每个序列文本在插入提示时将用换行符包裹。对于Alpaca及其衍生产品是必需的。

如果希望完全控制行终止符,请禁用此选项。

# 在序列中替换宏

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

此外,可以在消息前缀中使用特殊的 {{name}} 宏来引用附加到消息的实际名称(而不是当前活动的 {{char}} 或 {{user}}),这在使用群聊或 /sendas 命令时非常有用。如果无法确定名称,将使用“系统”作为后备占位符。

# 包含名称

如果启用,在插入序列后将角色和用户名添加到聊天历史记录日志中。

对于群聊和使用角色发送的消息自动启用,除非强制适用于群组和角色设置未勾选!

# 系统提示

通常添加到每个提示的开头。应定义模型要遵循的指令。支持通过任何支持的 {{宏}} 参数进行替换。

例如:

为 {{char}} 写一条互联网角色扮演风格的回复。要详细且富有创意。

# 序列:系统提示包装

定义系统提示的包装方式。

# 系统提示前缀

插入在系统提示之前。

# 系统提示后缀

插入在系统提示之后。

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

# 序列:聊天消息包装

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

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

# 用户消息前缀

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

# 用户消息后缀

在用户消息之后插入。

# 助手消息前缀

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

# 助手消息后缀

在助手消息之后插入。

# 系统消息前缀

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

# 系统消息后缀

在系统消息之后插入。

# 系统与用户相同

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

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

# Misc. Sequences

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

# First Assistant Prefix

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

只有聊天记录的第一条消息算数,而不是实际进入提示的第一条消息!

# Last Assistant Prefix

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

在生成后台文本时不使用(例如,Stable Diffusion提示或摘要)。将使用系统指令前缀或常规助手前缀。

# System Instruction Prefix

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

# User Filler Message

如果聊天记录不以用户消息开始,将在聊天记录开始时插入。

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

# Stop Sequence

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

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