用 chatgpt-mirai-qq-bot 加 go-cqhttp,部署一个能对话的 QQ 机器人

把 ChatGPT 接到 QQ 上,让机器人能在群聊和私聊里回答问题。思路是两个组件配合:Python 项目 chatgpt-mirai-qq-bot 负责对接 OpenAI 接口和消息逻辑,go-cqhttp 负责 QQ 协议的登录与收发。项目地址:https://github.com/lss233/chatgpt-mirai-qq-bot,支持 ChatGPT、文心一言、Bing、Bard、ChatGLM、POE 多个后端,多账号、人设调教、图片渲染、语音发送都能配,平台侧覆盖 QQ、Telegram、Discord。

准备工作

  1. 注册 OpenAI 账号(https://beta.openai.com/signup),在账户页申请 API KEY;
  2. 一台服务器,或者本地 Windows 也行;
  3. 运行环境要能稳定访问 OpenAI 接口,IP 不能是被官方限制过的;
  4. 安装 Python,版本 3.11 以上,且必须启用了 SSL 模块,否则项目起不来。CentOS 7 默认 GCC 版本太低,需要升级 GCC,或者直接换 CentOS 8;
  5. 准备一个 QQ 号做机器人,建议新注册或不常用的号。

部署 chatgpt-mirai-qq-bot

拉代码、装依赖、从示例配置生成自己的配置文件再编辑:

mkdir -p /data/
cd /data/

git clone https://github.com/lss233/chatgpt-mirai-qq-bot
cd chatgpt-mirai-qq-bot
pip3 install -r requirements.txt

# 注意:下面的配置作为参考 
cp config.example.cfg config.cfg 
vim config.cfg

# 这里是 ChatGPT for QQ 的所有配置文件
# 请注意:以 "#" 开头的文本均为注释
# 不会被程序读取
# 如果你想要使用某个设置,请确保前面没有 "#" 号

[onebot]
qq=请修改为你机器人的QQ号
manager_qq = 请修改为机器人管理员的QQ号

reverse_ws_host = "0.0.0.0"
# 此处设置应该与 go-cqhttp 中的端口号一致
reverse_ws_port = 8566

[openai]
[[openai.accounts]]
#access_token = "xxx"
# 这里填写你在 OpenAI 官网获取的 API Key
api_key = "sk-xxxx"
# 国内用户可能需要配置代理
# proxy="http://127.0.0.1:7890"

[presets]
# 切换预设的命令: 加载预设 猫娘
command = "加载预设 (\w+)"

[presets.keywords]
# 预设关键词 <-> 实际文件
"聊天" = "presets/issue402.txt"
"猫娘" = "presets/catgirl.txt"

部署 go-cqhttp

下载解压:

mkdir -p /data/go-cqhttp
cd /data/go-cqhttp
wget https://github.com/Mrs4s/go-cqhttp/relerele/download/v1.0.0/go-cqhttp_linux_amd64.tar.gz
tar -xf go-cqhttp_linux_amd64.tar.gz

启动生成配置:

./go-cqhttp

首次运行选 3 回车即可生成 config.yaml,然后编辑其中的 websocket 地址,指向 bot 项目监听的端口(要和 chatgpt-mirai-qq-bot 配置里的 reverse_ws_port = 8566 对得上):

vim config.yml
... 
universal: ws://localhost:8566/ws
qqbot_chatgpt01
qqbot_chatgpt02

再次启动,这次仍然不登录,只为拿到 device.json,然后 Ctrl+C 退出:

./go-cqhttp  #然后ctrl + c结束
vim device.json

把 device.json 里的 protocol 字段改成 3,让 go-cqhttp 走 Mac QQ 协议登录,默认值 6 会登不上。

qqbot_chatgpt03

登录与测试

手机端验证授权要求机器人和手机 QQ 处在同一网络环境,条件不好满足,建议直接用 QQ 密码方式登录。配置改完后正式启动:

./go-cqhttp
qqbot_chatgpt04

登录成功后,把机器人拉进群聊或直接私聊,按计划好的命令格式发消息即可对话。

qqbot_chatgpt05
qqbot_chatgpt06
chatgpt_qbot05

踩坑记录

几个容易卡住的地方:protocol 不改 3 一直登录失败;两边端口没对齐,bot 项目连不上 go-cqhttp 的逆向 websocket;Python 缺 SSL 模块直接启动报错;用新号当天频繁收发容易被风控,先小规模测试。配置文件里带 # 的行都是注释,取消注释才算启用。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容