Lucent's Blog

当时明月在,曾照彩云归。



代码在写我

Bug在De我

螃蟹在剥我的壳

漫天的我落在雪花上

而你在想我...

6ams5piO5pyI

[ChatGPT] 使用Python对接OpenAi APi 实现智能QQ机器人(三) - 搭建QQ机器人

前两个文章我们已经解决了和ChatGPT通信的问题和QQ处理消息的问题,现在我们就需要处理如何监听QQ消息了

2022-12-14 19:56

官方接口版本发布,速度更快,接口更稳定
请查看: https://lucent.blog/?p=101

2022-12-14 13:43

  • 修改revChatGPT代码使其最新版本能够支持Linux和Windows系统运行
    点击下载
    使用教程依旧如下

2022-12-13 14:01

  • 增加一个Linux版本,可以自动获取cloudflare Cookie,如果你使用Windows版本依然不能自动获取,也可以在Windows上使用这个版本

2022-12-12 23:52

  • 增加一个Windows专用版本,只能在Windows电脑或服务器上使用,可以自动获取cloudflare Cookie

2022-12-12 12:38 更新内容

  • 增加CloudFlare配置,更新依赖,暂不支持账号密码,暂不知道CloudFlare配置多久需要更换一次,现在好像必须要翻墙了

2022-12-10 17:42 更新内容

  • 增加账号密码支持,可以不使用token,直接使用账号密码

2022-12-10 00:23 更新内容

  • 将每个QQ私聊区分,每个人私聊机器人都是一个独立的会话
  • 将每个QQ群区分,每个QQ群是一个独立的会话
  • 增加回复字数限制,超过限制转换成图片回复(见配置文件)
  • 如果想要重置会话,对机器人发送:重置会话

简介

监听QQ消息并不需要我们写代码,因为市面上已经有很多开源QQ机器人框架,在这里我们使用go-cqhttp
官方文档: go-cqhttp
如果您感兴趣的话,可以阅读一下官方文档,如果不想看,直接看我的文章即可。

前提条件

  • 您需要准备一个QQ号,不要使用自己大号
  • 您需要准备一个OpenAi的账号,用来获取Token
  • 一台服务器(可选,如果您想让机器人7x24小时在线的话,请准备一台,1核1G足以,外服最好)

注意:OpenAi(ChatGPT)的注册方式B站有一堆视频,随便参考一个就行。

搭建

获取ChatGPT接口Token

首先登录ChatGPT https://chat.openai.com/
ChatGPT首页.png
登录后按F12打开调试面板,安装图中操作,将token复制出来并保存
复制token.png

修改代码

可以使用我打包好的文件,也可以根据前两个文章自行开发,推荐使用我打包好的(Windows、Linux通用):
点击下载

下载解压后你会得到如下文件
文件夹介绍.png
首先我们修改逻辑处理端,打开py文件夹
image.png
用一个合适的编辑器打开config.json,如果没有合适的,用记事本打开也行
image.png

如果所有消息都想用图片回复,max_length可以设置为0,如果不想使用图片回复,可以设置为9999

打开后按图上的提示修改,修改后保存即可

然后修改 *QQ机器人\QBot* 文件夹下的 config.yml
配置文件1.png
配置文件2.png

启动服务

启动逻辑处理端

打开文件夹: QQ机器人\py
Windows系统双击 python-3.11.1-amd64.exe 安装Python环境
已经有Python环境的不用安装
py安装.png

Linux系统请根据系统自行安装
环境安装完成之后,双击 安装依赖.bat 安装依赖
Linux系统请使用如下命令安装:

pip3 install -r requirements.txt

依赖安装完成后,双击 windows启动.bat 启动逻辑处理端
Linux系统使用如下命令启动:

# 前台运行
py chat-gpt-qbot.py
# 后台运行
nohup py chat-gpt-qbot.py &

启动后如下图所示
启动py2.png
此时我们可以用浏览器访问 127.0.0.1:7777 可以看到如下图所示
image.png

启动监听端

打开文件夹 QQ机器人\QBot
Windows 双击 go-cqhttp.bat 即可启动
注意此时需要输入 2 并回车,选择扫码验证登录
启动cq1.png
扫码后即可登录成功
启动cq2.png

注意:如果你打算部署到Linux服务器(不管什么系统的云服务器)上,你依然需要完成上述步骤,即在电脑上登录一次,然后将QBot文件夹里生成的文件上传到你的服务器上再完成启动流程(防止QQ风控)

如果你看到下面这种提示,忽略就行不用管
image.png

Linux启动需要使用如下命令:

# 前台运行命令
./go-cqhttp
# 后台运行命令
nohup ./go-cqhttp > logs/`date -d yesterday +%Y%m%d`.log 2>&1 &

测试

私聊测试

机器人回答.png

拉群测试

拉群测试2.png

到此,您就拥有了一个接入了ChatGPT的QQ机器人
如果您有不懂的地方,欢迎加群讨论: 206867743

上一篇

[ChatGPT] 为什么机器人对接Api之后回答速度没有官网网页上速度快?

很多人搭建好QQ机器人后跟我反馈,说比官网速度要慢,是不是网络原因?下面我给出我的观点QQ机器人比ChatGPT官网上给人的感觉是回复慢,这是事实,原因有以下几点:国内网络原因,连接官方接口速度确实慢最近ChatGPT爆火,用户快速增加,官方接口压力倍增,相对于刚刚开放时速度也确实慢了官网使用流的方…

阅读
下一篇

[ChatGPT] 使用Python对接OpenAi APi 实现智能QQ机器人(二)

上个文章我们实现了一个接口,用代码成功获取到了ChatGPT的对话内容,下面我们将继续完善QQ机器人相关逻辑,注意看代码中的注释chat-gpt-qbot.pyimport flaskimport jsonimport requestsfrom flask import requestfrom re…

阅读