JS-Slash-Runner TavernHelper 函数完全手册:自由读写角色卡、聊天记录与预设
【免费下载链接】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),仅供参考

相关新闻

信贷风控实战:贷款违约预测的端到端Python建模与避坑指南

信贷风控实战:贷款违约预测的端到端Python建模与避坑指南

简介:本资源是一套面向金融从业者与机器学习初学者的贷款违约预测实战项目,聚焦信用风险评估场景,提供从数据清洗、特征工程到多模型训练与预测的完整Python实现。资源共23个文件,包含7个核心Python脚本(如data_analys…

2026/10/12 16:34:03 阅读更多 →
Cloudera Manager单节点部署NODE1安装指南:CDH 6.x集群搭建核心步骤

Cloudera Manager单节点部署NODE1安装指南:CDH 6.x集群搭建核心步骤

1. 为什么单节点部署 Cloudera Manager 是集群搭建的关键一步搞过大数据平台的人都知道,CDH 这套东西虽然现在社区版已经不再更新了,但存量项目里用得还是相当多,尤其是那些早年搭建、至今仍在稳定跑着离线任务和实时链路的集群。我接触过的几…

2026/10/12 16:34:03 阅读更多 →
商用热泵实时COP监测:从传感器选型到落地避坑指南

商用热泵实时COP监测:从传感器选型到落地避坑指南

1. 项目核心思路:为什么说凭感觉估算COP就是在烧钱我先说个真实场景。某商业综合体项目,运维负责人指着控制面板上的能效数字跟我说:“你看,我们的机组COP一直显示5.2,效果不错吧?”我看了眼室外温度探头—…

2026/10/12 16:33:02 阅读更多 →

最新新闻

Clover_v5.0_r5122_X64黑苹果引导实战:从U盘制作到多系统配置

Clover_v5.0_r5122_X64黑苹果引导实战:从U盘制作到多系统配置

简介:Clover_v5.0_r5122_X64 是一款面向黑果(Hackintosh)爱好者的四叶草启动引导程序,专为64位体系结构设计,核心作用是模拟苹果原生启动管理器,让非苹果硬件也能识别并加载 macOS 内核,尤其适配…

2026/10/13 7:21:01 阅读更多 →
后端程序注册Windows服务:sc.exe与NSSM实操指南

后端程序注册Windows服务:sc.exe与NSSM实操指南

最近帮一个朋友迁移旧项目,对方有一台还在服役的 Windows Server 2012 服务器,上面跑着几个内部用的后端程序。因为平时是人工启动、命令行窗口挂着,结果清明假期服务器半夜自动更新重启了一次,第二天业务系统全部瘫痪&#xff0c…

2026/10/13 7:21:01 阅读更多 →
人生噪音断舍离:像庖丁解牛一样清理信息过载与情绪内耗

人生噪音断舍离:像庖丁解牛一样清理信息过载与情绪内耗

人生噪音断舍离的庖丁解牛你有没有过这样的状态?手机里躺着上千条未读消息,通讯录里堆着几百个根本想不起是谁的联系人,订阅号每天刷出几十篇“不看就亏”的文章,桌面上摆满了“以后可能用得上”的杂物,脑子里同时转着…

2026/10/13 7:21:01 阅读更多 →
仿Hypixel起床战争服务端搭建指南:Paper插件开发核心思路与避坑实践

仿Hypixel起床战争服务端搭建指南:Paper插件开发核心思路与避坑实践

简介:一套面向《我的世界》服务器管理与联机爱好者的仿Hypixel起床战争(BedWars)服务端资源包,适合希望搭建多人竞技小游戏服、体验起床战争玩法的玩家或服主使用。资源为ZIP压缩包,共663个文件,约393.29MB…

2026/10/13 7:21:01 阅读更多 →
多Agent串行流水线:从任务拆解到断点续跑的工程实践

多Agent串行流水线:从任务拆解到断点续跑的工程实践

先说一个很多人都会踩的坑:你以为把任务丢给一个大模型,加上上下文提示词,它就能帮你把一个十步的活儿一口气干完。实际上,大模型单次输出经常在中间某个环节悄悄跑偏,或者直接因为超过了输出上限给你半截结果。一旦出…

2026/10/13 7:21:01 阅读更多 →
85GB期货TICK数据处理实战:清洗、加载与特征工程

85GB期货TICK数据处理实战:清洗、加载与特征工程

简介:本资源提供2013至2015年国内期货市场高频TICK级原始行情数据的种子文件集合,面向量化交易研究者、金融工程学习者及算法交易开发者,用于回测策略、构建tick级价量模型或训练时序预测模型。资源包共335个文件,主体包含108个Py…

2026/10/13 7:20:01 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →