# 巴拉姬 BARRAGE **Repository Path**: ekmomo/barrage ## Basic Information - **Project Name**: 巴拉姬 BARRAGE - **Description**: 巴拉姬(BARRAGE) 是一款专为Bilibili直播平台设计的智能弹幕助手应用。 - **Primary Language**: JavaScript - **License**: CC0-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-10 - **Last Updated**: 2026-05-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 巴拉姬 BARRAGE - 一款专为Bilibili直播平台设计的智能弹幕助手应用。你可以使用任意大语言模型与直播间的观众进行互动,也可以通过插件形式与AI一起玩游戏。 - 本应用本体闭源,插件开源。插件开源协议详见[LICENSE文件](https://gitee.com/ekmomo/barrage/blob/master/LICENSE)。 ## 获取 - 你可以在仓库的发行版(releases)页面获取应用本体及插件。 - https://gitee.com/ekmomo/barrage/releases - 其中: - 巴拉姬_x.x.x为应用本体 - Source code 为插件包,你也可以直接通过git获取本仓库。 ``` git git clone https://gitee.com/ekmomo/barrage.git ``` ## 快速开始 - 进入bilibili开播设置查看主播身份码。[点击跳转](https://link.bilibili.com/p/center/index#/my-room/start-live) - 输入身份码后点击连接即可接入直播间。 - 如果同时点击底部的应用按钮,则BARRAGE会在本地保存你的身份码,下次启动时自动填入。 ### 弹幕朗读 - 默认使用JavaScript模板字符串进行弹幕朗读。 - `${uname}说${msg}` - `${uname}喊道${msg}` - 也可以使用JavaScript代码片段定制弹幕响应,使用app.speak方法调用webSpeachAPI。 ```javascript if (['ekmomo', 'barrage'].includes(uname)){ app.speak(`主播说:${msg}`); }else if (flags >= 2){ app.speak(`股东${uname}说:${msg}`); }else{ app.speak(`${uname}说:${msg}`); } ``` - 可用变量 - uname 用户昵称 - msg(或text) 弹幕内容 - flags 用户标签 0:普通用户 1:粉丝团 2:舰长 - uface 用户头像地址 - emoji_img_url(或emoji) 表情包图片地址 - fans_medal_level 对应房间勋章信息 - fans_medal_name 粉丝勋章名 - fans_medal_wearing_status 该房间粉丝勋章佩戴情况 - guard_level 对应房间大航海等级 - timestamp 弹幕发送的秒级时间戳 - dm_type 弹幕类型 0:普通弹幕 1:表情包弹幕 - is_admin 是否为房管 0:普通用户 1:房管 - glory_level 直播荣耀等级 - reply_uname 被@的用户昵称 ### 欢迎语 - 默认使用JavaScript模板字符串回应进入房间。 - `欢迎${uname}进入直播间。` - `${uname}进入情报局。` - 同样可以使用JavaScript代码片段定制欢迎语: ```javascript if (['ekmomo', 'barrage'].includes(uname)){ app.speak(`${uname}回到了他忠诚的直播间。`); }else if(Math.random() < 0.1){ app.speak(`${uname}进入了异次元空间,还好被主播救了回来。`); }else{ app.speak(`欢迎${uname}进入直播间。`); } ``` - 可用变量 - uname 用户昵称 - uface 用户头像地址 - timestamp 弹幕发送时间秒级时间戳 - 这个播报每60秒最多生效一次。 - 不会播报以bili_为昵称开头的用户。 ### 点歌 **感谢网易云音乐** - 直播间用户输入 `@点歌 [歌曲名]或[歌曲ID]` 即可点歌。 - 你可以自定义点歌命令,如:`来一首` 与之对应 观众需要输入 `来一首 [歌曲名]或[歌曲ID]`进行点歌。 - 使用`歌曲名`点歌时,巴拉姬会自动返回网易云搜索列表中第一条匹配的免费项目。所以你可以使用`歌曲名+歌手`进行点歌。 - 你可以在网页版的网易云音乐中直接获取`歌曲ID`。如`https://music.163.com/#/song?id=3341998649 歌曲ID`为`3341998649`。注意:使用`歌曲ID`点歌时,付费歌曲不会被播放。 ## 智能助手 - 你可以在高级设置中启用智能助手。 - 你可以使用预设的推荐模型,也可以填入任意支持OPENAI API的模型。 - 如果你只是想要轻度试用这个功能,可以免费注册使用智谱BIGMODEL的API - 推荐使用 `GLM-4.1V-THINKING-FLASH` 或 `GLM-4.6V-FLASH` - [跳转注册](https://open.bigmodel.cn/login) - [获取API_KEY](https://open.bigmodel.cn/apikey/platform) - 注意:不要填入Kimi Code等编程专用`base_url`及`APIkey`,因此违反第三方协议造成的后果巴拉姬概不负责。详情见[Kimi Code权益说明](https://www.kimi.com/code/docs/benefits.html) - 这个功能是自动生效,当你配置并点击应用按钮后,助手即开始工作。 - 心跳模式 - 每一个心跳周期向模型发送一次直播间的所有新的弹幕信息。 - 心跳模式周期最低为30秒。 - 每次用户弹幕输入会以`${uname}:${msg}`的格式记录进用户消息中。 - 唤醒模式 - 用户输入`唤醒词 [对话]`(如`@巴拉 致远星战况如何?`)与模型进行交互,一旦检测到唤醒词会立即向模型发送请求。 - 模型回应尚未完成时唤醒,唤醒指令在回应完成后发送。如果这时有多条指令,会合并发送。 - 每次非唤醒输入会以`${uname}:${msg}`的格式记录进用户消息中。 - 每次唤醒输入会以`请你根据聊天室信息响应以下输入:${uname}:${msg}`的格式记录进用户消息中。`msg不包含唤醒词部分`。 - 多轮对话 - 无论是`心跳模式`还是`唤醒模式`,巴拉姬都会记录模型上下文。 - 上下文默认长度为131072字符。为保持缓存命中,超出该长度时巴拉姬会清空一次上下文。 - 默认请求回调是直接调用`app.speak`进行全文朗读,你也可以在插件使用Javascript代码片段自定义回调。 - 示例 抬杠姬 - 心跳模式 - 心跳时间 30秒 - 系统提示词 ```markdown 身份:你现在是直播间主持人,你的名字是抬杠姬。 任务:你的任务是反驳一切直播间用户的发言,俗称抬杠。 我会将直播间内用户弹幕信息以用户名:消息的格式发送给你。请你挑选你最想反驳的用户发言,对他进行反驳。 要求:你的语言风格为爱用歇后语、幽默有趣、攻击性强。偶尔使用富含哲理的句子,如:"对于不可言说的,我们必须保持沉默","密涅瓦的猫头鹰总是在黄昏起飞"等。如果你没有需要回复的内容请回复"...",不要回复其他任何字符。 ``` ## 插件 ### 插件安装 - 默认插件: - **Minesweeper** 扫雷。观众输入坐标进行游玩。如:`A1` `B5` - **Geo_Guessr** 猜测图片地理位置。观众输入`省份`或`城市`或`区县`进行游玩。如:`北京` `浦东区` - 注意,示例中使用的API接口只作测试用途,可靠API请自行申请。 - [发行版页面](https://gitee.com/ekmomo/barrage/releases)中Source包中除DOC文件夹外,每个目录均为一个独立插件。将插件复制到应用本体的`addons目录`下即可直接使用。 - **Bili_Play_Everything** 使用弹幕控制家用主机模拟器进行游戏。你可以让直播间弹幕来玩宝可梦,当然,你也可以调用AI模型,让巴拉姬来进行游玩。 ``` 支持的模拟器: Nintendo 64,Nintendo Game Boy,Nintendo Game Boy Advance,Nintendo DS,Nintendo Entertainment System,Super Nintendo Entertainment System,PlayStation,Virtual Boy,Sega Mega Drive,Sega Master System,Sega CD,Atari Lynx,Sega 32X,Atari Jaguar,Sega Game Gear,Sega Saturn,Atari 7800,Atari 2600,Arcade,NEC TurboGrafx-16/SuperGrafx/PC Engine,NEC PC-FX,SNK NeoGeo Pocket (Color),Bandai WonderSwan (Color),ColecoVision,Commodore 64,Commodore 128,Commodore VIC20,Commodore Plus/4,Commodore PET ``` - **Bad_Guy** 观众`发送弹幕`或`投喂礼物`会向敌人进行攻击。 - **Moss** 一个基于人工智能的聊天室类直播游戏框架。观众输入`文本`与MOSS进行聊天(已完成)。输入`/指令 参数`与空间站进行交互(只完成了简单的交互,具体玩法需要自行二次开发)。 - 设置 settings 文件夹 - config.json 基础配置 - chat.md 聊天系统提示词 - action.md 交互系统提示词 - **A_Dark_Room** 小黑屋。知名开源网页游戏移植。观众输入对应的文本指令如`生火`即可游玩。 ### 插件开发 - 参见[DEVELOP.md](https://gitee.com/ekmomo/barrage/blob/master/DEVELOP.md)