Skip to content

酒馆助手宏

提示

请务必先阅读如何正确使用酒馆助手

酒馆虽然有宏 ({{user}}{{char}}{{getvar::变量}}) 来在显示或提示词中表达一些占位内容, 但扩展很难通过它注册带参数的宏如 {{get_message_variable::变量}} 等.

酒馆助手为此自行提供了酒馆助手宏, 它虽然存在一些局限性, 但能满足大部分需求.

点击查看对应类型定义文件 (可发给 AI 或 IDE 使用, 酒馆助手界面中提供了打包下载)

酒馆助手内置宏

酒馆助手内置了以下宏:

  • {{get_global_variable::变量}}: 从全局变量中获取路径 变量 下的值
  • {{get_preset_variable::变量}}: 从当前预设的变量中获取路径 变量 下的值
  • {{get_character_variable::变量}}: 从当前角色卡的变量中获取路径 变量 下的值
  • {{get_chat_variable::变量}}: 从当前聊天文件的变量中获取路径 变量 下的值
  • {{get_message_variable::变量}}: 从最新消息楼层变量中获取路径 变量 下的值

例如, 在一些变量框架示例中, 你会使用 {{get_message_variable::stat_data}} 来获取路径 stat_data 下的值来发给 AI.

禁用酒馆助手宏

通过 "酒馆助手主界面-禁用酒馆助手宏", 你可以禁用酒馆助手宏, 从而将 {{get_message_variable::stat_data}} 原封不动地显示和发送给 AI.

禁用酒馆助手宏

registerMacroLike

注册一个新的助手宏

ts
function registerMacroLike(
  regex: RegExp,
  replace: (context: Context, substring: string, ...args: any[]) => string,
): void;
ts
type MacroLikeContext = {
  message_id?: number;
  role?: 'user' | 'assistant' | 'system';
}

参数

regex

  • 类型: RegExp
  • 描述: 匹配的正则表达式

replace

  • 类型: (context: Context, substring: string, ...args: any[]) => string
  • 描述: 针对匹配到的文本所要进行的替换, 其返回值将会是替换结果

示例

ts
registerMacros(
  /<count_lines>(.*?)<count_lines>/gi,
  context => content.split('\n').length
);

作者:KAKAA, 青空莉想做舞台少女的狗