2024 年最新基于 LLOneBot NT 框架搭建 QQ 机器人详细教程(更新中)
llonebot(LLOneBot)是一个与OneBot(也称为CQHTTP)协议兼容的机器人框架,它允许开发者使用不同的编程语言(如Python、Go、JavaScript等)编写机器人应用,并与各种支持 OneBot 协议的聊天平台(如QQ、Telegram、Discord等)进行交互。onebot 11 背景。
LLOneBot 概述
llonebot(LLOneBot)是一个与OneBot(也称为CQHTTP)协议兼容的机器人框架,它允许开发者使用不同的编程语言(如Python、Go、JavaScript等)编写机器人应用,并与各种支持 OneBot 协议的聊天平台(如QQ、Telegram、Discord等)进行交互。
LLOneBot 官方网站:https://llonebot.github.io/zh-CN/
附加:Onebot 11 框架概述
onebot 11 背景
CQHTTP 插件是 2017 年初出现的基于 CKYU 机器人平台的一款开源免费插件,它使用户能够通过 HTTP 或 WebSocket 对 CKYU 的事件进行上报以及接收请求来调用 CKYU 的 DLL 接口,从而可以使用其它语言(不方便编译到原生二进制的语言)编写 CKYU 插件。
有非常多的开发者使用 Python、Java、Node.js 等 web 开发常用语言基于 CQHTTP 插件编写各式各样的聊天机器人。在新的机器人平台 Mirai 开始发展之后,以及 CKYU 决定停运之后,为了让原来基于 CQHTTP 插件编写的机器人能够继续运行,一些开发者在其它机器人平台上编写了兼容 CQHTTP 接口的插件/模块。
onebot 11 动机
基于 CQHTTP 插件编写的机器人项目有很多,CKYU 停运后,如果不能平滑迁移到其它平台,这些项目的很多代码都需要重写,甚至有很多项目可能被迫放弃维护,这对机器人开发社区来说是一种损失和浪费。
目前各 CQHTTP 兼容项目通常是实现了部分原 CQHTTP 插件的接口,并利用新平台的特性,新增了一些拓展接口。长远来看,这可能导致不同兼容项目最终形成了各自的「CQHTTP 接口变种」,当用户深度接入其中一个兼容项目后,可能又会出现与其它变种不兼容的情况,最终仍然存在潜在的迁移困难。
本项目希望通过改写原 CQHTTP 插件文档 + 引入 CQHTTP 兼容项目的新特性的方式,维护一个统一的、不断发展的接口标准(即 OneBot 标准),推动各 CQHTTP 兼容项目实现长远的兼容,为用户带来便利。
安装 QQNT 架构 QQ
QQNT是腾讯QQ最新采用的一种技术架构,这一架构在2023年得到了全面的应用和推广。它代表了QQ技术架构的一次重大升级,旨在提升QQ的整体性能、流畅度和稳定性。
跨平台内核层
:QQNT架构采用C++开发了跨平台内核层,将IM核心业务逻辑、QQ通用组件,以及线程、网络、IO等通用资源管理模块和操作系统封装部分统一下沉到这一层。
模块解耦
:新架构按业务划分模块,业务模块之间相互解耦,通过接口和路由进行通信。同时按层级设计划分,层级自上而下依赖,上层模块可依赖下层模块,但下层模块不能逆向依赖上层模块。
性能优化
:基于全新数据流架构、数据预加载和UI逻辑并行化的设计思路,完成单向数据流驱动与异步加载渲染,系统资源全力供给关键功能,如聊天窗口(AIO),最终性能指标提升明显。
安装包下载地址:https://im.qq.com/pcqq/index.shtml
立即安装 QQ
llob_install.exe 安装
快速开始
QQ 版本 LLOneBot 支持到最新版本的 QQ。不推荐太老的版本,9.9.7(21804) 之前的版本都没有经过仔细测试,可能会有一些问题。
Windows 用户一键安装方案
install_llob 下载地址:https://github.com/super1207/install_llob/releases
下载 install_llob.exe 安装可执行文件。双击运行 install_llob.exe 即可开始自动安装。
常见报错
2024-06-14 22:43:51 INFO llob_install: 欢迎使用LLOB安装器0.0.4 by super1207
2024-06-14 22:43:51 INFO llob_install: 正在检查是否拥有管理员权限...
2024-06-14 22:43:51 INFO llob_install: 拥有管理员权限
2024-06-14 22:43:51 INFO llob_install: 正在查询QQ安装位置...
2024-06-14 22:43:51 INFO llob_install: 从注册表获取到QQ.exe
2024-06-14 22:43:51 INFO llob_install: QQ安装位置: "C:\\Program Files\\Tencent\\QQNT"
2024-06-14 22:43:51 INFO llob_install: 正在检查QQ是否正在运行...
2024-06-14 22:43:53 ERROR llob_install: QQ正在运行,请先结束QQ
注意:安装时候请关闭 QQ 进行 install_llob.exe 执行安装。
安装演示
登陆 QQ 查看设置
打开 QQ 的设置,看到了 LLOneBot 就代表安装成功了。
通用安装教程:https://llonebot.github.io/zh-CN/guide/getting-started
LiteLoaderQQNT 插件加载器
llob_install.exe 安装完成,打开 QQ 设置发现存在 LiteLoaderQQNT、LLOneobt v.x.x.x。其中 LiteLoaderQQNT 是 QQNT 的插件加载器,一般在 QQNT 的环境内简称为 LiteLoader。它可以让你自由地为 QQNT 添加各种插件,并实现例如美化主题、增加功能等各种功能。
LiteLoaderQQNT 插件加载器官网:https://liteloaderqqnt.github.io/
开发插件文档教程:https://liteloaderqqnt.github.io/docs/introduction.html
安装 NoneBot 框架
环境需求:Python 版本 >= 3.8
配置镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn
升级 pip 包管理器
pip install --upgrade pip
安装 nb-cli 脚手架
pip install nb-cli -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后,你可以在命令行使用 nb 命令来使用脚手架。如果出现无法找到命令的情况(例如出现“Command not found”字样),重启一下命令行窗口。
package 安装(可忽略:nb-cli 自动安装所需依赖包)
nb-cli 脚手架
pip install nb-cli -i http://mirrors.aliyun.com/pypi/simple/ requests --trusted-host mirrors.aliyun.com
nonebot2 框架
pip install nonebot2 -i http://mirrors.aliyun.com/pypi/simple/ requests --trusted-host mirrors.aliyun.com
nonebot-adapters-onebot 适配器
pip install nonebot-adapter-onebot -i http://mirrors.aliyun.com/pypi/simple/ requests --trusted-host mirrors.aliyun.com
fastapi
pip install nonebot2[fastapi] -i http://mirrors.aliyun.com/pypi/simple/ requests --trusted-host mirrors.aliyun.com
配置连接 NoneBot2 框架
配置对接其他框架:例如 Koishi、NoneBot
提示:Koishi 是一个跨平台、可扩展、高性能的聊天机器人框架。
补充:Koishi 官方网站:https://koishi.chat/zh-CN/
配置 NoneBot
这里假设你已经安装了 Onebot 适配器,默认情况 NoneBot 是启用了反向 ws 的,可能是默认配置问题,需要配置 token 才能正常连接,修改 NoneBot 配置文件 .env,添加 ONEBOT_ACCESS_TOKEN=你的token。然后启用 NoneBot,可以看到 NoneBot 输出的端口号,如 8080 端口。
ONEBOT_ACCESS_TOKEN=你的token
配置演示截图
在 LLOneBot 配置页面添加反向 ws 地址,地址为 ws://127.0.0.1:8080/onebot/v11/ws, 这里的 8080 是 NoneBot 输出的端口号,/onebot/v11/ws 是 NoneBot onebot 适配器默认的路径。
注意:记得 LLOneBot 配置的 token 需要和 NoneBot 配置的 一致
创建启动 NoneBot2 项目
nb create
选择 bootstrap 初学者或用户
填写项目名称选择适配器
驱动器选择 FastAPI 驱动器
选择内置插件 例如:选择 echo
使用 poetry 或 pdm 等依赖管理工具添加以下包:
nonebot-adapter-onebot nonebot2[fastapi]
运行以下命令来启动你的机器人:
cd linenazi-bot
nb run --reload
在项目文件夹中创建一个 .env 文本文件
HOST=0.0.0.0 # 配置 NoneBot 监听的 IP / 主机名
PORT=8080 # 配置 NoneBot 监听的端口
COMMAND_START=["/"] # 配置命令起始字符
COMMAND_SEP=["."] # 配置命令分割字符
启动 Bot
nb run --reload
06-14 23:38:49 [SUCCESS] nonebot | NoneBot is initializing...
06-14 23:38:49 [INFO] nonebot | Current Env: prod
06-14 23:38:49 [SUCCESS] nonebot | Succeeded to load plugin "echo" from "nonebot.plugins.echo"
06-14 23:38:49 [SUCCESS] nonebot | Running NoneBot...
06-14 23:38:50 [INFO] uvicorn | Started server process [7580]
06-14 23:38:50 [INFO] uvicorn | Waiting for application startup.
06-14 23:38:50 [INFO] uvicorn | Application startup complete.
06-14 23:38:50 [INFO] uvicorn | Uvicorn running on http://127.0.0.1:8080 (Press CTRL+C to quit)
06-14 23:38:51 [INFO] uvicorn | ('127.0.0.1', 50817) - "WebSocket /onebot/v11/ws" [accepted]
06-14 23:38:51 [INFO] nonebot | OneBot V11 | Bot 你的QQ号 connected
06-14 23:38:51 [INFO] websockets | connection open
出现 connection open 说明启动成功,成功连接 LLonebot 端。
补充更新:插件加载器安装
若 llob_install.exe 安装失败则进行采用手动安装 LiteLoaderQQNT 插件加载器
安装文档:https://liteloaderqqnt.github.io/guide/install.html
下载 LiteLoaderQQNT:使用 Git 工具将 LiteLoaderQQNT 仓库 Clone 到本地任意位置
git clone --depth 1 https://github.com/LiteLoaderQQNT/LiteLoaderQQNT.git
配置 resources\app\app_launcher\index.js
找到 QQNT 安装目录编辑 resources\app\app_launcher\index.js
文件
require(String.raw`C:\LiteloaderQQNT`); // 此处换成你 LiteLoaderQQNT 目录位置
require('./launcher.node').load('external_index', module);
DLLHijackMethod
由于 Windows 系统平台 QQNT 被添加文件完整性验证,你需要额外步骤来解除限制。在 Release 下载 dll 文件,重命名 dbghelp.dll 放入 QQ.exe 同级目录下即可。
DLLHijackMethod dbghelp.dll 下载地址:https://github.com/LiteLoaderQQNT/QQNTFileVerifyPatch/tree/DLLHijackMethod
设置 plugins 目录
LiteLoaderQQNT 目录创建 plugins 目录
运行 QQ 安装成功
NoneBot2 常见案例
待更新······
更多推荐
所有评论(0)