AI 陪聊
基于 LLM 的「观众人格」陪聊引擎,结合同传文字与观众弹幕自动生成或推荐弹幕内容
LAPLACE Chatterbox 的 AI 陪聊功能在「同传」选项卡内提供,由内置的轻量引擎驱动:实时读取同传识别出的主播语音文字,并结合最近的观众弹幕作为上下文,调用 OpenAI 兼容的 LLM 接口生成贴合直播节奏的候选弹幕
支持「自动发送」与「候选审核」两种工作模式,可在「自动陪聊」与「手动挑选」之间随时切换,所有 LLM 请求均直接发往用户自行配置的接口,弹幕助手不经手任何提示词或 API Key
与「自动融入 YOLO 模式」的区别:AI 陪聊由 LLM 凭空创作新的弹幕内容,作为「观众人格」与主播互动,输入是同传语音 + 观众弹幕上下文;而 自动融入 的 YOLO 模式仅在检测到公屏「跟车」时调用 LLM 改写已有的热门弹幕,本质仍是融入观众群体。前者更适合让直播间多出一位「AI 观众」,后者更适合让自动跟车的内容显得不那么千篇一律
特性
- 双驱动触发:由同传识别到的主播语音(句末标点 / 端点检测 / 缓冲区超长)与累计的新观众弹幕共同驱动生成
- 两种工作模式:
- 自动发送:LLM 决定
send=true时直接进入发送队列 - 候选审核:生成的弹幕进入「候选弹幕」列表,由用户点击「发送 / 编辑 / 跳过」决定是否发出
- 自动发送:LLM 决定
- 观众弹幕上下文:维护最近 N 条观众弹幕(可配置)作为上下文,便于 LLM 理解当前公屏氛围
- 滚动历史摘要:将最近的「主播语音 + 已发送内容」对作为对话历史回传给 LLM,避免重复发言
- 结构化输出:调用时强制使用
json_schema响应格式,LLM 必须返回send/message/reason三个字段 - 自我回声去重:30 秒内发出的弹幕被 Bilibili 回推至公屏时会自动忽略,不会污染上下文
- 大表情过滤:观众发送的大表情弹幕(仅有图片、无文字含义)不会进入上下文
- 多人格预设:内置「杠精 / 吐槽役 / 暖男 / 互动引导」四套提示词,可随时切换或自行编辑
- 决策日志:保留最近 50 条决策记录(成功 ✅ / 跳过 ⏭ / 失败 ❌),可一键清空
- 共享发送队列:与独轮车、自动融入、同传共享发送队列与 Bilibili 频率限制,AUTO 优先级,可被手动发送抢占
使用方法
准备工作
- 在「设置 → LLM 设置」中填入 OpenAI 兼容的 API Base、API Key 与模型 ID
- 在「设置 → LLM 提示词 → AI 陪聊」中确认已激活一份提示词(首次启用时默认会激活「杠精」)
- 在「同传」选项卡中启动同传,AI 陪聊会基于同传产生的实时文字工作
AI 陪聊与同传共用同一识别流,若未启动同传则只能依赖观众弹幕触发;建议启用同传以获得完整的「主播语音 + 观众弹幕」上下文
启用与模式切换
- 切换至「同传」选项卡,在「AI 陪聊」区域勾选「启用 AI 陪聊」
- 点击「自动发送 / 候选审核」按钮在两种模式之间切换:
- 按钮高亮(filled)= 当前为「自动发送」
- 按钮描边(outline)= 当前为「候选审核」
- 点击「立即生成」可跳过缓冲等待,强制触发一次 LLM 调用
候选审核模式
- 生成的候选弹幕显示在「候选弹幕」列表(最多保留 30 条,溢出时旧候选被丢弃)
- 每条候选可选择:
- 发送:直接将原文加入发送队列
- 编辑:弹出输入框修改后再发送(支持 Enter 确认 / Esc 取消)
- 跳过:丢弃该候选,记录到决策日志
切换人格
- 在「AI 陪聊」区域底部的「提示词」下拉框中切换当前激活的提示词
- 完整的提示词管理(新增、编辑、删除、调整顺序)在「设置 → LLM 提示词 → AI 陪聊」中进行
- 内置提示词每条第一行为人格名称,可作为预览快速识别
选项说明
触发与上下文
| 选项 | 说明 | 默认值 |
|---|---|---|
| 弹幕最长 | 生成弹幕的最大字符数,同步写入 LLM 响应 JSON Schema 的 message.maxLength | 30 |
| 每 N 条弹幕触发 | 累计观众弹幕达到此数量时触发一次「观众驱动」生成 | 10 |
| 观众窗口 | 上下文中携带的最近观众弹幕条数 | 50 |
| 上下文上限 | 发往 LLM 的上下文(历史 + 观众弹幕)字符总数预算 | 2048 |
| 采样温度 | LLM temperature 参数,范围 0 ~ 2 | 0.7 |
模式
| 选项 | 说明 |
|---|---|
| 启用 AI 陪聊 | 主开关,关闭后引擎完全停止订阅观众弹幕与同传缓冲 |
| 自动发送 / 候选审核 | 决定 LLM 输出是直接发送还是进入候选列表 |
| 立即生成 | 跳过防抖等待立即调用一次 LLM,无论缓冲区状态如何 |
触发时机
引擎内部的调度逻辑:
- 主播语音缓冲区检测到句末标点(
。.!!??)、Soniox 报告端点(endpoint)或缓冲超过 200 字符时,500 ms 后触发生成 - 缓冲区有内容但「未就绪」时,最长等待 8 秒后兜底触发
- 观众弹幕累计达到设定值时,3 秒后触发一次「观众驱动」生成(仅在没有其它任务排队时)
注意事项
- API Base / Key / 模型等所有 LLM 配置仅存储在浏览器的脚本存储空间,弹幕助手与 LAPLACE 服务器不会接收任何 LLM 相关数据
- LLM 接口费用由用户与 LLM 服务商按调用次数 / Token 用量结算,请合理设置「弹幕最长」与「上下文上限」以控制成本
- 若 LLM 返回内容无法解析为合法 JSON,引擎会在日志中报错并放弃本次结果,不会发送任何弹幕
- AI 陪聊不接管「同传」自身的弹幕发送:同传的文字仍由「同传」面板决定是否发送,AI 陪聊在另一条路径上独立生成内容
- 切换房间或刷新页面后,候选列表会被清空;决策日志会保留至本次会话结束
- 若希望完全停止引擎,请取消勾选「启用 AI 陪聊」,否则即使「立即生成」未点击,观众弹幕仍会维持调度状态