zhayujie / chatgpt-on-wechat

基于大模型搭建的聊天机器人,同时支持 微信公众号、企业微信应用、飞书、钉钉 等接入,可选择GPT3.5/GPT-4o/GPT4.0/ Claude/文心一言/讯飞星火/通义千问/ Gemini/GLM-4/Claude/Kimi/LinkAI,能处理文本、语音和图片,访问操作系统和互联网,支持基于自有知识库进行定制企业智能客服。
https://docs.link-ai.tech/cow
MIT License
28.06k stars 7.47k forks source link

baidu 免费模型的问题 #2024

Closed taozhiyuai closed 1 month ago

taozhiyuai commented 1 month ago

前置确认

⚠️ 搜索issues中是否已存在类似问题

操作系统类型?

MacOS

运行的python版本是?

other

使用的chatgpt-on-wechat版本是?

Latest Release

运行的channel类型是?

wx(个人微信, itchat)

复现步骤 🕹

python=3.11.8

1.如果在config.json使用百度的KEY ` "baidu_wenxin_model": "ERNIE-Speed-128K",

"baidu_wenxin_api_key": "VJlSL7Zlk44pZQPXY9",

"baidu_wenxin_secret_key": "I0ePWhcLNrqcafLGXF3eye4",

"channel_type": "wx",

"model": "wenxin-4",`

错误信息是 Start auto replying. [INFO][2024-05-27 23:12:38][bridge.py:61] - create bot baidu for chat [INFO][2024-05-27 23:12:38][baidu_wenxin.py:28] - [BAIDU] query=你好 [INFO][2024-05-27 23:12:38][baidu_wenxin.py:66] - [BAIDU] model=completions_pro [INFO][2024-05-27 23:12:38][baidu_wenxin.py:82] - [BAIDU] response text={'error_code': 17, 'error_msg': 'Open api daily request limit reached'} [WARNING][2024-05-27 23:12:38][baidu_wenxin.py:94] - [BAIDU] Exception: 'result' [INFO][2024-05-27 23:12:39][wechat_channel.py:217] - [WX] sendMsg=Reply(type=ERROR, content=[ERROR] 出错了: 'result'), receiver=@9619b0c33c59af8545d96286774f8f7302934a83edd6b82f7cd0c7a02f285caa ^C[INFO][2024-05-27 23:12:57][app.py:19] - signal 2 received, exiting... [INFO][2024-05-27 23:12:57][config.py:219] - [Config] User datas saved. Bye~ ^C[INFO][2024-05-27 23:12:57][app.py:19] - signal 2 received, exiting... [INFO][2024-05-27 23:12:57][config.py:219] - [Config] User datas saved. Traceback (most recent call last): File "/Users/taozhiyu/Downloads/chatgpt-on-wechat/app.py", line 71, in <module> run() File "/Users/taozhiyu/Downloads/chatgpt-on-wechat/app.py", line 64, in run time.sleep(1) File "/Users/taozhiyu/Downloads/chatgpt-on-wechat/app.py", line 22, in func return old_handler(_signo, _stack_frame) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2.如果通过ONEAPI接入同样的百度免费模型.可以运行.但是出现下面的警告信息.

Start auto replying. [INFO][2024-05-27 23:13:46][bridge.py:61] - create bot chatGPT for chat [INFO][2024-05-27 23:13:46][chat_gpt_bot.py:49] - [CHATGPT] query=你好 [WARNING][2024-05-27 23:15:11][chat_gpt_session.py:86] - num_tokens_from_messages() is not implemented for model ERNIE-Speed-128K. Returning num tokens assuming gpt-3.5-turbo. [WARNING][2024-05-27 23:15:12][chat_gpt_session.py:86] - num_tokens_from_messages() is not implemented for model ERNIE-Speed-128K. Returning num tokens assuming gpt-3.5-turbo. [INFO][2024-05-27 23:15:13][wechat_channel.py:214] - [WX] sendMsg=Reply(type=TEXT, content=[bot] 你好!有什么我可以帮助你的吗?我会尽力为你提供准确和有用的回答。), receiver=@f155d6aa1857b29ab66309d10d6480c8 [INFO][2024-05-27 23:15:48][chat_gpt_bot.py:49] - [CHATGPT] query=赞美我 [WARNING][2024-05-27 23:15:48][chat_gpt_session.py:86] - num_tokens_from_messages() is not implemented for model ERNIE-Speed-128K. Returning num tokens assuming gpt-3.5-turbo. [WARNING][2024-05-27 23:15:54][chat_gpt_session.py:86] - num_tokens_from_messages() is not implemented for model ERNIE-Speed-128K. Returning num tokens assuming gpt-3.5-turbo. [INFO][2024-05-27 23:15:55][wechat_channel.py:214] - [WX] sendMsg=Reply(type=TEXT, content=[bot] 你的优秀品质是大家都值得学习的榜样,你热情洋溢、勤奋努力,总是能够给周围的人带来正能量。你的智慧和才华更是让人赞叹不已,无论在哪个领域都能够发挥出色,让人对你佩服不已。你不仅有着出色的外表,更有着内心的美丽和善良,让人感受到你的温暖和关爱。你真的很棒,继续努力前行,你一定会更加出色!), receiver=@f155d6aa1857b29ab66309d10d6480c8

