本文正在参与技术视角深入 ChatGPT 征文活动

一、cqhttp

1. 下载cqhttp

首要装置 cqhttp 结构,咱们从 release 界面下载最新版本的 go-cqhttp,需求依据不同的系统挑选不同的文件 我现在是mac系统,暂时仅举例macOs Intel 版 Macos: go-cqhttp_darwin_amd64.tar.gz

2. 发动

解压下载的压缩包 将文件放入你项目的文件夹里 进入你的项目文件夹 以vscode中进行项目运转与管理举例

快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]
command + j 翻开终端(反正只需在这个文件夹中翻开终端就行) 运转指令 ./go-cqhttp 初次发动时,cqhttp会读取当时目录下是否有config.yml文件如果没有则会生成一个装备文件。 随后依据提示挑选编号3(因为nonebot暂时只有反向socket),从头发动后如果成功会显示如下信息:
快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]
在这个文件夹中,多了一个config.yml的装备文件。 修正两个地方:

  1. QQ账号(在装备文件第4-5行)榜首个是qq号,第二是暗码,不填能够用扫二维码登录
account: # 账号相关
  uin: 1233456 # QQ账号
  password: '' # 暗码为空时运用扫码登录
  1. 反向 websocket 服务器地址(第99行)修正为如下所示
- ws-reverse:
      # 反向WS Universal 地址
      # 留意 设置了此项地址后下面两项将会被忽略
      universal: ws://127.0.0.1:8080/onebot/v11/ws

装备好后记住保存,再次运转指令 ./go-cqhttp 在vscode的终端控制台会有log信息,并弹出二维码,用刚刚装备文件中的qq账号扫码登录,即可看到下面的信息。而且会在文件夹里生成 session.token 的文件,便是你登录状态的token,下次运转时不再需求登录。

快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]
至此 cqhttp 部分结束。

二、NoneBot

1. 装置

保证python版本在3.8以上,我这儿用的是现在最新的python3.11。

在当时项目根目录下,运用venv创立一个虚拟环境,并运用souce加载环境

# 检查版本
python3 --version 
python3 -m venv venv
source venv/bin/activate

会看到指令行前面有个venv标识,即成功

快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]
随后运用pip3装置nonebot脚手架,并经过nb指令创立bot代码,经过nb run运转bot pip装置速度慢,记住换国内源

pip3 install nb-cli
pip3 install nonebot-adapter-onebot # 装置适配器
nb # 创立项目与bot文件

快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]

快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]
第3项和第4项的挑选,能够看到前面是空心的,记住按空格选中某一项再按回车 现在的目录结构如下
快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]
bot为刚刚nb指令创立的项目 至此Bot现已根本装备成功,而且装置了一个最简单的内置echo插件(可选的),随后运转指令cd bot进入刚刚创立的bot文件夹。

2. 发动

运用nb run发动bot或者运用python3 bot来发动

2.1 或许会遇到的问题

在这时,或许会遇到报错 fastapi.exceptions.FastAPIError: Invalid args for response field! Hint: check that <class 'starlette.responses.Response'> is a valid pydantic field type 经过询问NoneBot的频道,问到是fastapi的版本问题。 运用指令pip3 list 能够看到 fastapi 的版本是0.89.0 运用 pip3 install fastapi==0.88.0 对该依靠进行降级。 从头运转 nb run 指令即可看到运转成功了

快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]
这时候能够正常测验机器人的功用了。

不要封闭这个终端,翻开一个新的终端,保证其运转目录为项目根目录而不是其间的文件夹 bot 运转 ./go-cqhttp 能够看到提示已连接到反向WebSocket Universal服务器

快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]
回到刚刚的终端亦可看到nonebot也提示[INFO] logging | connection open
快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]

三、chatGPT插件

1. 装置

装置之前先封闭上一步发动的机器人 在bot文件夹中履行指令,装置chatGPT插件

nb plugin install nonebot-plugin-chatgpt

因为咱们运用的是DEV环境,在bot文件夹下文件.env.dev中增加三项插件装备

CHATGPT_SESSION_TOKEN="XXX"             # token信息
CHATGPT_COMMAND="你好AI谈天机器人"       	# 触发谈天的指令
CHATGPT_TO_ME="False"                   # 是否需求@机器人

因为onebot默许是运用 / 最初作为指令的,如果你不想增加这一个难看的斜杆,能够持续在装备文件中增加如下装备

command_start=[""]

记住保存

2. 发动

运用指令 nb run 发动机器人 并保证榜首部分的go-http是开启状态

在qq中经过好友发送音讯,即可获得答复。

快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]

2.1 或许会遇到的问题

发动时并不会报错,但在发送音讯后等候机器人响应时或许会有如下错误。 提示报错最终带有这样的信息 AttributeError: 'NoneType' object has no attribute 'new_page'

这个问题能够在错误信息中找到答案,有一个叫 playwright 的结构提示你是否仅仅下载了但没有装置。这是chatGPT加了防止机器人限制之后的一种处理方法,是经过 playwright 浏览器测验结构,翻开一个浏览器窗口(实践在后台翻开没有实践窗口),模仿经过浏览器页面来达到调用API的作用。大佬们真的都很牛。

这儿咱们只需求履行装置即可 运转指令 playwright install 等候即可。装置好后,再次运转指令 nb run 即可享用chatGPT的AI对话啦。

参考文章

本文参考自大佬文章:5分钟在QQ群建立ChatGPT机器人! 但依照上述文章进行装置时遇到了几个问题,经过自己尽力处理后分享出来,如果能帮到遇到相同问题的朋友就很高兴了