快速结论:当使用 openai-python SDK 的 Realtime API 处理失败响应(如推理限流 inference_rate_limit_exceeded)时,SDK 生成的 Pydantic 模型会丢弃服务端返回的 error.message,导致你无法看到 “We’re currently processing too many requests — please try again later.” 这类可读诊断信息。优先检查 openai-python 版本以及本地 RealtimeResponseStatus 模型定义。
适用环境:openai-python 1.84.0;Python 3.13;Linux;使用 Azure 部署的 OpenAI Realtime 模型时触发。
最快修复方案:暂无确认的一步修复方案。Issue 讨论中提出的方案(为 RealtimeResponseStatus.Error 增加 message 字段)截至当前 main 分支尚未合入,属于可优先尝试的方案,且需同步修改生成器/OpenAPI 源码才能持久生效。
注意事项:该问题同时涉及 SDK 模型和 API 文档本身;即使手动修补本地模型文件,由于文件是自动生成的,重新生成时会被覆盖。报告者已通过 OpenAI 帮助渠道反馈,但官方表示无法提供修复进度更新。
问题场景
用户在 Linux 上使用 openai-python(库版本 1.84.0,Python 3.13),连接 Azure 部署的 OpenAI Realtime 模型。当服务端因速率限制等原因返回 status 为 failed 的 response.done 事件时,SDK 用 Pydantic 模型解析该事件,结果 error.message 字段被丢弃。
报错原文
{
"type": "response.done",
"event_id": "event_BvlnvdNtqw7LLGP7xDfyA",
"response": {
"object": "realtime.response",
"id": "resp_BvlnvRcuxxRLrr5FBygyo",
"status": "failed",
"status_details": {
"type": "failed",
"error": {
"type": "invalid_request_error",
"code": "inference_rate_limit_exceeded",
"message": "We're currently processing too many requests — please try again later."
}
}
}
}
原因分析
最可能的原因是 openai-python 中自动生成的 RealtimeResponseStatus.Error 模型定义不完整:它只包含 code 和 type 两个字段,缺少服务端实际返回的 message 字段。因此 Pydantic 在解析时会丢弃该字段,导致经过模型校验的代码无法拿到这段对调试非常有帮助的错误描述。该字段缺失同样出现在 API 参考文档的 response/done 描述中,属于 SDK 类型与 API 文档的双重不一致。
环境排查
- 确认 openai-python 版本,Issue 报告者为 1.84.0。
- 确认 Python 版本,Issue 报告者为 3.13。
- 确认操作系统,Issue 报告者为 Linux。
- 确认使用的是否为 Azure 部署的 OpenAI Realtime 模型。
- 检查本地
src/openai/types/beta/realtime/realtime_response_status.py中 Error 模型是否只定义了 code 与 type。
解决步骤
- 先在本地确认触发场景:构造一个会失败的 Realtime response(例如超过服务端速率限制),捕获 response.done 原始载荷。
- 对比原始 JSON 与 SDK 解析后的对象,确认 error.message 是否丢失。
- 查看当前 main 分支的
realtime_response_status.py,确认 Error 模型是否仍只有 code 和 type。 - 可优先尝试的最小修复:为 RealtimeResponseStatus.Error 增加
message: Optional[str] = None,并保证字段缺失时仍能正常解析(message 为 None)。 - 为该模型补充回归测试:一个用例验证带 error.message 的失败载荷能保留该值,另一个用例验证省略 message 时结果为 None。
- 由于该文件是生成的,持久修复应同步更新生成器或 OpenAPI 源,使重新生成后仍能产出 message 字段,而不是依赖手写改动。
- 若问题已由服务端或新版 SDK 修复,升级 openai-python 并重新验证上述两个用例。
验证方法
将带有 error.message 的失败 response.done 载荷送入修复后的模型,确认解析结果中 message 等于原始可读错误文本;同时构造不含 message 的 Error,确认仍能通过校验且 message 为 None。这样即可证明 wire.error.message -> Error.message -> consumer 这条链路完整保留。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


