顺利走通,大概了解了nonebot和gocqhttp之后。
尝试先调通nonebot里的chatGPT插件。是有的。
尝试了这个,人最多,教程也写的清晰的GitHub - A-kirami/nonebot-plugin-chatgpt
按照readme教程走。直接核心直接bug 往下翻。
windows10
2023年4月16日
nonebot_plugin_chatGPT版本……有人pr了#134
======
有一些问题,
- nb install 日常出问题。用pip可以绕过
- 关于 配置,比如session_token 填在哪里,我在env,env.dev,还有sitepackages下面的这nonebot-plugin-chatgpt的congfig里面都填过。实际上好像是都可以。而且表现为,env或env.dev里的可以覆盖掉 package里config里的,也符合逻辑。
- 关于把下面这个填入bot.py。不同的nb机器人的组织方式,出现的bot.py不一样。
nonebot.load_plugin('nonebot_plugin_chatgpt')
- 插件放src方式中的bot.py有main函数的,看起来像是可以加进去的。
- 插件放机器人文件夹里的,有四个bot.py(是adapter和其他什么)。内容都是定义的一堆函数和类(如图)。//对nonebot的了解不足
- 可以用nb plugin的方式去加入。似乎这样并不需要去nonebot.load_plugin
- 没试过nb-cli方式。
- playwright遇到了一点问题,但是命令行自动提示了。解决了,是playwright install,应该是nb或插件开发者留的命令match。
- 中间还有,下载来一个chromium的什么东西,大概是支持的,70多mb还挺大。
- 我们对这个插件的原理还不够了解。对于session_token ,对于整个过程,大原理,然后细分机理,不够了解。
- 关于这个插件的原理,大概猜想理解是从网页上利用token去登录,然后去类似模拟输入信息,发送,然后把GPT的回答再获取到(一个网页元素),然后传回来。playwright是个自动化测试的,好像really play a role in this。
- 我们对于token 验真 以及网页元素的爬取和操作 都理解还比较浅薄。
- 对于点掉所有弹窗,不确定正确理解了
- 我遇到的问题表现为两个
- 一 回复超时
- 具体表现为
- 开始(获取cf cookies这一步也有一点慢)
- 到时间后的完整保存(我设置的120s)
- 其中打开https://chat.openai.com/backend-api/conversation得到
{"detail":"Method Not Allowed"}(有猜想就是openai那边禁止了对这种方式访问回答的那个元素)
- 也出现这个(等下有个大佬会在这里动刀)
-
locator("button[class=\"absolute p-1 rounded-md text-gray-500 bottom-1.5 right-1 md:bottom-2.5 md:right-2 hover:bg-gray-100 dark:hover:text-gray-400 dark:hover:bg-gray-900 disabled:hover:bg-transparent dark:disabled:hover:bg-transparent\"]")
-
- 其中打开https://chat.openai.com/backend-api/conversation得到
-
二 ChatGPT 目前无法回复您的问题。可能的原因是同时提问过多,问题过于复杂等。
-
出现条件有点模糊。有可能意外地出现
-
在按照下列改动后,如果似乎更容易出现。[BUG]: ChatGPT超时,无响应,TimeoutError【附解决方法】 · Issue #137 · A-kirami/nonebot-plugin-chatgpt · GitHub
-
- 具体表现为
- 一 回复超时
- 参照下列,进行改动。//有新发现。暂时不写了。先实践。[BUG]: ChatGPT超时,无响应,TimeoutError【附解决方法】 · Issue #137 · A-kirami/nonebot-plugin-chatgpt · GitHub
- 结果。还是超时
- 不过,随着改动那几个button.click button.locator大概理解了整个过程。
- 就是自动化操作网页元素。一步步的,和鼠标点一样(比鼠标更强doge)
- 但是具体写起来,还是不懂。
- playwright,改了headless还是弹不出来,我不知道卡在那里。
- 就是自动化操作网页元素。一步步的,和鼠标点一样(比鼠标更强doge)
- 在写本文时候的发现
- 虚拟环境下的包好像通过pip uninstall之类,是没有卸载本地文件的。大概只是从某个列表里删除了。
- 所以你改了文件的话,要么手动卸载重装。要么还是手动改回来。
- 写作可以让人慢下来,冷静下来。也让思路凝固。
- 其中“慢下来”和“思路凝固”都有利有弊。
- 调试的过程真的还挺有收获的,慢下来,安安静静看代码和报错。可以慢慢看明白好多,逐渐了解创作者的思路想法和 结合上原理。
- 虚拟环境下的包好像通过pip uninstall之类,是没有卸载本地文件的。大概只是从某个列表里删除了。