status_code=400, invalid request: - messages[63].content: got array, want string...
错误信息
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. 🛡️ 预防措施
Zod、Joi),提前对请求参数进行结构校验,从源头规避格式错误。