本帖最后由 codeas 于 2024-8-5 10:51 编辑
大概在前年的时候,由于自己`Telegram`的开源交流群快1万人了。 对于这种”大群“而言,早已被各大垃圾广告脚本列入群发名单了,所以经常能看到很多群发垃圾信息广告。 管理员多次跟我抱怨“广告垃圾太多了,根本删不完,有的还会偷偷趁管理都睡了进来发,防不胜防”, 当时就在计划写一个`反广告`的机器人, 最开始的设想很简单,找一批`违禁词`做基础数据源,然后在根据用户的发言做`关键词拆分`, 如果用户发言里面包含的关键词`命中n个`以后,就代表是垃圾信息,立马对用户进行`封禁操作`。 但是上线后发现以下几个弊端: – 1.违禁词库不够大,能找到的很多都是一些旧数据了,导致命中率很低 再运行一段时间发现以上缺点后,我就开始失望了,因为我没有精力和时间去做更多的手段完善`识别率`, 只能祈祷用爱发电的管理员们多多关注群消息,手动删除。 我也尝试过许多第三方的机器人,但是效果可能都不太如尽人意。 但是在上个星期,一位好友突然让我尝试一个机器人,说识别率很高,我就去扫了一眼。 发现它是基于chatgpt去做识别的, 这次发现突然给了我灵感,对啊,为什么我没想的用`AI`去做识别呢? 我这人有个缺点,就是了解原理以后,喜欢自己造轮子,命运得握在自己手上不是? 这里也非常感谢https://t.me/ZUOLUOTV_AI_BOT机器人以及它的作者在推特上透露的灵感, 当然使用`AI`还有个好处就是,现在很多`AI`接口的中转站,价格相较于官方会便宜很多很多, 而且`AI`是支持`多语言交互的`,不仅仅局限于反`中文垃圾消息`,随着模型的成熟,它能理解并判断更多的语言。 说干就干,`IDEA`启动! 这里简单可以描述群发广告机器人的原理:
复制代码 好了,现在我们了解了`茅`的原理了,接下来我们开始实现`盾` `盾`的实现原理如下:
复制代码 这样做的理由是什么: 剩下的事情就简单多了,只需要预先设置好`AI的prompt`,然后把用户发言的内容交给它判断就行了。 暂时我只实现了`Openai`的接口,目前看来足够使用,其他模型等后续有时间再做。 我们来看一下效果: 我和朋友在线上测试了几天,发现识别效果还是不错的,当然速度的话还是取决于你的服务器和AI的接口。 我将它开源了出来,有需求或者对Telegram机器人开发感兴趣的话可以看看。 基于go语言和docker启动,数据源用的sqlite,无需过多依赖,可以一键启动。 项目地址:https://github.com/assimon/ai-anti-bot 原文地址:https://utf8.hk/archives/ai-anti-bot.html |
膜拜技术大佬 |