openai-python
OpenAI 官方 Python SDK,一行代码调用 GPT-4、DALL-E、Whisper 等
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
OpenAI 官方 Python SDK,一行代码调用 GPT-4、DALL-E、Whisper 等
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:OpenAI Python 官方库 GitHub 页面
如果把大语言模型比作一台超级计算机,那么 OpenAI Python SDK 就是让这台计算机接入千家万户应用的标准电源接口。
2020 年 GPT-3 发布时,开发者想调用它,需要自己处理复杂的 HTTP 请求、解析 JSON 响应、处理重试逻辑和错误异常。OpenAI 官方 Python 库的诞生,彻底改变了这一局面——从最初的简易封装,到如今拥有完整类型提示、自动补全、异步支持、 Responses API + Chat Completions API 双轨并行的成熟 SDK,走过了从"能用"到"好用"再到"专业"的完整进化路径。
对于 Python 开发者而言,这个库的意义远不止于"少写几行代码"。它代表的是一种将 AI 能力标准化、工程化、产品化的工程实践——让 AI 调用变得像调用数据库一样简单可靠。
库的核心设计围绕两个顶级客户端类展开:
OpenAI:同步客户端,适合传统脚本、Flask/Django 后端AsyncOpenAI:异步客户端,专为 FastAPI、aiohttp 等异步框架设计两者接口完全对称,切换成本极低。异步客户端底层基于 httpx 库,这是一个类似 requests 但原生支持异步的 HTTP 客户端,支持连接池复用和流式响应处理。
# 同步调用
client = OpenAI()
response = client.chat.completions.create(model="gpt-4o", messages=[...])
# 异步调用(FastAPI 场景)
async_client = AsyncOpenAI()
response = await async_client.chat.completions.create(model="gpt-4o", messages=[...])
该库同时支持 OpenAI 的两代核心 API:
| 维度 | Responses API(新一代) | Chat Completions API(经典) |
|---|---|---|
| 设计理念 | 任务导向,指令即输入 | 对话导向,消息历史为输入 |
| 适用场景 | 工具调用、Agent、多步骤推理 | 简单对话、聊天机器人 |
| 代码简洁度 | 更简洁(一行完成) | 需构造 messages 数组 |
| 生态成熟度 | 较新,持续迭代中 | 极其成熟,文档丰富 |
Chat Completions API 承诺无限期支持,两个 API 共存让迁移成本为零。
该库是 Python 类型提示的标杆级实践:
response.model_dump_json() 和 response.model_dump() 轻松序列化TypedDict,在 VS Code 中可获完整类型检查和自动补全这意味着开发者可以在 IDE 中获得接近 Java/TypeScript 的开发体验,大幅减少运行时才暴露的类型错误。
src/openai/resources/ 目录下的模块完整映射了 OpenAI REST API 的每一个端点:
| 资源模块 | 功能 |
|---|---|
chat/ | Chat Completions + Responses API |
audio/ | 语音转文字、文字转语音 |
images/ | DALL-E 图片生成与编辑 |
videos.py | Sora 视频生成 |
embeddings.py | 向量嵌入 |
files.py | 文件上传与管理 |
fine_tuning/ | 模型微调 |
batches.py | 批量 API |
realtime/ | WebSocket 实时对话 |
responses/ | 新一代 Responses API |
vector_stores/ | 向量存储 |
webhooks/ | Webhook 签名验证 |
skills/ | OpenAI Skills 能力 |
moderations.py | 内容安全审核 |
evals/ | 模型评估 |
SDK 在生产级使用场景中体现了极高的工程成熟度:
AuthenticationError、RateLimitError、InternalServerError 等),便于针对性处理OPENAI_LOG=debug 环境变量开启详细调试日志该库提供了签名验证功能,这是接入 Webhook 时的必备安全措施:
# 解析 + 验证一体化(推荐)
payload = client.webhooks.unwrap(body=raw_json_string)
# 单独验证
client.webhooks.verify_signature(body=raw_json_string, headers=headers)
注意 body 参数必须是原始 JSON 字符串,不能先 json.loads() 再传入,这是常见的使用陷阱。
通过 WebSocket 协议实现的实时 API,支持文本和音频的端到端实时交互,配合 function calling 机制可以构建真正的 AI Agent:
# Realtime API 使用 websockets 库
# 支持:语音对话、函数调用、实时转写
该功能是构建语音助手、实时翻译、交互式教学等场景的关键底层能力。
对于企业用户,库内置了 AzureOpenAI 客户端类,无需额外包即可切换到 Azure 部署的模型:
from openai import AzureOpenAI
client = AzureOpenAI(...)
这种开箱即用的多后端支持,体现了 OpenAI 对企业市场的重视。
安装:一行命令,极简:
pip install openai
依赖:仅 Python 3.9+ 和 httpx,无其他运行时依赖,Footprint 极小。
前置条件:需要 OpenAI API Key(通过环境变量 OPENAI_API_KEY 配置),也可配合 python-dotenv 从 .env 文件加载。
上手门槛:极低。任何有 Python 基础的开发者,参考 README 的 5 行示例代码,2 分钟内即可完成首次 API 调用。但深度使用(Agent 开发、微调、批量处理)仍需阅读 API 文档。
硬件需求:几乎没有,纯 HTTP 通信库,不依赖 GPU,可在树莓派级别的设备上运行。
OpenAI Python SDK 是当前 AI 应用开发领域事实上的标准接口层。它的设计哲学——类型安全、接口对称、错误体系化——已成为其他 AI SDK(如 Anthropic Python SDK、Google AI SDK)的参考范式。更重要的是,它的版本演进(从 0.x 到 1.x 的破坏性升级,再到如今的 Responses API)本身就是 AI SDK 应该如何随模型能力演进的活教材。
Stars 突破 30,000 大关,不仅是社区认可,更是 Python 生态拥抱 AI 能力的一个缩影。
本报告基于 GitHub 仓库 openai/openai-python 深度分析,数据采集时间:2026-05-25。