神奇弹幕V5.4.0支持在 JS、Python 等外部语言中使用网络功能,以及新增了过滤器功能也可以使用其他编程语言。
因此支持了使用 AI 来过滤要显示的弹幕(会有一定的网络延迟,需要看大模型计算时长与网络延迟)
说明
- 给弹幕分级,“违规 / 不重要 / 重要”
- 过滤弹幕,“违规”类型不显示,“不重要”类型可选显示,“重要”类型必定显示
- 显示违规或者不重要的原因
- 包含置信度、标签显示
效果

如图,“违规”与“不重要”的弹幕都没显示出来(灰色文字为提示,可以隐藏)。
操作
需要开启“过滤器”功能。
在事件 FILTER_DANMAKU_MSG
中,添加代码:
js:
var name = danmaku.getNickname();
var danmu = danmaku.getText();
// console.log("获取到的弹幕:" + name + ":" + danmu);
if (danmu == "" || danmu == null || danmu == undefined) {
return "";
}
// 确定提示词,清除敏感词和不重要弹幕
var prompt = `# 角色
你是一个专业的弹幕内容审核与价值评估AI助手。你的任务是对用户发送的弹幕进行快速、准确的分类。
# 任务
请严格按照以下要求对输入的弹幕文本进行分析和分类:
## 分类标准
1. **违规弹幕 (VIOLATION)**: 包含或涉及以下内容:
* 色情、低俗、裸露暗示
* 暴力、血腥、恐怖威胁
* 歧视、仇恨言论(地域、种族、性别、性取向等)
* 恶意人身攻击、侮辱、诽谤
* 违法违规信息(毒品、赌博、诈骗、违禁品)
* 政治敏感内容(违反当地法律法规)
* 垃圾广告(非官方推广、二维码、联系方式)
* 诱导点击/跳转(钓鱼、诈骗链接)
* **核心特征:** 违反法律法规或平台规定,对他人或社区造成伤害或风险。
2. **重要弹幕 (IMPORTANT)**: 满足以下一条或多条,且**不违规**:
* **与当前直播/视频主题高度相关**:讨论正在发生的事件、展示的内容、游戏进程、知识点等。
* **提出有价值的问题**:关于内容本身的疑问、技术探讨、寻求帮助(非简单重复)。
* **提供有价值的信息/解答**:回答他人问题、补充知识点、纠正错误(友善)。
* **精彩点评/深度见解**:对内容有独到、深刻的分析或赞美(非无脑吹)。
* **主播/UP主/观众互动**:@主播/UP主的有意义提问或反馈(非骚扰)。
* **关键信息通知**:提醒主播失误、危险操作、重要消息(如比赛关键点)。
* **核心特征:** 对观看者理解内容、与主播互动、提升社区氛围有显著积极价值。
3. **不重要弹幕 (LOW_VALUE)**: 满足以下一条或多条,且**不违规**,也**不满足重要弹幕标准**:
* **无意义内容**:纯符号 (如 \`...\` \`!!!\`)、无意义字母/数字串、乱码。
* **简单表情/颜文字**:单独或主要包含常用表情符号 (如 \`😂\` \`🤣\` \`👍\` \`😍\`) 或颜文字 (如 \`(^_^)\` \`(。ŏ_ŏ)\`) 且无实质文字。
* **简单问候/告别/感谢**:如 \`主播好\` \`我来了\` \`下了\` \`拜拜\` \`谢谢\` \`辛苦了\`(无其他内容)。
* **简单无脑跟风/复读**:无意义地重复他人发言或流行语。
* **纯粹的情绪发泄**:单一的 \`哈哈哈哈哈\` \`awsl\` \`666\` \`牛逼\`(无上下文关联或附加信息)。
* **核心特征:** 信息量极低,对理解内容或社区互动无明显价值,属于可忽略的"噪音"。
# 输出要求
* **输出格式:严格使用JSON格式!**
* **JSON结构:**
{
"classification": "VIOLATION" | "IMPORTANT" | "LOW_VALUE", // 必选!三选一,大写!
"confidence": 0.8, // 必选!0.0 - 1.0 之间的浮点数,表示你对分类结果的置信度。
"reason": "简要解释分类原因,重点引用弹幕中触发该分类的关键词或特征。", // 必选!简明扼要!
"flags": [ // 可选!提供更细粒度的标签(选择最相关的1-3个)。
"hate_speech", // 如:hate_speech, porn, violence, advertisement, spam, question, topic_relevant, praise, off_topic, simple_emotion...
]
}
* **优先级:** 只要触发\`违规(VIOLATION)\`条件,无论是否满足其他类别,**必须**分类为\`VIOLATION\`!
* **谨慎原则:** 对于模棱两可、难以判断是否违规的内容,**优先**归入\`LOW_VALUE\`或\`IMPORTANT\`(避免过度审查)。仅在明确违反规则时才标记\`VIOLATION\`。
# 示例
弹幕: "主播这波操作太下饭了,菜得抠脚!"
输出: {"classification": "VIOLATION", "confidence": 0.9, "reason": "包含人身攻击'菜得抠脚'。", "flags": ["personal_attack"]}
弹幕: "请问刚才演示的代码中,为什么要用闭包而不用全局变量?"
输出: {"classification": "IMPORTANT", "confidence": 0.95, "reason": "提出了关于演示内容的具体技术问题。", "flags": ["question", "topic_relevant"]}
弹幕: "前方高能预警!3分15秒有惊喜!"
输出: {"classification": "IMPORTANT", "confidence": 0.85, "reason": "提供了与视频内容相关的关键时间点信息。", "flags": ["key_information"]}
弹幕: "哈哈哈哈哈哈哈哈哈"
输出: {"classification": "LOW_VALUE", "confidence": 0.75, "reason": "仅为简单情绪表达,无实质内容。", "flags": ["simple_emotion"]}
弹幕: "晚上好~ 大家吃了吗?"
输出: {"classification": "LOW_VALUE", "confidence": 0.8, "reason": "简单问候,与直播内容无关。", "flags": ["greeting", "off_topic"]}
弹幕: "这个观点我不同意,我认为XXX才是主要原因,理由有三:1... 2... 3..."
输出: {"classification": "IMPORTANT", "confidence": 0.88, "reason": "针对内容提出了有理有据的不同见解。", "flags": ["insightful_comment"]}
弹幕: "加VX:123456789 看福利图"
输出: {"classification": "VIOLATION", "confidence": 0.99, "reason": "包含联系方式'VX:123456789'及诱导'看福利图',属垃圾广告。", "flags": ["advertisement", "porn"]}
弹幕: "666"
输出: {"classification": "LOW_VALUE", "confidence": 0.7, "reason": "简单情绪表达'666',无其他信息。", "flags": ["simple_emotion"]}
`
// 使用DeepSeek接口来过滤弹幕
var url = "https://api.deepseek.com/v1/chat/completions";
var data = {
"model": "deepseek-chat",
"messages": [
{ "role": "system", "content": prompt },
{ "role": "user", "content": danmu }
]
};
var response = fetch(url, {
method: "POST",
headers: {
"Authorization": "Bearer sk-123456【你的DS秘钥】",
"Content-Type": "application/json"
},
body: JSON.stringify(data)
});
json_data = JSON.parse(response)
// 判断是否有效
if (json_data['choices'] == null || json_data['choices'] == undefined) {
console.log(json_data);
return ">localNotify('没有choices')";
}
var result = json_data['choices'][0]['message']['content'];
// 获取第一个{和最后一个}及之间的内容
var start = result.indexOf('{');
var end = result.lastIndexOf('}')
if (start == -1 || end == -1) {
console.log(result);
return ">localNotify('不是JSON格式')";
}
var json_result = result.substring(start, end + 1);
// 分析JSON
json_data = JSON.parse(json_result);
var classification = json_data['classification']; // VIOLATION | IMPORTANT | LOW_VALUE
var confidence = json_data['confidence']; // 0.0 - 1.0 之间的浮点数
var reason = json_data['reason']; // 简要解释分类原因,重点引用弹幕中触发该分类的关键词或特征。
var flags = json_data['flags']; // 可选!提供更细粒度的标签(选择最相关的1-3个)。
// 【显示该功能的效果说明(可选)】
var output_str = "";
if (classification == "VIOLATION") {
output_str = "[违规]";
} else if (classification == "IMPORTANT") {
output_str = "[重要]";
} else {
output_str = "[不重要]";
}
output_str += "(" + confidence + ") " + reason;
console.log(output_str);
// 过滤违规弹幕
if (classification == "VIOLATION") {
return ">reject()";
}
// 【过滤不重要的弹幕(可选)】
if (classification == "LOW_VALUE") {
return ">reject()";
}
return "";