聊天机器人
一、先导🐟
QQ官方并没有对个人开发开放基本功能(好像个人申请只能用于QQ频道),加上官方针对开源协议库的围追堵截,非官方的QQ机器人不能100%可靠运行。
但随着官方推出NTQQ统一了各系统,限制局面被打破。
QQ官方最新推出的 NTQQ 客户端使用了 electron 技术,其分为前后端两个部分, 前端是使用 Web 技术开发的 UI 界面供用户交互,后端使用 nodejs addons 技术包装了一个库来处理客户端逻辑和与服务端通信。
我们将NTQQ 客户端前端删除只与后端库交互, 并引出 API 来为我们的Bot服务,即可开启QQ机器人玩法。
二、搭建Lagrange.OneBot🐟
Lagrange.Core 是一个开源的 NTQQ 协议实现,用于充当客户端后端角色。
运行 Lagrange 后,修改 appsettings.json 暴露接口即可,具体业务操作交给 Nonebot2 实现
docker run -td --network host -v /home/shafish/Data/docker/lagrange:/app/data -e UID=$UID -e GID=$(id -g) ghcr.io/lagrangedev/lagrange.onebot:edge
appsettings.json
{
"$schema": "https://raw.githubusercontent.com/LagrangeDev/Lagrange.Core/master/Lagrange.OneBot/Resources/appsettings_schema.json",
"Logging": {
"LogLevel": {
"Default": "Information"
}
},
"SignServerUrl": "https://sign.lagrangecore.org/api/sign/30366",
"SignProxyUrl": "",
"MusicSignServerUrl": "",
"Account": {
"Uin": 0,
"Password": "",
"Protocol": "Linux",
"AutoReconnect": true,
"GetOptimumServer": true
},
"Message": {
"IgnoreSelf": true,
"StringPost": false
},
"QrCode": {
"ConsoleCompatibilityMode": true
},
"Implementations": [
{
"Type": "ReverseWebSocket",
"Host": "127.0.0.1",
"Port": 8080,
"Suffix": "/onebot/v11/ws",
"ReconnectInterval": 5000,
"HeartBeatInterval": 5000,
"AccessToken": "shafish"
},
{
"Type": "ForwardWebSocket",
"Host": "127.0.0.1",
"Port": 8081,
"HeartBeatInterval": 5000,
"HeartBeatEnable": true,
"AccessToken": "shafish"
}
]
}
- ReverseWebSocket 端口要与 Nonebot2 运行端口一致,默认8080;
- Lagrange 容器运行后,注册一个新QQ号充当机器人,使用
docker logs 容器名
展示二维码,并扫描登录即可。(QQ登录时记得勾选)
三、创建Nonebot2项目🐟
环境按照官方文档安装,要求Python 3.9 及以上版本(配置终端代理加快依赖包下载)
- 创建项目:
nb create
- 运行:
ref:
创建日期:
April 22, 2024 23:32:41
最后更新: March 22, 2025 21:32:55
最后更新: March 22, 2025 21:32:55