Error code: 400 - {'error': {'message': "Invalid content. Expected 'video_url' f...
🚨 错误信息
openai.BadRequestError: Error code: 400 - {'error': {'message': "Invalid content. Expected 'video_url' field in video_url type content part to be a string or dict", 'type': 'rix_api_error', 'param': "'messages.[0].content[1].type'", 'code': None}}
🤖 AI解决方案
错误翻译
原文:Invalid content. Expected 'video_url' field in video_url type content part to be a string or dict
译文:无效内容。期望video_url类型内容部分中的'video_url'字段为字符串或字典
原因分析
这是一个OpenAI API调用错误,具体原因是:
- 在使用video_url类型的内容块时,video_url字段的值格式不正确
- API期望该字段为字符串或字典类型,但实际传递了其他类型的数据
- 错误发生在messages数组的第一个消息的第二个内容部分
解决方案
# 错误示例(会导致400错误)
{
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "请分析这个视频"},
{"type": "video_url", "video_url": 12345} # ❌ 数字类型,应该用字符串
]
}
]
}
# 正确修复
{
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "请分析这个视频"},
{"type": "video_url", "video_url": "https://example.com/video.mp4"} # ✅ 字符串格式
]
}
]
}
# 或者使用字典格式(如果API支持)
{
"type": "video_url",
"video_url": {
"url": "https://example.com/video.mp4",
"detail": "low" # 可选参数
}
}
预防措施
def create_video_message(video_url: str) -> dict:
return {
"type": "video_url",
"video_url": video_url # 类型注解确保参数正确
}