时易うさぎ
时易うさぎ
发布于 2024-04-30 / 3 阅读
0

在Windows上使用Nonebot2_Koishi搭建QQ机器人

请不要在QQ官方群聊和任何影响力较大的简中互联网平台(包括但不限于:B站,微博,知乎,抖音等)发布和讨论任何与本文章中涉及的项目存在相关性的信息

修改QQ客户端、搭建机器人有一定的风险(风控、限制登录、封号等),在阅读文章内容并进行相关操作之前,请考虑清楚,博主并不为这些风险负责!

go-cqhttp已死,即使使用签名服务器也不能保证bot长时间存活,因此本文将使用NTQQ + LiteLoaderQQNT + LLOneBot的方式对接onebot v11协议

如果你还没有安装NTQQ和LiteLoaderQQNT:https://www.kafuuchino.fun/archives/240429
安装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至环境变量

28-001-Snipaste_2024-09-09_11-13-40.png


将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

28-002-image-11-pklx.png

安装 pipx 和 nonebot2 脚手架:

# 安装pipx
pip install pipx
# 将pipx下的虚拟环境添加到path
pipx ensurepath
# 安装nonebot脚手架
pipx install nb-cli

安装完成后,新建一个文件夹用于存放机器人项目,并在当前路径打开终端,或打开终端后cd到机器人项目的路径:

28-003-image-13-qrxt.png

输入nb,可以看到一个向导:
选择创建一个nonebot项目,回车

28-004-image-14-sjpt.png

选择初学者,回车

28-005-image-15-fqka.png

输入你要创建的机器人项目的名称并回车

28-006-image-16-ufrx.png

使用空格选中OneBot V11适配器,回车

28-007-image-17-vnps.png

这里使用默认的FastAPI驱动器即可,直接回车

28-008-image-18-yyyv.png

立即安装依赖并且创建虚拟环境
创建虚拟环境可以防止你的机器人使用的依赖和电脑上已有的Python发生冲突,还可以方便迁移机器人(相当于直接在你机器人的项目路径里又装了个Python)

28-009-image-20-muzn.png

这里我们按空格选择并回车,使用内置的echo插件

28-010-image-21-bihi.png

可以看到,机器人项目已经创建完成了

28-011-image-22-psuv.png

右键使用记事本编辑机器人的配置文件(.env.prod)

28-012-image-23-afko.png

在其中添加下列内容,根据你的实际情况进行修改,保存文件

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=["."]  # 配置命令分割字符
28-013-image-24-rpgw.png

打开QQ设置,配置LLOneBot
启用反向WebSocket服务,前面其他的服务用不到可以关掉,配置Access token,token需要和刚刚配置文件里的一致

28-014-image-25-xqxl.png

添加监听地址ws://127.0.0.1:7070/onebot/v11/ws,这里的端口7070要和刚刚配置文件里的端口一致,保存设置

28-015-image-26-ygtj.png

cd进刚刚创建的机器人项目路径,输入nb run --reload启动机器人

28-016-image-27-ksxp.png

出现这样的日志就说明机器人启动完成了,如果没有就检查一下刚刚的配置哪里有问题

28-017-image-28-dvhw.png

这时我们就可以私聊机器人来测试了
刚刚创建机器人项目的时候,我们选择了自带的echo插件,这个插件的作用是让机器人复读一遍你的话
发送:echo 测试
可以看到机器人回复了复读的消息,说明机器人已经搭建起来没有问题了

28-018-image-29-xast.png

之后,根据你的需要,去nonebot的插件商店给你的机器人添加更多功能吧~
当然,你也可以自己开发插件(

28-019-image-30-jaxc.png

插件的安装方式就是复制安装命令,在机器人没有运行的状态下,在终端里输入就可以了(要先cd进机器人的项目路径哦)

28-020-image-31-aviv.png
28-021-image-32-jhqa.png
28-022-image-34.png

可以通过编辑项目配置文件来控制要加载哪些已经安装的插件:

28-023-image-35.png

基于Koishi搭建:

Koishi官方文档:https://koishi.chat/zh-CN/
下载并安装koishi,进入主界面

28-024-image-36.png

点击依赖管理,点击右上角的全部更新(小火箭图标),然后点击应用更改(对钩),确认安装

28-025-image-37.png
28-026-image-38.png

耐心等待依赖更新完成,根据网络情况这一步可能会花费较多的时间

28-027-image-39.png

更新完成后,在任务栏托盘图标中重启koishi

28-028-image-40.png

在插件市场中搜索onebot,安装onebot适配器

28-029-image-41.png
28-030-image-42.png

安装完成后,再次进入插件市场,找到刚刚的适配器,点击修改

28-031-image-43.png
28-032-image-44.png

此时我们来到了onebot适配器的设置,填入机器人账号和token
这里的token要和在QQNT的LLOneBot插件中配置的token一致

28-033-image-46.png

配置LLOneBot中的token和监听地址并保存:

28-034-image-47.png

回到刚刚的适配器设置,启用插件

28-035-image-48.png

可以看到koishi已经连接到了QQ

28-036-image-49.png

这时候就可以在插件市场里给机器人添加其他的功能插件了,插件的安装和配置和刚刚的onebot适配器安装类似

28-037-image-50.png

可以很方便的在沙盒中测试机器人的反馈(这里安装了echo插件):

28-038-image-51.png

至此,两种搭建方式就全部介绍完了,当然,你也可以搭建同时基于nonebot2和koishi的机器人,充分利用两种框架的不同插件生态,只要保证两个框架的监听端口和插件功能不冲突即可。