作者:互联网 时间: 2026-09-01 19:20:54
必须补全model(ep-开头的接入点ID)和messages(含role与content的非空数组)字段,二者缺一不可,否则触发400错误;需通过控制台确认真实Endpoint ID,并校验JSON结构合规性。
调用火山引擎豆包API时返回类似{"error":{"code":"invalid_request_error","message":"model is required"}}或"messages is required"的报错,说明请求体中关键字段缺失或格式错误,必须立即修正参数结构才能发起有效调用。
打开你的请求代码,定位到发送HTTP POST请求的payload部分。豆包API要求以下两个字段必须存在且结构合法:
① model字段必须为字符串类型,且值是真实存在的接入点ID(以ep-开头),例如ep-m-20260301xxxxxx-xxxxxx;不能填模型名称如doubao-pro或空字符串,否则直接触发400错误。
② messages字段必须为非空数组,每个元素需包含role(只能是"user"、"assistant"或"system")和content(字符串或符合多模态规范的对象),缺一不可。
若使用Python requests库,确保payload形如:{"model":"ep-m-20260301xxxxxx-xxxxxx","messages":[{"role":"user","content":"你好"}]}。
方法一:用JSON Schema校验工具在线验证
将你构造的messages数组单独复制进JSON Schema校验 (如jsonschemavalidator.net),粘贴最新定义的messages schema片段,确认无role missing或content type mismatch报错。
方法二:手动检查三项硬性约束
• 每个message对象必须有且仅有role和content两个顶层键;
• role值只能是"user"、"assistant"、"system"三者之一,大小写敏感;
• content若为多模态内容(如图文混合),必须按火山方舟文档组织为[{"type":"text","text":"xxx"},{"type":"image_url","image_url":{"url":"data:image/png;base64,..."}}]格式,不能直接传字符串。
打开火山引擎控制台→火山方舟→模型服务→已部署模型列表,找到你正在调用的豆包模型,点击右侧「接入点」查看实际生成的Endpoint ID。
注意:该ID一定是ep-开头的长字符串,不是模型卡片上显示的doubao-seed-2-0-code-preview-260215这类版本名——后者仅用于控制台识别,API调用时填它必报404或400。
如果使用环境变量注入model值,请在终端执行echo $MODEL_ID确认输出结果是否为有效ep-格式ID,避免因shell变量未加载导致空值传递。