安装步骤
- 首先下载lingyin-bot文件,或者clone
- 更新revchatGPT,
pip3 install revChatGPT --upgrade
- 复制图中的cf_clearance的值
- 拿到user agent值,User-agent的值看这个图
- 然后在 https://github.com/chrisyy2003/lingyin-bot/blob/main/test.py#L8-L9 修改为自己的token和cf cookie值和user agent值, 并随后运行test.py文件,这是来检查你的信息能够正确的请求,如果test能跑过那么根据bot主页的说明安装后,bot就也能跑了。
跑过指的是能返回如下的有效消息:
如果遇见下面的问题
**请确保获取的cf的设备和bot是同一台设备!!!**就是你本地获取的cf就只能本地跑,本地test能过,放到服务器上是不行的,因为需要ip相同。
- test能过之后就配置bot的env.dev如下图
- 随后启动bot,启动方法请看lingyin-bot主页
前言
本文将带来快速简单在QQ群中接入ChatGPT的教程。
接入ChatGPT的安装步骤仅需三步,其中分别是:
- 安装cqhttp
- 安装nonebot框架
- 安装chatGPT插件
这里简单说一下各个部分的作用:
- go-cqhttp是基于Onebot协议的一个golang语言的实现。OneBot 是一个聊天机器人应用接口标准,旨在统一不同聊天平台上的机器人应用开发接口。实现了OneBot标准的框架有很多,go-cqhttp只是其中的一种,还有其他的框架例如:go-cqhttp,Mirai等等。它们都解析了QQ协议,使用自己的语言实现了统一的接口,所以可以直白的理解为它们是模拟的一个QQ客户端。
此外采用的协议通常是不是手机或者电脑端,所以登陆cqhttp并不会被挤下去(但是可能接受消息会收到影响)。 - 第二部分是安装框架,第一步的作用是模拟QQ客户端与QQ服务器进行交流,那么第二部分就是接受这些客户端的消息,并封装这些发送消息的API接口,便于我们在不同的编程语言中调用。nonebot则是一个使用python语言实现的机器人框架,同时基于其他语言的框架也有很多,例如TypeScript语言实现的koishi 框架等等。
最后一部分安装自定义插件,这一部分则是是我们真正需要编写的机器人的逻辑,如果需要编写插件则需要学习编程语言,但是如果只是使用别人的插件,则几行命令就可以搞定。
所以整个架构大体可以如下图所示
安装cqhttp
下载
首先安装cqhttp框架,我们从 release 界面下载最新版本的 go-cqhttp,需要根据不同的系统选择不同的文件:
这里我保存了最常用的系统(Linux,MacOS,Windows 64位)对应的文件,可以直接下载。
系统类型对应更详细的说明:
系统类型 | 可执行文件 | 压缩文件 |
---|---|---|
Intel 版 Macos | Not available | go-cqhttp_darwin_amd64.tar.gz |
M1 版 Macos | Not available | go-cqhttp_darwin_arm64.tar.gz |
32 位 Linux | Not available | go-cqhttp_linux_386.tar.gz |
64 位 Linux | Not available | go-cqhttp_linux_amd64.tar.gz |
arm64 Linux | Not available | go-cqhttp_linux_arm64.tar.gz |
armv7 Linux | Not available | go-cqhttp_linux_armv7.tar.gz |
32 位 Windows | go-cqhttp_windows_386.exe |
go-cqhttp_windows_386.zip |
64 位 Windows | go-cqhttp_windows_amd64.exe |
go-cqhttp_windows_amd64.zip |
arm64 Windows | go-cqhttp_windows_arm64.exe |
go-cqhttp_windows_arm64.zip |
armv7 Windows | go-cqhttp_windows_armv7.exe |
go-cqhttp_windows_armv7.zip |
启动
下载完成之后,在Windows下请使用自己熟悉的解压软件自行解压 ,Linux下在命令行中输入 tar -xzvf [文件名]
进行解压。
在Windows 中双击打开go-cqhttp_*.exe
,根据提示生成运行脚本,随后根据提示操作即可。
在Linux系统中,输入 ./go-cqhttp
, Enter
运行。
之后我们以Linux系统演示后面的步骤,
首次启动时,cqhttp会读取当前目录下是否有config.yml
文件如果没有则会生成一个配置文件
随后根据提示选择编号3(因为nonebot暂时只有反向socket),重新启动后如果成功会显示如下信息
配置
cqhttp启动时会读取当前目录下是否有config.yml
文件,如果有则会依赖文件中的配置,配置中包含我我们的账号信息和通讯方式。
我们需要配置的只有两个地方:
- 修改qq账号
- 修改
ws-reverse
中universal
为ws://127.0.0.1:8080/onebot/v11/ws
最后servers部分的配置如下:
安装NoneBot
第二部安装NoneBot框架,这一步建议使用python中虚拟环境进行安装,并确保python版本在3.8以上。
windows中可能不是用python3,而是直接用python,没有生成venv文件夹请看python指令是否正确。
同理pip3在windows直接是pip
使用venv创建一个虚拟环境,并使用souce加载环境
1 2 3 |
|
windows下请直接在命令行启动activate例如,并且activate所在的文件夹在windows下名字可能是script
1 2 3 4 5 |
|
如果报错请查一下相关资料,如果加载成功可以看到命令行前带有venv提示符:
随后使用pip3安装nonebot脚手架,并通过nb命令创建bot代码,通过nb run
运行bot具体可以参考nonebot文档
1 2 3 |
|
请注意!!请注意!!请注意!!
在adapter这里【使用空格】来选择OneBot V11适配器,最后选择完结果如下。
如果你配置成功你的目录应该是如下的形式
1 2 3 4 5 6 7 8 9 |
|
至此Bot已经基本配置成功,并且安装了一个最简单的内置echo插件(可选的),随后进入刚刚创建的bot文件夹,使用nb run
启动bot或者使用python3 bot来启动
1
|
|
如果启动成功,可以看到如下的日志
这里有几个部分说明:
- 第一个框,dev表示我们进入的是dev环境,读取的配置是env.dev,如果是prod请看env文件是否正确设置了环境为dev。
- 第二个框,表示读取了config了的配置,如果发现自己的指令没有触发,请检查这里是否正确读取。
- 第三个框,表示我们成功加载了那几个插件,这里我们加载了内置的echo。
- 第四个框,表示我们的nonebot和cqhttp成功链接,cqhttp的消息能够转发到nonebot啦!
随后要与机器人互动,可以首先使用/echo
命令让其输出一些信息,斜杠/
是nonebot默认的命令起始符号,可以自定义设置。
安装插件
最后一步安装我们自定的插件,使用nb直接安装
1
|
|
安装完成之后,我们需要配置一些信息,在创建机器人根目录下中.env.dev
文件中填入
1 2 3 |
|
最后文件显示如下:
启动bot使用nb run
命令,可以在输出信息中查看我们的插件是否被加载.
最后效果如下
最后,如果不需要斜杠/
来触发命令,则在.env.dev
文件中配置如下即可。
1
|
|
那么配置之后的效果则是通过chat可以直接触发
关于上文的插件更多的配置可以参考仓库链接
更多的插件请参考nonebot商店
多账号插件
12月15日更新:项目源于ChatGPT公测一周的时间内,群中500+人数导致的请求频率问题,从而需要多个Bot分担请求压力。
此项目是直接基于revChatGPT,基于逆向方式插件并不调用API接口,并且API接口也不需要多账号。
目前cloudflare的限制,revChatGPT仓库归档,存在不加代理启动成功之后,只能回复一句话的问题,所以暂时插件问题比较多,不能保证插件能用。
(不加代理并基于逆向API的应该都有这个问题)。
有兴趣的小伙伴可以加入Fabric闲聊群(然而都在玩ChatGPT)群里有配置好的机器人。
此外群中的机器人并没有使用以上提到的nonebot-plugin-chatgpt
插件,而是自己开发的一个多session_token
的chatGPT
插件,从而满足群中请求量过多导致的API限制问题,使用一下命令安装
1
|
|
随后在bot.py
中加上如下代码,加载插件
1
|
|