酒馆助手宏
提示
请务必先阅读如何正确使用酒馆助手
酒馆虽然有宏 ({{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
);