agou的胡言乱语 头像

消息来源频道

agou的胡言乱语

@bakadog

频道845 位成员公开可见0 人在线
成员规模845 位成员
在线情况0 人在线
消息总数4,630 条消息
浏览量总数22,034 次浏览

在这个频道里搜索消息……

t.me/bakadog

无心插柳的“毒瘤”—— 关于 nmBot 骚扰拦截功能的一切(上)
2022 年 12 月 12 日,与其他一些功能和修复一起,nmBot 正式推出了入群验证“自动封禁骚扰用户”和“自动识别并删除骚扰消息”两项新功能。当时我没有想到,这两项现在常被合并称作“骚扰拦截类”的功能会拥有如此大的地位,以至于偶尔引发一些争议。
设计这项功能的初衷,其实是“假做”。那年 11 月 26 号上线的积分功能遭到了一定的批评,因为有些人认为签到这样的功能在群组中侵略性太大,印象中总有人问我能不能关闭这功能,怎么关闭这功能。这么快给一项发了宣传稿的功能加关闭按钮不太现实,但我不得不迅速做出了两次“削弱”。
积分功能的舆论不太好,给我造成了很大的打击。为了留住用户,我只能想办法整点用户更可能喜欢的功能。当时 nmBot 的基础功能补齐地差不多了,所以我看中了之前很多人向我反映想要的自动拦截功能,开始想有没有办法实现它。
然而,这项功能对我来说其实是一个难题。大多数机器人的这种功能都是靠机器学习实现的,他们有 XTB 的样本和 X 核 40X0Ti 的 GPU,然后写各种 Python 代码来跑。这东西费两个力,一个财力,一个能力。钱不是问题,但要做这种 Python 深度学习,我是一点也不会;同时我也没地方找广告样本。
如何在成本最小的情况下获得最好的检测效果呢?这不是我考虑的问题,由于我只是想做这么一个功能,而不是把他做好,所以我考虑的是,如何把成本控制到最小,换句话说,如何将其实现的最简陋。当时机器人的代码也是修修改改快两年的一团乱麻,还没有整理,所以我决定随意做一做,带上 AdGoAwayBot 的选项,假装我有这么一个功能就好了。这是一个让人后悔的决定,我最后选择用最成熟的关键词匹配模式,来假做一下这个功能。
带着这种随意的态度,我写了一些简单的代码,在入群验证和消息处理中做了两套识别系统,加入了 /spam 和按钮入口,举报处理系统和机器人管理员才可用的管理员添加指令。当时没有专门的添加功能,也没有查看和删除规则的方式,更没有志愿者,所有举报都是我在处理。当时举报处理之后消息甚至会丢失所有的格式。但这都无所谓,因为我只是随便做做的。毕竟谁会相信基于正则表达式匹配的一套系统,真的会有什么效果呢?
(未完待续)