问题: Responses API 转换时丢弃工具调用,并错误地转换强制的 tool_choice
提交前
- 我搜索了公开和非公开的问题和讨论,以获得一份现有报告。
- 我检查了这是否已经固定在 " dev " 分支或最新来源上。
- 我知道维护者想要一个写得很好的问题 之前的任何代码Pull Request。
- 我用最新版本的Open WebUI来做我的安装方法.
- 这不是安全方面的弱点。
• 安装方法
ZZ(ZZTERM3)
QQ 打开 WebUI 版本
0.11.3 (中文(简体) ).
操作系统
德比昂语 12
QQ 浏览器
全体
Ollama 版本
无回复( N)
页:1
当一个OpenAI兼容模型被配置到使用响应API时,工具调用转换在两个位置是不完整的.
强制的 Chat 补全 'tool choice' 以嵌入式 Chat 补全格式转发, 而不是转换为平方响应 API 格式 。 此外,非流化的响应API"函数-调用"输出项目在响应转换回Chat Reforms格式后被删除.
• 预期行为
强制函数选择应从 Chat 补全格式转换 :
贾森 { "类型":"功能", "函数":{ "名":"取"("取""天"作"取". {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
ưμ㼯A
贾森
{
"类型":"功能",
"名":"取"("取""天"作"取".
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
对于非流化响应,每个响应 API 函数 调用输出项都应该被转换为 Chat Professions 工具 调用项. 函数名,调用ID,和参数应当保留,并设置为"tool calls".
仅包含文本的回复应继续使用完成 理由:"停止".
实际行为
实际行为
强制工具 选择在发送到响应 API 时仍保留在嵌入式 Chat 补全格式中 。 严格响应 API 提供者可能拒绝请求,因为他们期望工具 选择对象的顶层有`名称' 。
对于非流化响应,转换目前只提取出输出 text. 响应 API 函数 调用输出项目被忽略 。 因此,由此产生的查特完成回复没有工具 呼叫,错误地报告`完成 理由:停止'。
因此下游的Open WebUI处理没有看到或执行所请求的工具调用.
- 重现步骤
- 在Open WebUI中配置一个与响应API相兼容的OpenAI连接。
- 选择一个支持函数/工具调用的模式。
- 启用本地函数调用 。
- 发送非流式聊天补全并带有函数定义和强制函数选择:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 校对:Soup -H "授权:熊鼠"(Open WEBUI API KEY)? -H"Content-Type:应用程序/json"? -d '{ 维基百科中的相关条目: "模型":"", "流":虚,. "灵枢": [ { "作用":"用户". "内容":"伦敦天气如何? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? [ "工具"曰:[ { "类型":"功能", "函数":{ "名":"取"("取""取""取""取"""取""取""取""取"""取""取"""取""取""取""取""取""取""取""取"取""取""取"取"取"取"取"取"取"取""取"取"取"取"取"取"取"取"取"取"取""取""取"取"取"取"取"取"取"取"取""取"取"取"取"取"取"取""取"取"取"取"取"取"取"取"取"取"取"取"取"取"取"取"取"取"取"取"取"取"取"取"取""取"取"取"取"取""取"""取""".取"取"取"取"取"取"取"取"取"取""取"取"取"取""取"""""" "叙事":"取取取取取来. . . . . . . .
内容来源: open-webui/open-webui