
【免费下载链接】JS-Slash-Runner项目地址https://gitcode.com/gh_mirrors/js/JS-Slash-Runner点击查看免费下载TavernHelper是 SillyTavern 第三方扩展JS-Slash-Runner酒馆助手提供的核心编程接口通过一个全局window.TavernHelper对象你的脚本就能自由读写角色卡、聊天记录与预设还能监听酒馆事件、注入临时提示词、直接调用 AI 生成。本文是一份面向新手的完整使用手册带你从安装到函数速查逐步掌握它的全部能力。⚠️ 执行自定义 JavaScript 代码可能带来安全风险如窃取 API 密钥、破坏设置请务必只运行来源可信、自己看得懂的脚本详见 README.md 开头的警告。一、什么是 JS-Slash-Runner酒馆助手SillyTavern 默认不允许用户直接执行 JavaScript 代码。JS-Slash-Runner 的解决办法很巧妙它在酒馆内嵌入了一个隔离的 iframe 沙箱让外部脚本在里面运行再通过一层封装把酒馆内部能力安全地暴露出来——这一层封装就叫TavernHelper️。几个关键事实来自 manifest.json项目说明扩展显示名酒馆助手当前版本4.11.3最低 SillyTavern 版本1.13.0入口文件dist/index.js入口逻辑源码src/function/index.ts换句话说装上这个扩展后你的脚本里所有TavernHelper.xxx()调用都是对酒馆底层 API 的合法、受控访问。所有对外暴露的函数都在 src/function/index.ts 的getTavernHelper()中注册这也是全文速查表的总目录。二、TavernHelper 快速上手3 步开始调用1. 启用扩展并打开脚本面板在 SillyTavern 设置中启用酒馆助手打开它的扩展面板入口在 src/Panel.vue即可创建/管理脚本。脚本运行在一个独立 iframe 中相关加载逻辑见 src/iframe/script_url.ts。2. 在脚本里调用函数脚本中直接使用TavernHelper即可例如在控制台或脚本中读取当前角色// 获取当前角色卡名称与 id console.log(TavernHelper.getCurrentCharacterName()); console.log(TavernHelper.getCurrentCharacterId());3. 在控制台自检接口按F12打开浏览器控制台输入window.TavernHelper即可展开查看当前版本提供的所有接口——这是官方类型文件 types/iframe/exported.tavernhelper.d.ts 里明确推荐的自查方式。三、核心功能①读写角色卡Character角色卡管理函数位于 src/function/character.ts全部异步返回 Promise。查询类读函数作用getCharacterNames()所有角色卡名称列表getCharacterIds()所有角色卡 idavatar 文件名列表getCurrentCharacterName()/getCurrentCharacterId()当前正在聊天的角色getCharacter(name_or_id)读取完整角色卡数据修改类写函数作用createCharacter(name, data)新建角色卡createOrReplaceCharacter(name, data)存在则替换不存在则创建replaceCharacter(name, data)整体替换角色卡updateCharacterWith(name, updater)用回调读取-修改-写回最推荐 ✍️deleteCharacter(name, { delete_chats })删除角色卡可连聊天记录一起删示例用updateCharacterWith给当前角色追加一条开场白await TavernHelper.updateCharacterWith(current, char { char.first_messages.push(新的开场白……); return char; });角色卡的完整数据结构description、first_messages、extensions 等定义在 src/function/character.ts如果你手里有原始 JSON 卡还可以直接用importRawCharacter见 src/function/import_raw.ts批量导入。四、核心功能②读写聊天记录Chat Messages聊天消息管理位于 src/function/chat_message.ts是最常用的一组函数。读getChatMessages(range, options)range支持单个编号、区间字符串如0-9负数表示从末尾倒数options可按rolesystem / assistant / user、hide_state是否隐藏消息、include_swipes是否带回滚页过滤。// 取最后 3 条普通非隐藏消息 const msgs TavernHelper.getChatMessages(-3-1, { hide_state: unhidden });写五个增删改函数函数作用说明setChatMessages(list)按message_id批量修改可改文本、data、extra、回滚页等createChatMessages(list, { insert_at })插入新消息支持插入到指定位置或末尾deleteChatMessages(ids)删除消息自动修正后续消息编号rotateChatMessages(begin, middle, end)移动消息顺序把中间一段挪到开头适合调整剧情顺序setChatMessage(...)旧版单条修改已废弃请用setChatMessages代替见 src/function/chat_message.ts示例把最后一条消息改写为新的内容await TavernHelper.setChatMessages([ { message_id: TavernHelper.getLastMessageId(), message: 改写后的内容…… }, ]);写操作完成后酒馆界面会自动刷新并保存无需手动触发。五、核心功能③读写预设Preset预设管理位于 src/function/preset.ts。预设包含三部分settings温度、top_p、最大上下文长度等采样参数、prompts提示词模板各段落、extensions扩展数据完整类型见 src/function/preset.ts。常用函数一览函数作用getPresetNames()所有预设名含特殊值in_use 当前正在使用的getLoadedPresetName()当前加载的预设名getPreset(name_or_in_use)读取完整预设loadPreset(name)切换到指定预设createPreset(name, preset)新建预设createOrReplacePreset(name, preset)存在即替换不存在即创建updatePresetWith(name, updater)回调式修改最推荐 ✍️setPreset(name, partial)只更新部分字段深合并renamePreset/deletePreset重命名 / 删除示例把当前正在使用的预设的温度调成 0.8await TavernHelper.updatePresetWith(in_use, p { p.settings.temperature 0.8; return p; });注意in_use是一个特殊名字代表正在使用的预设本身getPreset(in_use)、updatePresetWith(in_use, ...)都可以直接作用于它。六、进阶能力这些函数同样实用 除三大主角外window.TavernHelper还暴露了以下能力均在 src/function/index.ts 注册1. 事件监听让脚本感知酒馆事件函数定义在 src/function/event.ts类型声明在 types/iframe/event.d.ts// 监听收到消息事件弹出提示 TavernHelper.eventOn(TavernHelper.tavern_events.MESSAGE_RECEIVED, () { console.log(收到新消息); });eventOn持续监听、eventOnce只触发一次、eventMakeFirst/Last调整执行顺序事件分两类tavern_events酒馆原生事件如MESSAGE_UPDATED与iframe_events扩展内部事件还支持自定义字符串事件eventEmit广播实现脚本间通信。2. 注入临时提示词injectPromptsinject.ts 提供injectPrompts(prompts)往当前聊天里注入 system/user/assistant 提示支持once: true让它在一次生成结束后自动移除——非常适合只对本次回复生效的临时指令场景。3. 直接调用 AI 生成src/function/generate/index.ts 暴露了generate走酒馆完整流程与generateRaw裸调 OpenAI 兼容接口以及getModelList查询模型列表、stopGenerationById/stopAllGeneration停止生成。4. 其它值得了解的工具分类代表函数源码位置变量管理getVariables、insertOrAssignVariables、deleteVariablevariables.ts人格PersonagetPersona、createPersonapersona.ts知识库Lorebook/WorldbookgetLorebooks、createLorebook、getLorebookEntrieslorebook.ts、worldbook.tsTavern 正则getTavernRegexes、replaceTavernRegexestavern_regex.ts斜杠命令triggerSlashslash.ts宏替换 / 楼层 idsubstitudeMacros、getLastMessageId、getMessageIdutil.ts版本信息 / 自检更新getTavernHelperVersion、getTavernVersion、updateTavernHelperversion.ts原始数据导入importRawCharacter、importRawChat、importRawPresetimport_raw.ts七、新手避坑指南5 个常见问题函数都是异步的createCharacter、setChatMessages等返回 Promise请记得await否则数据可能还没写进酒馆。current是魔法值角色卡、人格相关函数都支持传current表示当前角色无需自己先查 id。优先用updateXxxWith系列先读后写的原子操作避免读出来改到一半被覆盖。不要直接改酒馆内部对象一律走TavernHelper它会自动处理保存与界面刷新绕过它直接操作会导致状态不同步。旧版 API 已废弃如setChatMessage请用setChatMessages、eventOnButton请用eventOn(getButtonEvent(...))编写新脚本时请使用新函数。八、总结TavernHelper 把 SillyTavern 最核心的三大对象——角色卡、聊天记录、预设——变成了几行 JavaScript 就能读写的标准 API再配上事件系统、临时提示词注入与 AI 生成接口足以支撑绝大多数我想让酒馆自动做点什么的需求。建议的学习路径先读本文第三、四、五节的三大主功能再到控制台输入window.TavernHelper亲手试两个函数最后以 src/function/index.ts 为索引深入各模块源码。祝你玩得开心赞分享【免费下载链接】JS-Slash-Runner项目地址https://gitcode.com/gh_mirrors/js/JS-Slash-Runner点击查看免费下载相关推荐Operit 聊天角色卡绑定回退实录Rust 聊天模型与 ToolPkg 类型层的 character_card_id 移除Operit 聊天角色卡绑定回退实录Rust 聊天模型与 ToolPkg 类型层的 character_card_id 移除 本文记录 OperitAndrAI Agent人工智能大模型AI 应用工具调用本地部署MCP ClientsAgent 记忆GUI 自动化KernelSU 元模块安装生效指南四步搞定KernelSU 元模块安装生效指南四步搞定 模块装了、也重启了 /system 里的文件却还是旧的问题多半不在模块本身而在 KernelSU 的元模块操作系统驱动开发微信数据解析工具完整使用手册轻松管理聊天记录微信数据解析工具完整使用手册轻松管理聊天记录 微信数据解析工具是一款专业的PC端微信数据分析解决方案帮助用户轻松获取微信账号信息、解密数据库文件并将聊天记创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考