Open ding113 opened 6 months ago
Bot detected the issue body's language is not English, translate it automatically.
Title: [Bug] 400 Invalid parameter error occurs in Azure OpenAI
我使用之前部署的 auzre 模型中确实也复现了这个问题,建议你删除已经部署的模型重新部署个新的试试。
后面复现时我重新在瑞典中部部署了一个 gpt-4-1106-preview
模型,并在 one-api 中指定了 api 版本为 2024-02-15-preview
,插件调用就正常了。
目前主版本的插件调用模式已经从 function_call
切换为了 tool_choice
(因为 function_call
参数已经过时),而且 api 参数产生完全由 langchain 实现的,这部分无法进行干预,所以即使 azure 参数导致的问题也完全无法修改(当然你也可以把问题提交给 langchianjs)。
我又花了半天时间调查该问题,发现当模型名为 gpt-4
和 gpt-4-0613
时该问题时必现的,但如果把模型名从 gpt-4-0613
改为 gpt-4-0613-azure
时函数调用又正常了。
怀疑是 one-api 针对上面两个 azure 服务模型的函数调用使用了老的 function call 模式导致 tool_call 参数未正确传递产生的该问题。
Bot detected the issue body's language is not English, translate it automatically.
I spent another half day investigating the problem and found that the problem must occur when the model name is
gpt-4
andgpt-4-0613
, but if the model name is changed fromgpt-4-0613
When it isgpt-4-0613-azure
, the function call is normal again. It is suspected that one-api uses the old function call mode for the function calls of the above two azure service models, resulting in the tool_call parameter not being passed correctly.
相关问题已经提交到了 one-api 项目,可以关注该 issue:https://github.com/songquanpeng/one-api/issues/1019
描述错误 当尝试在聊天中使用工具时出现
400 Invalid parameter
错误,猜测是与Azure对工具调用的API格式变动有关。复现步骤
gpt-4-1106-preview
模型,使用 one-api 程序反代的 Azure OpenAI 端点,Azure API 版本为2024-02-15-preview
或2023-12-01-preview
时均能稳定复现400 Invalid parameter: messages with role 'tool' must be a response to a preceding message with 'tool_calls'.
。预期行为 根据最新的Azure OpenAI API指南处理新的
tools
和tool_calls
参数部署方式
桌面端(请提供以下信息):
程序版本
附加日志
发送如下请求
报错如下:
详细信息请见:Azure OpenAI服务中的函数调用。