You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用OpenAI Chat Completions API返回400错误的原因排查求助

排查OpenAI Chat Completions接口400错误的原因

核心问题分析

你的代码调用/v1/chat/completions时返回400,主要是请求参数不符合接口要求,以下是具体问题和修复方案:

1. 缺少必填的model参数

Chat Completions接口必须指定使用的模型(比如gpt-3.5-turbo、gpt-4),你的请求体里完全没传这个参数,这是触发400错误的最直接原因。

2. 消息结构不符合接口常规要求

你只传入了system角色的消息,部分模型不接受单一system角色的请求结构。如果你的需求是让AI处理用户输入,应该将用户内容放在user角色中,system角色仅作为前置提示词使用。

修复后的代码示例

修改getStructuredMessage函数,补充必填参数并调整消息结构:

export async function getStructuredMessage(messageText) {
    const response = await fetch('https://api.openai.com/v1/chat/completions', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            Authorization: `Bearer ${API_KEY}`,
        },
        body: JSON.stringify({
            model: 'gpt-3.5-turbo', // 必填:指定调用的模型
            messages: [
                { role: 'system', content: '这里设置你的系统提示词,比如"你是一个结构化信息整理助手"' },
                { role: 'user', content: messageText } // 用户输入内容放在user角色中
            ],
        }),
    });

    // 新增响应状态判断,避免错误场景下访问data.choices报错
    if (!response.ok) {
        const errorData = await response.json();
        throw new Error(`请求失败:${errorData.error.message}`);
    }

    const data = await response.json();
    return data.choices[0].message.content;
}

额外注意事项

  • 确认API_KEY有效且拥有对应模型的调用权限
  • 调用前校验messageText,避免传入空值或格式异常的内容
  • 部分模型对消息总长度有限制,过长内容会触发400,需控制输入长度

内容的提问来源于stack exchange,提问作者Nazar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 21:25:07