0%

部署 QQ AI聊天机器人

目的:部署一个 QQ AI聊天机器人。

用到两个开源项目,NapCatQQ 和 Koishi。

NapCatQQ 实现了QQ登录,能够通过程序收发QQ消息,提供了onebot协议支持。
Koishi 是个机器人框架,具备丰富插件系统。

部署

注意docker hub加速域名用x.com隐藏代替了,需要请自行搭建,参考:Cloudflare反代docker hub

1
2
docker pull x.com/mlikiowa/napcat-docker:latest
docker pull x.com/koishijs/koishi:latest

启动 koishi 容器,映射容器5140到888端口

提前创建好/root/koishi_data目录。

1
docker run -d -p 999:5140 -v /root/koishi_data:/koishi --name koishi --mac-address=02:42:ac:11:00:98 koishijs/koishi:latest

查看容器运行输出内容
docker logs koishi

浏览器访问999端口,通过koishi web控制台进行配置。
在 插件配置-market,配置插件市场和插件npm源。
依赖管理全部更新。
配置auth插件,设置管理员密码。
安装插件:

1
2
3
4
5
chatluna
chatluna-qwen-adapter
adapter-onebot
chatluna-openai-like-adapter
api-handler

koushi插件发布:

1
2
1. 根目录执行 npm run build
2. 再在根目录执行 npm run pub -- --debug

启动 napcat 容器,把容器6099端口映射到本机8087端口

创建目录:

1
2
/root/napcat/config/
/root/napcat/qq/

运行容器:

1
2
3
4
5
6
7
8
9
10
11
12
docker run -d \
-e ACCOUNT="机器人BOTQQ" \
-e NAPCAT_GID=0 \
-e NAPCAT_UID=0 \
-v /root/napcat/config:/app/napcat/config \
-v /root/napcat/qq:/app/.config/QQ \
-p 8087:6099 \
-p 8089:3000 \
--name napcat \
--restart=always \
--mac-address=02:42:ac:11:00:99 \
mlikiowa/napcat-docker:latest

查看napcat输出内容,扫码登录。

1
docker logs napcat

打开 http://服务器IP:8087/webui/#/webui 使用token登录。(启动后可在启动日志中看到形如 [WebUi] Login Token is xxxx 的token信息)
在网络配置,配置koishi和http。

在 /root/napcat/config/webui.json 可以配置登录token。

参照 https://napneko.github.io/use/integration#koishi 连接到koishi。

可通过IP:8090来调用 https://napneko.github.io/develop/api#napcat-api 的API

升级版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
docker stop napcat
docker rm napcat
docker pull mlikiowa/napcat-docker:latest

docker run -d \
-e ACCOUNT="机器人BOTQQ" \
-e NAPCAT_GID=0 \
-e NAPCAT_UID=0 \
-v /root/napcat/config:/app/napcat/config \
-v /root/napcat/qq:/app/.config/QQ \
-p 8087:6099 \
-p 8089:3000 \
--name napcat \
--restart=always \
--mac-address=02:42:ac:11:00:99 \
mlikiowa/napcat-docker:latest

docker常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
列出正在运行的容器
docker ps

停止容器
docker stop 容器名

删除容器
docker rm 容器名

查看容器输出log
docker logs 容器名

进入docker容器shell
docker exec -it koishi /bin/sh

欢迎关注我的其它发布渠道