原项目地址:
https://github.com/RockChinQ/QChatGPT
过程视频链接:
【open AI GPT 结合QQ机器人服务器部署docker实现】 https://www.bilibili.com/video/BV1Fs4y1e7zc/?share_source=copy_web&vd_source=358d2c0ee887bac52ac329814c2473f0
若未安装可参考:
CURL不是默认安装的工具,需手动下载,过程分为以下几步:
1.更新软件库
sudo apt-get update
2.安装curl
sudo apt install curl
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
1.不推荐git路径的下载,太慢了,可参考下列路径
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2.添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
git clone https://github.com/mikumifa/QChatGPT-Docker-Installer
cd QChatGPT-Docker-Installer
linux系统可以直接使用loadFile.sh (已安装 git 和 wget)
chmod +x loadFile.sh && ./loadFile.sh
可能会出现一个unzip什么什么的报错,安装即可:
sudo apt install unzip
最终效果如下,bot目录内是当前的RockChinQ/QChatGPT
项目里面的内容,mirai目录内是ITXTech
下载后解压到mirai里面
.
├── bot
│ ├── config-template.py
│ ├── LICENSE
│ ├── main.py
│ ├── pkg
│ ├── README.md
│ ├── requirements.txt
│ ├── res
│ ├── sensitive.json
│ └── tests
├── docker-compose.yaml
├── loadFile.sh
├── mirai
│ ├── LICENSE
│ ├── mcl
│ ├── mcl.cmd
│ ├── mcl.jar
│ └── README.md
├── _mirai.Dockerfile
└── _setup.Dockerfile
docker compose run --rm mirai
login <机器人QQ号> <机器人QQ密码>
有时候登陆账号还需要滑动验证码。这种情况可以使用 TxCaptchaHelper 处理。
在手机上安装 TxCaptchaHelper,打开后输入 mirai 给出的请求码,完成滑动验证即可。
成功通过设备锁验证之后,在 bots/QQ号 文件夹中可以找到 device.json 文件,这个文件保存了此次登录的虚拟设备信息。
你可以备份这个文件,以后在其他地方使用 mirai 登录这个账号时,可以用备份的文件覆盖 device.json,这样可以避免设备锁验证。
当机器人账号登录成功以后,执行
autologin add <机器人QQ号> <机器人密码>
autologin setConfig <机器人QQ号> protocol ANDROID_PAD
出现mirai登录时提示版本过低:当前QQ版本过低,请升级至最新版本后再登录。点击进入下载页面报错时候删除mirai/bots文件夹里面的数据,见此issue(https://github.com/RockChinQ/QChatGPT/issues/38)
在bot目录下创建config.py
,将config-template.py
的内容复制进去,编辑config.py
的修改必需项
在 mirai/config/net.mamoe.mirai-api-http
文件夹中找到setting.yml
,这是mirai-api-http的配置文件
将这个文件的内容修改为:
adapters:
- ws
debug: true
enableVerify: true
verifyKey: yirimirai
singleMode: false
cacheSize: 4096
adapterSettings:
ws:
host: localhost
port: 8080
reservedSyncId: -1
verifyKey要求与bot的config.py中的verifyKey相同
docker compose run -itd mirai
此命令将在后台启动mirai容器
docker compose run -itd setup
此命令将在后台启动主程序的容器并完成配置
查看容器进程
docker ps
在输出中查看容器的ID,例如:
root@docker-test:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f633b8c1051c qchatgpt-docker-installer-setup “/bin/sh -c 'python …” About a minute ago Up About a minute qchatgpt-docker-installer_setup_run_998f5335ab18
227e44d7d5a2 qchatgpt-docker-installer-mirai “/bin/sh -c 'java -j…” 2 minutes ago Up 2 minutes qchatgpt-docker-installer_mirai_run_c6c8f60da3aa
若要切换到主程序控制台,请查看IMAGE名为qchatgpt-docker-installer-setup的容器的CONTAINER ID,在这里是f633b8c1051c,于是使用以下命令将其切到前台:
docker attach f633b
这是便可以看到主程序的控制台,查看mirai控制台同理
如需将其切到后台运行,请使用组合键Ctrl+P+Q
root@docker-test:~# docker attach f633b
[2022-12-18 07:00:27.247] manager.py (173) - [INFO] : [person_1010553892]发送消息:2
[2022-12-18 07:00:27.248] util.py (67) - [INFO] : message=‘Request to OpenAI API’ method=post path=https://api.openai.com/v1/completions
[2022-12-18 07:00:29.629] util.py (67) - [INFO] : message=‘OpenAI API response’ path=https://api.openai.com/v1/completions processing_ms=872 request_id=6d9f172ce9c1b3f315aa59dc09333836 response_code=200
[2022-12-18 07:00:29.631] manager.py (195) - [INFO] : 回复[person_1010553892]消息:我不明白你的意思。输入!help获取帮助
read escape sequence
root@docker-test:~#