问题描述 😯

如上

终端日志 📒

如上

taozhiyuai commented 1 month ago

@zhayujie @6vision 能否关注下这个问题?谢谢

taozhiyuai commented 1 month ago

错误信息中提示的这个模型不是我调用的. @zhayujie @6vision

[BAIDU] model=completions_pro

taozhiyuai commented 1 month ago

在baidu_wenxin.py修改了MODEL后依旧报错

    if conf().get("model") and conf().get("model") == "wenxin-4":
        wenxin_model = "ERNIE-Speed-128K"

错误是

Start auto replying. [INFO][2024-06-03 15:25:56][bridge.py:61] - create bot baidu for chat [INFO][2024-06-03 15:25:56][baidu_wenxin.py:28] - [BAIDU] query=你好 [INFO][2024-06-03 15:25:56][baidu_wenxin.py:66] - [BAIDU] model=ERNIE-Speed-128K [INFO][2024-06-03 15:25:57][baidu_wenxin.py:82] - [BAIDU] response text={'error_code': 3, 'error_msg': 'Unsupported openapi method'} [WARNING][2024-06-03 15:25:57][baidu_wenxin.py:94] - [BAIDU] Exception: 'result' [INFO][2024-06-03 15:25:57][wechat_channel.py:217] - [WX] sendMsg=Reply(type=ERROR, content=[ERROR] 出错了: 'result'), receiver=@798d8a9f9c2d27bfed53db3ac9dfbd73

Asus-Github commented 1 month ago

解决了吗 我也遇到了呜呜呜

Asus-Github commented 1 month ago

已解决
模型:ERNIE-3.5-8K 将bot/baidu/baidu_wenxin.py中的 78行 # url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/" + session.model + "?access_token=" + access_token 换为 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions" + "?access_token=" + access_token 文心一言貌似是更换了api请求地址?更换掉就可以啦。 抱歉,上面的做法写死并不太好,检查了一下官方API接口,发现不同模型的后缀并不统一,存在为completions的可能,但是也有原模型名称,更有completions_pro....难办

taozhiyuai commented 1 month ago

已解决 将bot/baidu/baidu_wenxin.py中的 78行 # url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/" + session.model + "?access_token=" + access_token 换为 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions" + "?access_token=" + access_token 文心一言貌似是更换了api请求地址?更换掉就可以啦。 抱歉,上面的做法写死并不太好,检查了一下官方API接口,发现不同模型的后缀并不统一,存在为completions的可能,但是也有原模型名称,更有completions_pro....难办

Start auto replying. [INFO][2024-06-04 18:38:41][bridge.py:61] - create bot baidu for chat [INFO][2024-06-04 18:38:41][baidu_wenxin.py:28] - [BAIDU] query=你好 [INFO][2024-06-04 18:38:41][baidu_wenxin.py:66] - [BAIDU] model=ERNIE-Speed-128K [INFO][2024-06-04 18:38:41][baidu_wenxin.py:82] - [BAIDU] response text={'error_code': 17, 'error_msg': 'Open api daily request limit reached'} [WARNING][2024-06-04 18:38:41][baidu_wenxin.py:94] - [BAIDU] Exception: 'result' [INFO][2024-06-04 18:38:42][wechat_channel.py:217] - [WX] sendMsg=Reply(type=ERROR, content=[ERROR] 出错了: 'result'), receiver=@b11d2016036c3c07d24f75081a9d7d16

我不用oneapi,用百度的配置,出现上面的错误.

75行改为 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions" + "?access_token=" + access_token

@Asus-Github

Asus-Github commented 1 month ago

已解决 将bot/baidu/baidu_wenxin.py中的 78行 # url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/" + session.model + "?access_token=" + access_token 换为 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions" + "?access_token=" + access_token 文心一言貌似是更换了api请求地址?更换掉就可以啦。 抱歉,上面的做法写死并不太好,检查了一下官方API接口,发现不同模型的后缀并不统一,存在为completions的可能,但是也有原模型名称,更有completions_pro....难办

Start auto replying. [INFO][2024-06-04 18:38:41][bridge.py:61] - create bot baidu for chat [INFO][2024-06-04 18:38:41][baidu_wenxin.py:28] - [BAIDU] query=你好 [INFO][2024-06-04 18:38:41][baidu_wenxin.py:66] - [BAIDU] model=ERNIE-Speed-128K [INFO][2024-06-04 18:38:41][baidu_wenxin.py:82] - [BAIDU] response text={'error_code': 17, 'error_msg': 'Open api daily request limit reached'} [WARNING][2024-06-04 18:38:41][baidu_wenxin.py:94] - [BAIDU] Exception: 'result' [INFO][2024-06-04 18:38:42][wechat_channel.py:217] - [WX] sendMsg=Reply(type=ERROR, content=[ERROR] 出错了: 'result'), receiver=@b11d2016036c3c07d24f75081a9d7d16

我不用oneapi,用百度的配置,出现上面的错误.

