在Windows上使用Nonebot2/Koishi搭建QQ机器人
请不要在QQ官方群聊和任何影响力较大的简中互联网平台(包括但不限于:B站,微博,知乎,抖音等)发布和讨论任何与本文章中涉及的项目存在相关性的信息
修改QQ客户端、搭建机器人有一定的风险(风控、限制登录、封号等),在阅读文章内容并进行相关操作之前,请考虑清楚,博主并不为这些风险负责!
go-cqhttp已死,即使使用签名服务器也不能保证bot长时间存活,因此本文将使用NTQQ + LiteLoaderQQNT + LLOneBot的方式对接onebot v11协议
如果你还没有安装NTQQ和LiteLoaderQQNT:https://www.kafuuchino.fun/archives/29
安装LLOneBot插件:https://github.com/LLOneBot/LLOneBot
基于NoneBot2搭建:
NoneBot2官方文档:https://nonebot.dev/docs/
安装Python:https://www.python.org/downloads/ 本文中使用的Python版本是3.12.3
注意:安装python时要勾选Add python.exe to PATH,否则后续可能会出现无法找到可用的 Python 解释器的问题,如果已经安装且出现了该问题,请参考评论区步骤手动添加python至环境变量
将pip切换到国内源:
# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 阿里源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 腾讯源
pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple
# 豆瓣源
pip config set global.index-url http://pypi.douban.com/simple/
# 换回默认源
pip config unset global.index-url
安装 pipx 和 nonebot2 脚手架:
# 安装pipx
pip install pipx
# 将pipx下的虚拟环境添加到path
pipx ensurepath
# 安装nonebot脚手架
pipx install nb-cli
安装完成后,新建一个文件夹用于存放机器人项目,并在当前路径打开终端,或打开终端后cd到机器人项目的路径:
输入nb,可以看到一个向导:
选择创建一个nonebot项目,回车
选择初学者,回车
输入你要创建的机器人项目的名称并回车
使用空格选中OneBot V11适配器,回车
这里使用默认的FastAPI驱动器即可,直接回车
立即安装依赖并且创建虚拟环境
创建虚拟环境可以防止你的机器人使用的依赖和电脑上已有的Python发生冲突,还可以方便迁移机器人(相当于直接在你机器人的项目路径里又装了个Python)
这里我们按空格选择并回车,使用内置的echo插件
可以看到,机器人项目已经创建完成了
右键使用记事本编辑机器人的配置文件(.env.prod)
在其中添加下列内容,根据你的实际情况进行修改,保存文件
ONEBOT_ACCESS_TOKEN=114514chino # 配置 Onebot的token
HOST=0.0.0.0 # 配置 NoneBot2 监听的 IP/主机名
PORT=7070 # 配置 NoneBot2 监听的端口
SUPERUSERS=["1279478673"] # 配置 NoneBot 超级用户(QQ号)
NICKNAME=["香风智乃"] # 配置机器人的昵称
COMMAND_START=["/", ""] # 配置命令起始字符
COMMAND_SEP=["."] # 配置命令分割字符
打开QQ设置,配置LLOneBot
启用反向WebSocket服务,前面其他的服务用不到可以关掉,配置Access token,token需要和刚刚配置文件里的一致
添加监听地址ws://127.0.0.1:7070/onebot/v11/ws,这里的端口7070要和刚刚配置文件里的端口一致,保存设置
cd进刚刚创建的机器人项目路径,输入nb run --reload启动机器人
出现这样的日志就说明机器人启动完成了,如果没有就检查一下刚刚的配置哪里有问题
这时我们就可以私聊机器人来测试了
刚刚创建机器人项目的时候,我们选择了自带的echo插件,这个插件的作用是让机器人复读一遍你的话
发送:echo 测试
可以看到机器人回复了复读的消息,说明机器人已经搭建起来没有问题了
之后,根据你的需要,去nonebot的插件商店给你的机器人添加更多功能吧~
当然,你也可以自己开发插件(
插件的安装方式就是复制安装命令,在机器人没有运行的状态下,在终端里输入就可以了(要先cd进机器人的项目路径哦)
可以通过编辑项目配置文件来控制要加载哪些已经安装的插件:
基于Koishi搭建:
Koishi官方文档:https://koishi.chat/zh-CN/
下载并安装koishi,进入主界面
点击依赖管理,点击右上角的全部更新(小火箭图标),然后点击应用更改(对钩),确认安装
耐心等待依赖更新完成,根据网络情况这一步可能会花费较多的时间
更新完成后,在任务栏托盘图标中重启koishi
在插件市场中搜索onebot,安装onebot适配器
安装完成后,再次进入插件市场,找到刚刚的适配器,点击修改
此时我们来到了onebot适配器的设置,填入机器人账号和token
这里的token要和在QQNT的LLOneBot插件中配置的token一致
配置LLOneBot中的token和监听地址并保存:
回到刚刚的适配器设置,启用插件
可以看到koishi已经连接到了QQ
这时候就可以在插件市场里给机器人添加其他的功能插件了,插件的安装和配置和刚刚的onebot适配器安装类似
可以很方便的在沙盒中测试机器人的反馈(这里安装了echo插件):
至此,两种搭建方式就全部介绍完了,当然,你也可以搭建同时基于nonebot2和koishi的机器人,充分利用两种框架的不同插件生态,只要保证两个框架的监听端口和插件功能不冲突即可。
- 感谢你赐予我前进的力量