获取变量
提示
请务必先阅读如何正确使用酒馆助手
点击查看对应类型定义文件 (可发给 AI 或 IDE 使用, 酒馆助手界面中提供了打包下载)
getVariables
获取变量表
ts
function getVariables(option: VariableOption): Record<string, any>参数
option
要操作的变量类型
返回值
- 变量表:
Record<string, any>
示例
ts
const variables = getVariables({type: 'chat'});
alert(variables);ts
const variables = getVariables({type: 'global'});
// 酒馆助手内置了 lodash 库, 你能用它做很多事, 比如查询某个变量是否存在
if (_.has(variables, "神乐光.好感度")) {
/* ... */
}ts
// 获取倒数第二楼层的聊天变量
const variables = getVariables({type: 'message', message_id: -2});ts
// 在脚本内获取该脚本绑定的变量
const variables = getVariables({type: 'script', script_id: getScriptId()});在提示词中获取变量
你可以通过以下格式在提示词中获取变量:
变量示例
ts
const 全局变量 = {
神乐光: {
好感度: 50,
},
};
const 聊天变量 = {
商品: [{ 内容: '...' }, { 内容: '...' }],
};
const 消息楼层变量 = {
当前剧情阶段: '...',
};你可以通过以下格式在提示词中获取他们:
- 全局变量:
{{get_global_variable::神乐光.好感度}}或{{format_global_variable::神乐光.好感度}} - 预设变量:
{{get_preset_variable::略}}或{{format_preset_variable::略}} - 角色卡变量:
{{get_character_variable::略}}或{{format_character_variable::略}} - 聊天变量:
{{get_chat_variable::商品.1.内容}}或{{format_chat_variable::商品.1.内容}} - 消息楼层变量, 将会获取到最新绑定的消息楼层变量:
{{get_message_variable::当前剧情阶段}}或{{format_message_variable::当前剧情阶段}}
一般而言,
{{get_xxx_variable::变量}}获取到的结果与JSON.stringify(变量)一致{{format_xxx_variable::变量}}获取到的结果与YAML.stringify(变量).trimEnd()一致
AI 对于 {{format_xxx_variable::变量}} 的理解更清晰, 你应该总是优先使用它而非 {{get_xxx_variable::变量}}.
但 {{get/format_xxx_variable::变量}} 宏有一个额外特性: 它会忽略变量中所有以 $ 开头的键. 这个特性允许你在变量中存储一些不应该发给 AI 看的数据. 例如, 对于 { $meta: {}, 好感度: 0 }, 它只会得到 { 好感度: 0 }.