Nonebot2官网插件nonebot-plugin-chatgpt让自己的QQ聊天机器人不再呆头呆脑

前言

如果你会使用Nonebot2搭建QQ聊天机器人,那么你一定会使用Nonebot官网上插件商店发布的插件,今天这篇博客记录一下使用插件时遇到的错误,最终如何解决的错误。在开始之前先看一下效果图吧!
在这里插入图片描述
在这里插入图片描述
瞬间我们的QQ机器人就高大上了起来,甚至你可能都骂不过他!

配置

废话就不多,直接上教程!
在这里插入图片描述

前置条件:

  • Nonebot2环境搭建完毕
  • Go-cqhttp运行正常
  • QQ账号正常

安装插件:
先进入机器人所在目录,也就是有pyproject.toml文件的目录。
然后执行下面命令:

nb plugin install nonebot-plugin-chatgpt

等待安装完毕即可!
安装完毕之后,启动机器人之前还需要配置OpenAI相关信息(也就是对你的机器人进行定制)。

在 nonebot2 项目的 .env 文件中添加下表中的必填配置(在 ARM 平台,可能必须使用 CHATGPT_SESSION_TOKEN 登录)
⚠️ Windows 系统下需要在 .env.dev 文件中设置 FASTAPI_RELOAD=false

配置项 必填 默认值 说明
CHATGPT_SESSION_TOKEN 空字符串 ChatGPT 的 session_token,如配置则优先使用
CHATGPT_ACCOUNT 空字符串 ChatGPT 登陆邮箱,未配置则使用 session_token
CHATGPT_PASSWORD 空字符串 ChatGPT 登陆密码,未配置则使用 session_token
CHATGPT_CD_TIME 60 冷却时间,单位:秒
CHATGPT_PROXIES None 代理地址,格式为: http://ip:port
CHATGPT_REFRESH_INTERVAL 30 session_token 自动刷新间隔,单位:分钟
CHATGPT_COMMAND 空字符串 触发聊天的命令,可以是 字符串 或者 字符串列表。如果为空字符串或者空列表,则默认响应全部消息
CHATGPT_TO_ME True 是否需要@机器人
CHATGPT_TIMEOUT 30 请求服务器的超时时间,单位:秒
CHATGPT_API https://chat.openai.com/ API 地址,可配置反代
CHATGPT_IMAGE False 是否以图片形式发送。如果无法显示文字,请点击此处查看解决办法
CHATGPT_IMAGE_WIDTH 500 消息图片宽度,单位:像素
CHATGPT_PRIORITY 999 事件响应器优先级
CHATGPT_BLOCK True 是否阻断消息传播
CHATGPT_PRIVATE True 是否允许私聊使用
CHATGPT_SCOPE private 设置公共会话或私有会话private:私有会话,群内成员会话各自独立public:公共对话,群内成员共用同一会话
CHATGPT_DATA 插件目录下 插件数据保存目录的路径
CHATGPT_MAX_ROLLBACK 5 设置最多支持回滚多少会话
CHATGPT_DETAILED_ERROR 是否允许输出详细错误信息

一般来说在配置文件中配置上CHATGPT_SESSION_TOKEN、CHATGPT_PRIVATE即可
如何获取 session_token?

  • 登录 https://chat.openai.com/chat,并点掉所有弹窗
  • 按 F12 打开控制台
  • 切换到 Application/应用 选项卡,找到 Cookies
  • 复制 __Secure-next-auth.session-token 的值,配置到 CHATGPT_SESSION_TOKEN 即可

在这里插入图片描述

到这插件配置工作已经大部分完成,可以先尝试一下能不能启动,不能启动的话看看下面几种报错能不能解决你的问题!

报错解决

  • asyncio抛出NotImplementedError
Task exception was never retrieved
future: <Task finished name='Task-3' coro=<Connection.run() done, defined at C:***\Python310\lib\site-packages\playwright_impl_connection.py:240> exception=NotImplementedError()>
Traceback (most recent call last):

这种情况需要在你的env文件中配置以下选项:

fastapi_reload=false
  • 错误信息: AttributeError: ‘NoneType’ object has no attribute ‘new_page’

这种错误可以尝试使用以下命令进行解决:

playwright install

但是如果是缺少GLIBC_2.18同样会报这个错误,建议根据日志来判断具体情况!


在这里插入图片描述
至此你的机器人应该就可以跑起来了,如果配置过程中遇到了某些解决不掉的问题,欢迎评论区留言!

猜你喜欢

转载自blog.csdn.net/apple_51931783/article/details/129109971