Nonebot2官网插件nonebot-plugin-chatgpt让自己的QQ聊天机器人不再呆头呆脑
2023-09-27 14:20:14 时间
前言
如果你会使用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同样会报这个错误,建议根据日志来判断具体情况!
至此你的机器人应该就可以跑起来了,如果配置过程中遇到了某些解决不掉的问题,欢迎评论区留言!
相关文章
- F10 workerman 长连接下聊天页面之QQ表情发送
- Vue - 判断终端是否为:IE内核、opera内核、苹果、谷歌内核、火狐内核、是否为移动终端、ios终端、android终端、是否为iPhone或者QQHD浏览器、是否iPad、是否微信、是否QQ
- pyqt win32发送QQ消息
- 再造 “手机QQ” 侧滑菜单(三)——视图联动
- Android仿QQ微信开场导航以及登陆界面
- 仿QQ空间和微信朋友圈,高解耦高复用高灵活
- 看好腾讯,鄙视百度(腾讯的核心竞争力,不是超过10亿的QQ的注册用户,也不是某一项产品、技术方面优势,而是“耐心”:懂得在合适的时间推出合适的产品。”)
- Linux_屏蔽360、scanv、QQ管家等IP扫描
- POP3_收取QQ邮箱邮件的问题
- 【历史上的今天】2 月 10 日:QQ 诞生;IBM 电脑击败人类象棋冠军;谷歌光纤发布
- 2、IOS开发--iPad之仿制QQ空间 (初始化HomeViewController子控件视图)
- Python开源爬虫项目代码:抓取淘宝、京东、QQ、知网数据--转
- 小程序来了,不断臃肿的微信会沦为下一个QQ吗?