本文档描述了OpenAI Python库的类型系统架构,涵盖了类型如何从OpenAPI规范生成、如何组织到模块中以及如何与客户端基础设施集成。该类型系统通过自动生成的Pydantic模型和TypeAlias定义,为所有API交互提供了全面的类型安全。
有关模型转换和数据处理的信息,请参阅模型转换系统。有关核心实用函数详情,请参阅实用工具和辅助函数。
OpenAI Python库使用基于OpenAPI规范的自动化类型生成系统。整个类型系统都是从定义了111个配置端点的规范OpenAPI规范中生成的。
来源:.stats.yml1-4 src/openai/types/__init__.py1-96
类型系统被组织成一个分层模块结构,将共享类型与API特定类型分离,具有清晰的导入模式和命名空间管理。
来源:src/openai/types/__init__.py1-96 src/openai/types/shared/__init__.py1-17 src/openai/types/shared_params/__init__.py1-15
共享类型系统提供了在多个API资源中使用的通用类型定义,分为两大类:响应类型和参数类型。
| 类型类别 | 目的 | 示例类型 |
|---|---|---|
| 模型枚举 | API模型标识符 | ChatModel, AudioModel, ImageModel |
| 响应格式 | 输出格式规范 | ResponseFormatText, ResponseFormatJSONSchema |
| 通用对象 | 可重用数据结构 | Metadata, ErrorObject, FunctionDefinition |
| 筛选类型 | 查询筛选结构 | ComparisonFilter, CompoundFilter |
| 推理类型 | AI推理配置 | Reasoning, ReasoningEffort |
来源:src/openai/types/shared/chat_model.py7-65 src/openai/types/shared/__init__.py1-17 src/openai/types/shared_params/__init__.py1-15
每个API资源都有其自己的类型命名空间,该命名空间继承自共享类型,同时定义了资源特定的模型和参数。
来源:api.md35-89 api.md141-192 api.md676-739 api.md482-634
类型系统遵循不同类型类别的统一模式,确保所有API资源具有可预测的结构和行为。
| 模式 | 目的 | 示例 |
|---|---|---|
| 响应模型 | API响应结构 | ChatCompletion, Transcription |
| 参数模型 | 请求参数验证 | CompletionCreateParams, TranscriptionCreateParams |
| 流式传输模型 | 服务器发送事件类型 | ChatCompletionChunk, TranscriptionStreamEvent |
| 枚举类型 | 受限字符串值 | ChatModel, AudioResponseFormat |
| 联合类型 | 多态响应 | ChatCompletionContentPart, MessageContent |
来源:src/openai/types/shared/chat_model.py9-65 api.md35-89 api.md141-192
类型系统与客户端架构无缝集成,从请求构建到响应解析提供端到端的类型安全。
来源:src/openai/types/__init__.py1-96 api.md35-89
这种类型系统架构通过从OpenAPI规范自动生成,确保了全面的类型安全,同时为未来API演进保持了灵活性。