chatchat-space / Langchain-Chatchat

Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain
Apache License 2.0
31.96k stars 5.56k forks source link

[BUG] 阿里千问请求报错,似乎阿里升级了,需要适配 #3306

Closed xike110 closed 8 months ago

xike110 commented 8 months ago

模型服务灵积-通义千问qwen-max 模型 请求报错 2024-03-12 16:39:32 | INFO | httpx | HTTP Request: POST http://127.0.0.1/:21006/worker_generate_stream "HTTP/1.1 200 OK" 2024-03-12 16:39:32 | ERROR | model_worker | 请求千问 API 时发生错误:{'error_code': , 'text': 'Preprocessor error', 'error': {'message': 'Preprocessor error', 'type': 'invalid_request_error', 'param': None, 'code': None}} 2024-03-12 16:39:32,883 - utils.py[line:38] - ERROR: An error occurred during streaming</httpstatus.internal_server_error:> Snipaste_2024-03-12_16-43-41

dosubot[bot] commented 8 months ago

嘿,@xike110!很高兴再次遇见你!碰到麻烦了吗?我们来一探究竟。

感谢您的反馈。根据您提供的错误信息,似乎是在请求阿里的千问 API 时遇到了问题。这可能是由于阿里升级了他们的 API,导致了一些兼容性问题。

