Skip to content

关于本项目

作者介绍

  • UNIkeEN
  • 身份:SJTU 21级本科生,电院
  • 职务:项目发起人、主要开发者
  • fangtiancheng
  • 身份:SJTU 19级本科生,电院
  • 职务:主架构师、技术顾问

开发历程

2022年暑假,周围的朋友受某种风气影响,纷纷跑去开发 QQ 聊天机器人,其中大部分人选择 nonebot 作为基础框架。作为后来者,我观察到:他们在使用 nonebot 后,还纷纷跑去看 go-cqhttp 文档,甚至有几个抱怨 nonebot 封装太深。受此影响,我便打算只基于 go-cqhttp 开发一套 QQ 机器人出来。

一个月后, Little-UNIkeEN-Bot 大致成型。我作为后来者,开发出的功能比那几个先到者的还要多。因此,我便考虑将这个项目继续做大。接下来一个月,我打磨架构、引进技术、开发新插件,顺利地把 bot 修到更进一步的高度。同时,我也开始思考一个哲学问题:

onebot 是一个好方案吗?

我思考了好久,最后认定这并不是一个好方案。原因如下:

onebot 协议主打跨平台,目前 nonebot 也确实实现了,但是平台之间的内容异质性是中间层软件无法抹平的。比如 qq 的表情、at、戳一戳,形状如[cq:xxx,id=xxx];钉钉的富文本,格式更不好描述。如果需要开发者自己抹除内容异质性,那么扛起跨平台大旗的中间层也没有生存的的必要了;如果中间层抹除了内容异质性,那么就需要自己制定大量标准、编写大量函数、频繁修改代码对接底层,这样做既丧失了版本稳定性,更需要消耗开发者大量精力去学习你自己制定的接口,有种“自己玩自己的”的感觉。更失望的是,阿里腾讯可不听我们这些bot开发人员的呼声,异质性内容还会更多更频繁地在未来出现。

nonebot是遵守onebot协议的,自然能看出其缺点:封装深要求多、开发成本过高、版本不稳定、QQ独特的内容不能完美表达(比如精华消息等)....

因此,我更加坚定了推出一套完整项目的决心。我开始召集小伙伴写插件、写文档、深度打磨架构....

直到,我们隆重推出本项目的1.0.0版本!

我们的优势和不足

nonebot 是 Little-UNIkeEN-Bot 的主要竞品之一,相比 nonebot ,我们的优势有:

  1. 核心代码小于 1000 行,架构简单、逻辑清晰
  2. 在编程层面屏蔽多线程,极大地减少开发难度
  3. 建议用户直接与 qq 驱动对话,底层丰富功能即学即用
  4. 不用跨过中间层,能直接接受 gocq 的 dict 格式消息、使用 python 库定时等,减少学习、开发成本
  5. 消息封装简单,插件示例丰富,功能轻松编写
  6. 给内容生产者提供 sql 存储、PIL 光栅化服务,大大增加生产效率

我们的不足有:

  1. 非跨平台,目前官方库仅支持 qq (不过已经有其他作者开发了微信版本)
  2. 在开发进阶插件时,需要开发者额外学习 mysql 、阅读 go-cqhttp 文档
  3. 我们刚刚开源,社区建设并不完善

我们和 nonebot 的差异:

  1. 我们的定位是 qq 机器人前端,nonebot 的定位是多聊天软件中间层&前端

nonebot2 友情链接:文档代码

免责声明

开源社区建设