Vsxbamboo
Vsxbamboo
ISSUE与#1268相同,试试替换成github上另一位的api。地址为[https://github.com/XiaoXinYo/Easy-Ernie/blob/main/src/easy_ernie/ernie.py](https://github.com/XiaoXinYo/Easy-Ernie/blob/main/src/easy_ernie/ernie.py)的第31行。
对了,记得文心一言的请求方式好像也有些问题,所以哪怕换了api好像也不能用,要重写一下部分代码。开发者是不是好久没更新了。
实现这个功能需要的技术难度是不是大了一点?例如,判断什么样的缓存算是不太重要的。
我使用的文心一言的接入方式,发现这个项目用来计算文心一言arc的网页服务[https://chatgpt-proxy.lss233.com/yiyan-api/acs](https://chatgpt-proxy.lss233.com/yiyan-api/acs)应该挂了。根据报错信息,在adapter/baidu/yiyan.py的192行返回处,req就变成了502.
报错如下(有重复报错): ``` 2023-12-14 00:34:41.665 | DEBUG | platforms.onebot_bot:_:148 - 私聊消息:ask 你好 2023-12-14 00:34:42.276 | DEBUG | middlewares.concurrentlock:handle_request:40 - [Concurrent] 排队中,前面还有 0 个人! 2023-12-14 00:34:42.361 | DEBUG | middlewares.concurrentlock:handle_request:42 - [Concurrent]...
在github上找到了文心一言的网页版api封装,或可作为替代,但原作者的代码已经不能使用,我简单写了一个基于node.js的demo(有些杂乱,见谅,仅作为演示),现在是可以使用的,可以稍作修改。 ```javascript import puppeteer, {KnownDevices} from 'puppeteer' import sleep from 'then-sleep' const cookie='' const prompt='在所有对我的回答的末尾加上一个#,包括对这个问题的回答。' const {texts}=await headless({ cookie, prompt }) console.log(texts) async function headless({ cookie, timeout = 1000 *...
~可以转而使用Python的pyppeter转写一下。~ 事实证明,如果pyppeteer没有绕过webDriver的检测的话,就不行。
在github上找到了可能是本项目文心一言的参考项目[https://github.com/XiaoXinYo/Easy-Ernie](https://github.com/XiaoXinYo/Easy-Ernie),因此,一种修改方法可能是借用那个项目的api。此时,那个项目的api仍然可用。据说说文心一言的acs-token计算参数经常改变。而且,根据项目用于提示更新api的issue猜测,此方法(指计算acs-token)访问次数多后会出现访问限制。
尝试通过替换yiyan.py中的api后发现其中使用的请求方式应该已经过期,文心一言可能使用了新的/conversation/v2进行某种三合一的请求方式,即仅仅修改成前述库的api获取acs-token后也不能正常使用。 ``` File "C:\Users\Administrator\Desktop\Windows-quickstart-go-cqhttp-refs.tags.v2.5.3\chatgpt-mirai-qq-bot\adapter\baidu\yiyan.py", line 158, in ask self.__check_response(req.json()) │ │ └ │ └ └ File "C:\Users\Administrator\Desktop\Windows-quickstart-go-cqhttp-refs.tags.v2.5.3\chatgpt-mirai-qq-bot\adapter\baidu\yiyan.py", line 190, in __check_response raise Exception(resp['msg']) └ {'code': 9000002, 'msg': '三合一接口异常', 'data': {'createChatResponseVoCommonResult':...
md5.c : 208 char *input_buffer = malloc(1024); Here "malloc" is used, which needs "stdlib.h".