前言
如果你会使用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同样会报这个错误,建议根据日志来判断具体情况!
至此你的机器人应该就可以跑起来了,如果配置过程中遇到了某些解决不掉的问题,欢迎评论区留言!
本文链接:https://my.lmcjl.com/post/1066.html
展开阅读全文
4 评论