在我们的知识库中,我找到了一些类似的问题,可能会对您有所帮助:

  1. [BUG] 配置在线千问/文心一言模型出错:这个问题的解决方案是确保安装了 dashscope 依赖,因为在安装 dashscope 后,qwen-api 对话的错误得到了解决。

  2. [BUG] 简洁阐述问题 / Concise description of the issue:这个问题通过提交 fix Yi-34b model config error(close #2491) (#2492) 得到了解决。

  3. [BUG] 用通义千问API模式,LLM对话,返回错误:API通信遇到错误:peer closed connection without sending complete message body (incomplete chunked read):建议更新到版本 0.2.7 或开发分支以解决此问题,因为在开发环境中运行正常。

对于您当前的问题,我建议您按照以下步骤进行操作:

  1. 检查 API 端点更改:验证 Qwen API 升级版本中是否更改了 API 端点或路径。如果有修改,请相应地在代码中更新端点路径。

  2. 查看 API 请求格式:确保请求格式(包括头部、主体和参数)仍然符合升级后的 API 的要求。这包括检查 API 是否现在需要额外的头部,如更新的 Content-Type 或认证令牌。

  3. 根据新的模式更新有效负载:如果 API 升级引入了对请求或响应模式的更改,请调整您的 JSON 有效负载和解析逻辑以符合新的模式。

  4. 处理新的错误代码和消息:升级的 API 可能包含新的错误代码和消息。更新您的错误处理逻辑,以适应 API 可能返回的任何新的错误响应。

  5. 查阅更新的 API 文档:查阅阿里为 Qwen API 提供的更新的 API 文档。文档可能会包含在升级过程中进行的任何更改的信息,包括新功能、已弃用的端点和迁移指南。

  6. 使用更新的端点进行测试:进行必要的更新后,彻底测试您的应用程序,确保所有与 Qwen API 的交互都按预期进行。

  7. 实现版本处理:如果 Qwen API 支持版本控制,并且升级涉及到版本更改,确保您的请求明确指定您打算使用的 API 的正确版本。这通常可以通过请求头部或在 API 端点路径中包含版本号来完成。

希望这些信息对您有所帮助。如果您在解决此问题时需要进一步的帮助,或者有任何其他问题,欢迎随时向我们提问。

Sources

#### About Dosu This response is meant to be useful and save you time. It is **not meant to be a precise solution**, but rather a starting point for your own research. Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant. If you want to continue the conversation, start your reply with @dosu-bot.
zRzRzRzRzRzRzR commented 8 months ago

在0.3.x会都统一为openai格式

xike110 commented 8 months ago

在0.3.x会都统一为openai格式

能不能说一下什么问题,我切换线上qwen-max-1201 接口没问题,其他千问接口都会出这个错

xike110 commented 8 months ago

我项目再线上跑不能,等更新,我自己尝试修复下

zixiaotan21 commented 7 months ago

同样遇到这个问题,想问问楼主解决了吗

xike110 commented 7 months ago

同样遇到这个问题,想问问楼主解决了吗

我是楼主,已经解决了,问题在与阿里那边升级了API 你提交的历史消息,要保证一问,一答得顺序

zixiaotan21 commented 7 months ago

噢噢,我是调用的qwen-max 模型来做知识库问答,我目前的情况是:

  1. 答案能检索出来,但LLM回答不上来
  2. 显示的是和楼主一样的 请求千问 API 时发生错误:{'error_code': <HTTPStatus.INTERNAL_SERVER_ERROR: 500>, 'text': 'Role must be user or assistant and Content length must be greater than 0', 'error': {'message': 'Role must be user or assistant and Content length must be greater than 0', 'type': 'invalid_request_error', 'param': None, 'code': None}} 想请教一下,一问,一答的顺序是指什么呀
zixiaotan21 commented 7 months ago

我换了qwen-max-1201去跑,好像就没有出现qwen-max的问题了

xike110 commented 7 months ago

我换了qwen-max-1201去跑,好像就没有出现qwen-max的问题了

qwen-max-1201 升级延后,早晚也是不能用得,我换了qwen-max-1201也正常了,你换qwen-max 不带历史记录,也会正常得,重点是,你提交的history历史聊天,记录要保持每个提问,都会有一个回答

xike110 commented 7 months ago

03_11-17-53

xike110 commented 7 months ago

我换了qwen-max-1201去跑,好像就没有出现qwen-max的问题了

阿里会检查,每个回答是不是一对(一问一答),如果不带历史记录正常,带历史记录是一对(一问一答)正常,

zixiaotan21 commented 7 months ago

噢噢我明白了,就是要保证“一问一答”的形式,谢谢楼主大佬解答! 但我换回qwen-max模型,出现的问题是:LLM根本就不回答,

屏幕截图 2024-04-03 112553

所以会出现如下报错,想问问楼主会出现这种情况吗? 2024-04-03 11:25:02 | INFO | httpx | HTTP Request: POST http://127.0.0.1:21006/worker_generate_stream "HTTP/1.1 200 OK" 2024-04-03 11:25:03 | ERROR | model_worker | 请求千问 API 时发生错误:{'error_code': <HTTPStatus.INTERNAL_SERVER_ERROR: 500>, 'text': 'Role must be user or assistant and Content length must be greater than 0', 'error': {'message': 'Role must be user or assistant and Content length must be greater than 0', 'type': 'invalid_request_error', 'param': None, 'code': None}} 2024-04-03 11:25:03,255 - utils.py[line:38] - ERROR: An error occurred during streaming Traceback (most recent call last): File "C:\Users\butterfly\Langchain-Chatchat\server\utils.py", line 36, in wrap_done await fn File "C:\Users\butterfly\anaconda3\envs\chatchat_env\Lib\site-packages\langchain\chains\base.py", line 385, in acall raise e 2024-04-03 11:25:03,271 - utils.py[line:40] - ERROR: APIError: Caught exception: An error occurred during streaming

zixiaotan21 commented 7 months ago

网络搜索结果那里是有结果的,所以我觉得应该不是搜索引擎bing的问题,可能问题还是在LLM那里~

zhichengzhou98 commented 5 months ago

噢噢我明白了,就是要保证“一问一答”的形式,谢谢楼主大佬解答! 但我换回qwen-max模型,出现的问题是:LLM根本就不回答,

屏幕截图 2024-04-03 112553

所以会出现如下报错,想问问楼主会出现这种情况吗? 2024-04-03 11:25:02 | INFO | httpx | HTTP Request: POST http://127.0.0.1:21006/worker_generate_stream "HTTP/1.1 200 OK" 2024-04-03 11:25:03 | ERROR | model_worker | 请求千问 API 时发生错误:{'error_code': <HTTPStatus.INTERNAL_SERVER_ERROR: 500>, 'text': 'Role must be user or assistant and Content length must be greater than 0', 'error': {'message': 'Role must be user or assistant and Content length must be greater than 0', 'type': 'invalid_request_error', 'param': None, 'code': None}} 2024-04-03 11:25:03,255 - utils.py[line:38] - ERROR: An error occurred during streaming Traceback (most recent call last): File "C:\Users\butterfly\Langchain-Chatchat\server\utils.py", line 36, in wrap_done await fn File "C:\Users\butterfly\anaconda3\envs\chatchat_env\Lib\site-packages\langchain\chains\base.py", line 385, in acall raise e 2024-04-03 11:25:03,271 - utils.py[line:40] - ERROR: APIError: Caught exception: An error occurred during streaming

我也出过类似的问题,层主解决了吗? 我用的Spring Cloud Starter Alibaba AI 2023.0.1.0,默认模型"qwen-turbo" com.alibaba.dashscope.exception.ApiException: {"statusCode":400,"message":"Range of input length should be [1, 6000]","code":"InvalidParameter","isJson":true,}

RRRoger commented 5 months ago

噢噢,我是调用的qwen-max 模型来做知识库问答,我目前的情况是:

  1. 答案能检索出来,但LLM回答不上来
  2. 显示的是和楼主一样的 请求千问 API 时发生错误:{'error_code': <HTTPStatus.INTERNAL_SERVER_ERROR: 500>, 'text': 'Role must be user or assistant and Content length must be greater than 0', 'error': {'message': 'Role must be user or assistant and Content length must be greater than 0', 'type': 'invalid_request_error', 'param': None, 'code': None}} 想请教一下,一问,一答的顺序是指什么呀

请问您解决了吗 好像我内容多了 就报这个错误了