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_TIME60冷却时间,单位:秒
CHATGPT_PROXIESNone代理地址,格式为: http://ip:port
CHATGPT_REFRESH_INTERVAL30session_token 自动刷新间隔,单位:分钟
CHATGPT_COMMAND空字符串触发聊天的命令,可以是 字符串 或者 字符串列表。如果为空字符串或者空列表,则默认响应全部消息
CHATGPT_TO_METrue是否需要@机器人
CHATGPT_TIMEOUT30请求服务器的超时时间,单位:秒
CHATGPT_APIhttps://chat.openai.com/API 地址,可配置反代
CHATGPT_IMAGEFalse是否以图片形式发送。如果无法显示文字,请点击此处查看解决办法
CHATGPT_IMAGE_WIDTH500消息图片宽度,单位:像素
CHATGPT_PRIORITY999事件响应器优先级
CHATGPT_BLOCKTrue是否阻断消息传播
CHATGPT_PRIVATETrue是否允许私聊使用
CHATGPT_SCOPEprivate设置公共会话或私有会话private:私有会话,群内成员会话各自独立public:公共对话,群内成员共用同一会话
CHATGPT_DATA插件目录下插件数据保存目录的路径
CHATGPT_MAX_ROLLBACK5设置最多支持回滚多少会话
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同样会报这个错误,建议根据日志来判断具体情况!


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

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Maven插件是一种可插拔的工具,可以在Maven构建过程中执行特定的任务。其中,maven-dependency-plugin和maven-surefire-plugin是两个常用的插件。 maven-dependency-plugin插件可以用来管理项目依赖,可以帮助我们列出项目中的依赖关系,复制依赖文件到指定目录,解压依赖文件等。常用的配置包括: - list:列出项目依赖 - copy-dependencies:将所有依赖文件复制到指定目录 - unpack:解压指定的依赖文件 maven-surefire-plugin插件则是用来执行项目的单元测试的。它可以在Maven构建过程中自动执行单元测试,并生成测试报告。常用的配置包括: - includes/excludes:指定要执行的测试类或排除的测试类 - parallel:指定测试是否并行执行 - reportsDirectory:指定测试报告生成的目录 在POM文件中配置这两个插件,可以通过以下方式: ``` <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> <configuration> <includes> <include>**/*Test.java</include> </includes> <parallel>methods</parallel> <threadCount>10</threadCount> <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory> </configuration> </plugin> </plugins> </build> ``` 以上是一个简单的POM文件中Maven插件配置maven-dependency-plugin和maven-surefire-plugin的示例,其中maven-dependency-plugin在package阶段执行复制依赖文件的任务,maven-surefire-plugin在test阶段执行单元测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷尔。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值