status_code=400, invalid request: - messages[63].content: got array, want string...

2026年07月11日 15:51 22.33 秒 success

错误信息

status_code=400, invalid request: - messages[63].content: got array, want string - messages[63].content[0].type: invalid value tool_reference

AI 解决方案

🔍 错误分析

1. 🌐 错误翻译


原文:status_code=400, invalid request:
- messages[63].content: got array, want string
- messages[63].content[0].type: invalid value tool_reference

译文:状态码=400,请求无效:
- messages[63].content: 得到数组,期望字符串
- messages[63].content[0].type: 无效值 tool_reference

2. 🎯 原因分析


该错误出现在调用大模型API时,数据格式与API期望不符,根本原因有两点:
  • 字段类型不匹配messages[63].content 字段当前传递的是数组类型,但API要求必须是字符串类型。

  • 枚举值错误messages[63].content[0].type 字段填写了tool_reference,这不是API支持的合法枚举值。
  • 这是典型的API请求参数格式不符合接口文档要求的问题,通常发生在开发者未严格遵循API的参数结构规范时。

    3. 💡 解决方案


    需要严格按照API要求的格式重构消息内容,确保content为字符串,type为合法枚举值(如text),修复示例如下:
    // 修复后的API请求消息结构示例
    const messages = [
      // ... 前面的正常消息
      {
        // 修正第64条消息(原索引63)的结构
        content: "这里是具体的文本内容,不要传递数组", // 必须是字符串类型
        type: "text" // 使用API支持的合法类型,如text、image等
      }
      // ... 后续消息
    ];
    

    补充说明:若该接口支持工具调用,需确认工具调用的正确参数结构(不同API的工具调用格式不同,部分API会要求将工具调用单独放在专用字段而非content),需严格参考对应API文档调整。

    4. 🛡️ 预防措施


  • 严格对照接口文档:调用任何API前,仔细核对参数的类型、必填性、枚举值要求,避免凭经验臆断格式。

  • 使用参数校验工具:开发时可引入参数校验库(如ZodJoi),提前对请求参数进行结构校验,从源头规避格式错误。

  • 参考官方示例代码:优先使用API官方提供的SDK或调用示例,按照官方推荐的格式组织参数,减少格式错误概率。