# 宏(替换标签)

宏可以在角色描述、作者笔记、世界信息和许多其他地方使用,并在生成响应时替换为相应的值。它们可用于将动态内容插入到提示中,例如用户名称、角色描述或当前时间。宏用双大括号括起来,例如 {{user}},并且通常不区分大小写。请记住,当前不支持宏嵌套。

注意:一些扩展可能还会添加仅在特定区域工作的特殊上下文特定宏(即扩展提示的特殊占位符)。除非宏不绑定到特定功能,否则这些将不会在此处记录。

# 通用宏

描述
{{pipe}} 仅用于斜杠命令批处理。替换为上一个命令的返回结果。
{{newline}} 插入换行符。
{{trim}} 修剪此宏周围的新行。
{{noop}} 无操作,只是一个空字符串。
{{user}}<USER> 用户名称。
{{charPrompt}} 角色主提示覆盖。
{{charJailbreak}} 角色历史后指令提示覆盖。
{{group}}{{charIfNotGroup}} 逗号分隔的组成员名称列表或单人聊天中的角色名称。
{{groupNotMuted}} {{group}} 相同,但排除静音成员。
{{char}}<BOT> 角色名称。
{{description}} 角色描述。
{{scenario}} 角色场景或聊天场景覆盖(如果设置)。
{{personality}} 角色个性。
{{persona}} 用户角色描述。
{{mesExamples}} 角色对话示例(指令格式)。
{{mesExamplesRaw}} 角色对话示例(未更改和未分割)。
{{charVersion}} 角色版本号。
{{charDepthPrompt}} 角色深度提示。
{{model}} 当前选定 API 的文本生成模型名称。可能不准确!
{{lastMessageId}} 最后聊天消息 ID。
{{lastMessage}} 最后聊天消息文本。
{{firstIncludedMessageId}} 上下文中包含的第一条消息的 ID。需要在当前会话中至少运行一次生成。
{{lastCharMessage}} 角色发送的最后聊天消息。
{{lastUserMessage}} 用户发送的最后聊天消息。
{{currentSwipeId}} 当前显示的最后消息滑动的基于 1 的 ID。
{{lastSwipeId}} 最后聊天消息中的滑动次数。
{{lastGenerationType}} 最后排队的生成请求类型。值:"normal"、"impersonate"、"regenerate"、"quiet"、"swipe"、"continue"。
{{original}} 可用于提示覆盖字段以包含系统设置中的默认提示。仅适用于聊天完成 API 和指令模式。
{{time}} 当前系统时间。
{{time_UTC±X}} 指定 UTC 偏移(时区)中的当前时间,例如对于 UTC+02:00 使用 {{time_UTC+2}}
{{timeDiff::(time1)::(time2)}} time1 和 time2 之间的时间差。接受时间和日期宏。
{{date}} 当前系统日期。
{{input}} 用户输入栏的内容。
{{weekday}} 当前工作日。
{{isotime}} 当前 ISO 时间(24 小时制)。
{{isodate}} 当前 ISO 日期(YYYY-MM-DD)。
{{datetimeformat ...}} 指定格式的当前日期/时间(例如 {{datetimeformat DD.MM.YYYY HH:mm}})。
{{idle_duration}} 插入自发送最后一条用户消息以来的时间范围的人性化字符串(示例:4 小时、1 天)。
{{random:(args)}} 从列表中返回一个随机项(例如 {{random:1,2,3,4}} 将随机返回 4 个数字中的 1 个)。
{{random::arg1::arg2}} 支持参数中逗号的随机替代语法。
{{pick::(args)}} 随机的替代方案,但如果源字符串保持不变,所选参数在当前聊天的后续评估中是稳定的。
{{roll:(formula)}} 使用 D&D 骰子语法生成随机值:XdY+Z(例如 {{roll:d6}} 生成值 1-6)。
{{bias "text here"}} 为 AI 设置行为偏见,直到下一个用户输入。文本周围的引号是必需的。
{{// (note)}} 允许留下将替换为空白内容的注释。对 AI 不可见。
{{banned "text here"}} 动态地将引用的文本添加到文本生成 WebUI 后端的禁用单词序列中。对其他后端不起作用。需要引号。
{{reverse:(content)}} 反转宏的内容。

# 指令模式和上下文模板宏

(在高级格式设置中启用)

描述
{{exampleSeparator}} 上下文模板示例对话分隔符。
{{chatStart}} 上下文模板聊天开始行。
{{instructSystemPrompt}} 指令系统提示。
{{instructSystemPromptPrefix}} 系统提示前缀序列。
{{instructSystemPromptSuffix}} 系统提示后缀序列。
{{instructUserPrefix}} 用户消息前缀序列。
{{instructAssistantPrefix}} 助手消息前缀序列。
{{instructSystemPrefix}} 系统消息前缀序列。
{{instructUserSuffix}} 用户消息后缀序列。
{{instructAssistantSuffix}} 助手消息后缀序列。
{{instructSystemSuffix}} 系统消息后缀序列。
{{instructFirstAssistantPrefix}} 助手第一个输出序列。
{{instructLastAssistantPrefix}} 助手最后一个输出序列。
{{instructFirstUserPrefix}} 指令用户第一个输入序列。
{{instructLastUserPrefix}} 指令用户最后一个输入序列。
{{instructSystemInstructionPrefix}} 系统指令前缀序列。
{{instructUserFiller}} 用户填充消息文本。
{{instructStop}} 指令停止序列。
{{maxPrompt}} 提示的最大大小(以令牌为单位)(上下文长度减少响应长度)。
{{systemPrompt}} 系统提示内容,包括角色提示覆盖(如果允许且可用)。
{{defaultSystemPrompt}} 系统提示内容(不包括角色提示覆盖)。

# 聊天变量宏

  • 本地变量 = 当前聊天独有
  • 全局变量 = 适用于任何角色的任何聊天
描述
{{getvar::name}} 替换为本地变量"name"的值。
{{setvar::name::value}} 替换为空字符串,将本地变量"name"设置为"value"。允许空值。
{{addvar::name::increment}} 替换为空字符串,将数值"increment"添加到本地变量"name"。
{{incvar::name}} 替换为将变量"name"的值增加 1 的结果。
{{decvar::name}} 替换为将变量"name"的值减少 1 的结果。
{{getglobalvar::name}} 替换为全局变量"name"的值。
{{setglobalvar::name::value}} 替换为空字符串,将全局变量"name"设置为"value"。允许空值。
{{addglobalvar::name::value}} 替换为空字符串,将数值"increment"添加到全局变量"name"。
{{incglobalvar::name}} 替换为将全局变量"name"的值增加 1 的结果。
{{decglobalvar::name}} 替换为将全局变量"name"的值减少 1 的结果。
{{var::name}} 替换为范围变量"name"的值(仅 STscript)。
{{var::name::index}} 替换为范围变量"name"的索引处的值(用于 STscript 中的数组/对象)。

# 扩展特定宏

由扩展添加,仅在特定条件下工作。

描述
{{summary}} 替换为当前聊天会话的摘要(如果可用)。
{{authorsNote}} 替换为作者笔记的内容。
{{charAuthorsNote}} 替换为角色作者笔记的内容。
{{defaultAuthorsNote}} 替换为默认作者笔记的内容。
{{charPrefix}} 替换为角色特定的图像生成正提示前缀(如果可用)。
{{charNegativePrefix}} 替换为角色特定的图像生成负提示前缀(如果可用)。