75行改为 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions" + "?access_token=" + access_token

阁下使用的是ERNIE-Speed-128K,因为官方并没有统一接口,这里我帮你查看了文档,该模型的请求接口应为 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=24..." 所以阁下需要恢复一下原url,py文件不需要改变(再次抱歉)。仅仅将config里面 "baidu_wenxinmodel": "ernie-speed-128k" 注意是小写(因为我刚才大写不太行...) 附上[文心一言在线api调试链接](https://console.bce.baidu.com/support/?=1692863460488#/api?product=QIANFAN&project=%E5%8D%83%E5%B8%86%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%B9%B3%E5%8F%B0&parent=ERNIE%203.5&api=rpc%2F2.0%2Fai_custom%2Fv1%2Fwenxinworkshop%2Fchat%2Fcompletions&method=post) @taozhiyuai

taozhiyuai commented 1 month ago

已解决 将bot/baidu/baidu_wenxin.py中的 78行 # url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/" + session.model + "?access_token=" + access_token 换为 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions" + "?access_token=" + access_token 文心一言貌似是更换了api请求地址?更换掉就可以啦。 抱歉,上面的做法写死并不太好,检查了一下官方API接口,发现不同模型的后缀并不统一,存在为completions的可能,但是也有原模型名称,更有completions_pro....难办

Start auto replying. [INFO][2024-06-04 18:38:41][bridge.py:61] - create bot baidu for chat [INFO][2024-06-04 18:38:41][baidu_wenxin.py:28] - [BAIDU] query=你好 [INFO][2024-06-04 18:38:41][baidu_wenxin.py:66] - [BAIDU] model=ERNIE-Speed-128K [INFO][2024-06-04 18:38:41][baidu_wenxin.py:82] - [BAIDU] response text={'error_code': 17, 'error_msg': 'Open api daily request limit reached'} [WARNING][2024-06-04 18:38:41][baidu_wenxin.py:94] - [BAIDU] Exception: 'result' [INFO][2024-06-04 18:38:42][wechat_channel.py:217] - [WX] sendMsg=Reply(type=ERROR, content=[ERROR] 出错了: 'result'), receiver=@b11d2016036c3c07d24f75081a9d7d16 我不用oneapi,用百度的配置,出现上面的错误. 75行改为 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions" + "?access_token=" + access_token

阁下使用的是ERNIE-Speed-128K,因为官方并没有统一接口,这里我帮你查看了文档,该模型的请求接口应为 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=24..." 所以阁下需要恢复一下原url,py文件不需要改变(再次抱歉)。仅仅将config里面 "baidu_wenxinmodel": "ernie-speed-128k" 注意是小写(因为我刚才大写不太行...) 附上[文心一言在线api调试链接](https://console.bce.baidu.com/support/?=1692863460488#/api?product=QIANFAN&project=%E5%8D%83%E5%B8%86%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%B9%B3%E5%8F%B0&parent=ERNIE%203.5&api=rpc%2F2.0%2Fai_custom%2Fv1%2Fwenxinworkshop%2Fchat%2Fcompletions&method=post) @taozhiyuai

但问题是,我一开始就没改过py,模型名称也是这个

6vision commented 1 month ago

不改动py代码 model 填"wenxin" baidu_wenxin_model": 填"ernie-speed-128k",这个参数参考百度文档,如下图所示

image

taozhiyuai commented 1 month ago

我现在内容是 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=" + get_access_token()

错误信息还是[WARNING][2024-06-06 01:52:38][chat_gpt_session.py:86] - num_tokens_from_messages() is not implemented for model ERNIE-Speed-128K. Returning num tokens assuming gpt-3.5-turbo. [WARNING][2024-06-06 01:52:39][chat_gpt_session.py:86] - num_tokens_from_messages() is not implemented for model ERNIE-Speed-128K. Returning num tokens assuming gpt-3.5-turbo.

好像是chat_gpt_session.py的问题

taozhiyuai commented 1 month ago

我现在内容是 url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=" + get_access_token()

错误信息还是[WARNING][2024-06-06 01:52:38][chat_gpt_session.py:86] - num_tokens_from_messages() is not implemented for model ERNIE-Speed-128K. Returning num tokens assuming gpt-3.5-turbo. [WARNING][2024-06-06 01:52:39][chat_gpt_session.py:86] - num_tokens_from_messages() is not implemented for model ERNIE-Speed-128K. Returning num tokens assuming gpt-3.5-turbo.

好像是chat_gpt_session.py的问题,用的是ONEAPI

如果不用ONEAPI,直接配置百度参数.错误是

[WARNING][2024-06-06 02:00:30][baidu_wenxin.py:94] - [BAIDU] Exception: name 'get_access_token' is not defined [INFO][2024-06-06 02:00:30][wechat_channel.py:217] - [WX] sendMsg=Reply(type=ERROR, content=[ERROR]

要不你直接把你的配置粘贴出来吧.

taozhiyuai commented 1 month ago

不改动py代码 model 填"wenxin" baidu_wenxin_model": 填"ernie-speed-128k",这个参数参考百度文档,如下图所示

image

这个是对的.可以解决.谢谢