Bad Request {"error":{"message":"openai_error","type":"bad_response_status_code"...

2026年07月28日 10:48 32.00 秒 success

错误信息

Chat completion request error: Bad Request {"error":{"message":"openai_error","type":"bad_response_status_code","param":"","code":"bad_response_status_code"}}

AI 解决方案

1. 🌐 错误翻译


原文:Bad Request {"error":{"message":"openai_error","type":"bad_response_status_code","param":"","code":"bad_response_status_code"}}
译文:错误请求 {"error":{"message":"openai_error","type":"响应状态码错误","param":"","code":"响应状态码错误"}}

2. 🎯 原因分析


该错误表明向OpenAI接口发送的请求存在问题,导致API返回了不符合预期的错误响应状态码,核心原因通常有:
  • 请求参数格式或内容错误:如缺失必填参数、参数类型不符(比如该传整数却传字符串)、参数值格式不合法(如模型名称拼写错误)。

  • 请求头设置异常:比如API密钥错误、认证方式不匹配,或者请求头的Content-Type不符合接口要求。

  • 接口版本不兼容:调用的API版本与实际不匹配,接口路径可能存在偏差。
  • 3. 💡 解决方案


    需按以下步骤排查并修复,以常见Python调用OpenAI接口为例,给出正确调用模板:

    from openai import OpenAI
    
    # 1. 确认API密钥和接口地址正确(替换为你的合法密钥和对应接口地址)
    client = OpenAI(
        api_key="你的有效API密钥",
        base_url="https://api.openai.com/v1"  # 确保接口版本和地址准确
    )
    
    try:
        # 2. 严格按照接口文档填写请求参数,检查必填项、参数类型和值的合法性
        response = client.chat.completions.create(
            model="gpt-3.5-turbo",  # 确保模型名称是接口支持的有效名称
            messages=[
                {"role": "user", "content": "你好,测试请求"}
            ],
            # 其他可选参数按需添加,且确保格式正确
        )
        print(response.choices[0].message.content)
    except Exception as e:
        print(f"请求出错:{e}")
    

    • 关键修复步骤

    • 1. 核对并替换为有效的API密钥,确认密钥有调用权限。
      2. 检查model参数,使用接口文档明确支持的模型名称,避免拼写错误。
      3. 确认messages参数格式符合要求(如角色只能是"user"/"assistant"/"system",内容非空)。
      4. 检查请求的base_url是否与实际调用的接口版本、地址完全匹配。
      5. 若涉及其他参数,对照官方接口文档逐一核对参数是否存在、类型和格式是否正确。

      4. 🛡️ 预防措施


    • 参数校验前置:在发送请求前,对所有参数进行格式和合法性校验,比如用类型检查工具确保参数类型符合要求,用正则校验关键值的格式(如模型名称、密钥格式),可借助Pydantic等工具做参数校验。

    • 接口文档同步:每次调用前对照官方最新接口文档,避免使用过时的接口路径、参数或模型名称,同时固定接口调用版本,避免因版本更新导致参数变动引发的兼容问题。

    • 日志详细记录:开启详细的请求日志,记录请求参数、请求时间、接口地址等信息,出现错误时可快速定位问题,排查时能直接回溯完整请求上下文。