Error code: 400 - {'error': {'message': "Invalid value: audio_url. Supported val...

2025年11月15日 15:44 状态: processing

🚨 错误信息

openai.BadRequestError: Error code: 400 - {'error': {'message': "Invalid value: audio_url. Supported values are: 'text','image_url','video_url' and 'video'.", 'type': 'rix_api_error', 'param': "'messages.[1].content[1].type'", 'code': 'invalid_value'}}

🤖 AI解决方案

错误翻译

原文:Invalid value: audio_url. Supported values are: 'text','image_url','video_url' and 'video'
译文:无效值:audio_url。支持的值包括:'text'、'image_url'、'video_url' 和 'video'

原因分析

这是一个 OpenAI API 参数验证错误,具体原因是:

  • messages.[1].content[1].type 参数中使用了不支持的 audio_url

  • OpenAI API 当前不支持音频 URL 类型,只支持文本、图像和视频相关类型
  • 解决方案

    audio_url 替换为支持的媒体类型:

    # 错误代码示例
    messages = [
        {"role": "user", "content": [
            {"type": "text", "text": "请分析这段音频"},
            {"type": "audio_url", "url": "https://example.com/audio.mp3"}  #  ❌ 错误的类型
        ]}
    ]
    
    # 修复后的代码
    messages = [
        {"role": "user", "content": [
            {"type": "text", "text": "请分析这段内容"},
            {"type": "text", "text": "音频文件链接:https://example.com/audio.mp3"}  # ✅ 使用文本描述
        ]}
    ]

    或者使用现有的支持类型:

    # 如果处理的是视频而不是音频
    messages = [
        {"role": "user", "content": [
            {"type": "text", "text": "请分析这段视频"},
            {"type": "video_url", "url": "https://example.com/video.mp4"}  # ✅ 支持的类型
        ]}
    ]

    ️ 预防措施

  • 查阅官方文档:在使用新功能前,务必查看 OpenAI API 文档中支持的消息内容类型

  • 参数验证:在发送请求前,对消息内容的结构和参数值进行本地验证

  • 使用 TypeScript 接口(如果适用)定义严格的消息类型约束:

interface MessageContent {
  type: 'text' | 'image_url' | 'video_url' | 'video';
  // ... 其他属性
}