部署QQ群机器人
简介
虽然标题是 Q 群机器人,但实际上不止可以接入 QQ 平台,还支持钉钉、飞书、Telegram、微信公众号、企业微信等,通过安装和配置插件,能实现很多有意思的功能,如 b 站链接解析、音乐搜索等,还可以伪装群友,一起互动,很有乐趣。
工具选择
QQ 机器人的实现一般分两部分:
- 机器人功能本体实现,常用平台有:koishi、nonebot2
- QQ 模块插件实现,常用组件有:llonebot、NapCat
本体实现插件功能,比如 API 接入、LLM 对话等;
而 QQ 模块实现插件注入,将 QQ 收发内容与本体接口连接,这样本地就能利用你的 QQ 账号收发消息了。
我自己使用的组合是:LLOneBot + Koishi,其他组合大差不差,看得懂哪个用哪个。
相关文档如下:
LLOneBot 配置
首先我们使用 LLOneBot 完成账号登录。你需要有一个用来充当机器人的 QQ 账号。
LLOneBot 官方支持 Windows 和 Linux 两个平台,相当于用户先安装一个官方的 NTQQ,然后再注入插件实现功能。
我个人使用 Windows 会不停触发风控,导致账号下线,大概率是腾讯有扫盘或者扫链接的行为;尝试使用 Linux docker 部署后,基本稳定。
有条件的推荐使用 docker 部署。
arm 架构部署参考:
我这边部署的设备是 x86 软路由,系统为 iStoreOS。
下载安装
- GitHub - LLOneBot/llonebot.nix: An installation that uses Nix or Docker to deploy LLOneBot.我们直接通过官方文档找到 docker 命令:
容器名设置为
llonebot我个人增加了 3001 端口的映射,因为我的 Koishi 运行在 Windows 虚拟机上,端口穿透没弄,所以我是通过正向 ws 链接实现的通联(一会儿解释)。
登录账号
docker 容器启动后,我们通过 ssh 连接到设备终端,通过查看 log 获取登录二维码:
我使用的是 NxShell,好用,推荐。
多打印几次,网络没问题的话就能看到二维码
手机扫码登录即可。
调整配置
这里我们需要使用 vnc 来修改配置,所以还是使用 NxShell,vnc 端口是 7081,默认密码
vncpassword,账号默认没有。连上后直接右下角找到设置,打开就能看到 llonebot 插件,进入后在页面添加 WS 反向地址
按照官方文档配置即可
这里说一下我的理解,反向 ws 类似于 webhook,bot 收到消息后,就通过接口告诉 koishi。
正向 ws 就是反过来,koishi 一直通过访问 bot 接口询问是否收到消息。
根据自己网络环境尝试两种连接方式,我这边使用的是正向 ws 连接,就需要在 koishi 中填写 docker 的 IP 加端口。

如果是反向 ws,就是安装官方教程去做,如果之后你的 koishi 部署在其他设备上,你就需要将 IP 修改为该设备的 IP,而不是 localhost。
到这里我们就把 bot 这边的配置搞定了,之后去安装 koishi。
Koishi 配置
下载安装
koishi 的安装就比较随意了,我这边直接安装在 Windows 的虚拟机上,方便调试。
没有任何难度,下载.msi 文件一路安装就行。
连接 LLoneBot
安装完成后打开 koishi,在插件市场搜索
adapter-onebot,安装该插件
安装完成后回到插件市场中找到该插件,点击修改 - 配置,跳转到插件的配置修改页面
我们首先填入 QQ 账号,保持配置后直接运行插件

默认情况下,如果之前你的反向 ws 配置正确,且你的 koishi 设备端口正常开放,此时就完成配置。
我们可以使用自己的 QQ 号给机器人 QQ 发送文本
help,如果得到机器人回复,就说明成功连接了
如果没有回复,我们继续配置
刚刚我们部署容器的时候,还开放了 3001 端口,此时可以通过这个端口尝试连接

再次测试,端口开放的情况下是没问题的。
安装插件
插件推荐安装
chatluna相关,实现 AI 对话。具体的插件功能查看说明即可。

- b 站视频链接解析:
bilibili-videolink-analysis
- 音乐下载:
music-link
配置 chatluna
这里说一下 chatluna 的一些
因为 Google 的 gemini 现在还在免费使用期间,是目前支持图片理解、搜索优化的最强模型,我们优先使用它实现对话。
- 安装 chatluna 的 Google 插件:
chatluna-google-gemini-adapter
- 配置 Google API key,启用该插件
- 回到 chatluna 配置页
- 因为地区限制,所以我们需要通过代理去请求 Google 的 API,在 chatluna 中打开
IsProxy选项,并且设置合适的代理地址,比如 clash 的地址http://127.0.0.1:7890
- 参考官方文档继续完成配置: 快速上手 | ChatLuna
伪装群友
这个也是一个很有意思的插件实现的,安装
chatluna-character 插件,根据文档进行调试尾声
我也是最近才开始自己部署机器人,感觉很有潜力,未来希望开发更多好玩的插件,一起整活儿。有啥推荐的插件也可以说说。
上一篇
零基础本地部署FLUX生图大模型
下一篇
网络小说最好方案:阅读3.0
Loading...