chatgpt-plugin
chatgpt-plugin copied to clipboard
[修复] 通义千问API工具调用错误 - 禁止使用[search/serp]作为工具名称
问题描述
机器人在使用(通义千问API方式的配置)通义千问平台的deepseek-r1-0528模型时(通过#qwen+ 消息提问),遇到工具调用错误:
Error: Qwen error 400: {"request_id":"90e3f9be-5100-91e9-94cd-972fe12ef91e","code":"InvalidParameter","message":"<400> InternalError.Algo.InvalidParameter: Tool names are not allowed to be [search]"}
问题分析
经过分析代码发现,项目中定义的两个工具使用了通义千问API不允许使用的工具名称导致冲突:
SerpIkechan8370Tool工具使用了名称search(文件路径: utils/tools/SerpIkechan8370Tool.js)SerpTool工具使用了名称serp(文件路径: utils/tools/SerpTool.js)
这些名称在通义百炼的deepseek-r1-0528模型调用中是被禁止的,导致调用时出现错误。
解决方案
通过修改工具名称解决了这个问题:
- 将
SerpIkechan8370Tool的名称从search修改为webSearch - 将
SerpTool的名称从serp修改为webSerp
修改文件
- utils/tools/SerpIkechan8370Tool.js
- utils/tools/SerpTool.js
建议
建议考虑为工具名称添加命名规范,避免使用可能被不同模型禁止的关键词。或者在文档中说明不同模型对工具名称的限制,以便用户能够正确配置。
关于工具命名,可以采用添加后缀的形式,例如将工具名称定义为 search_ikechan8370 或 search_bing 这样的格式,这样既能表达工具的功能,又能避免与API限制冲突。