chatgpt-plugin icon indicating copy to clipboard operation
chatgpt-plugin copied to clipboard

[修复] 通义千问API工具调用错误 - 禁止使用[search/serp]作为工具名称

Open buyun14 opened this issue 5 months ago • 0 comments

问题描述

机器人在使用(通义千问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不允许使用的工具名称导致冲突:

  1. SerpIkechan8370Tool 工具使用了名称 search (文件路径: utils/tools/SerpIkechan8370Tool.js)
  2. SerpTool 工具使用了名称 serp (文件路径: utils/tools/SerpTool.js)

这些名称在通义百炼的deepseek-r1-0528模型调用中是被禁止的,导致调用时出现错误。

解决方案

通过修改工具名称解决了这个问题:

  1. SerpIkechan8370Tool 的名称从 search 修改为 webSearch
  2. SerpTool 的名称从 serp 修改为 webSerp

修改文件

  1. utils/tools/SerpIkechan8370Tool.js
  2. utils/tools/SerpTool.js

建议

建议考虑为工具名称添加命名规范,避免使用可能被不同模型禁止的关键词。或者在文档中说明不同模型对工具名称的限制,以便用户能够正确配置。

关于工具命名,可以采用添加后缀的形式,例如将工具名称定义为 search_ikechan8370search_bing 这样的格式,这样既能表达工具的功能,又能避免与API限制冲突。

buyun14 avatar Jul 31 '25 20:07 buyun14