OpenAI API 调用教程:Python 集成指南
OpenAI API 怎么用?本文从申请 API Key 到 Python 调用,手把手教你使用 GPT-4o、DALL-E、Whisper 等 OpenAI API,含完整代码和最佳实践。
这篇教程适合谁
你会 Python,想调 OpenAI 的 API 做文本生成、图片生成、语音转文字等功能。本文从申请 Key 到代码实现,重点讲实际开发中的用法和坑。
不适合:完全没写过代码的读者。 最终产物:能用 Python 调 GPT-4o 做文本生成、流式输出、DALL-E 生图、Whisper 转写语音、Function Calling 工具调用。环境假设
- Python 3.8+
openaiPython SDK(pip install openai)- OpenAI 账号 + API Key
- 以当前常见版本为准,具体模型名和参数以 OpenAI 官方文档为准
申请 API Key
- 访问 OpenAI Platform
- 注册或登录
- API Keys → Create new secret key
- 保存好 Key
基础文本生成
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "你是一个专业的 AI 助手。"},
{"role": "user", "content": "什么是机器学习?"}
],
temperature=0.7,
max_tokens=1000
)
print(response.choices[0].message.content)
temperature 怎么选:0 最确定(适合分类、提取),0.7 平衡(适合对话),1.0+ 更随机(适合创意写作)。Agent/RAG 场景一般用 0。
流式输出
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "user", "content": "写一个 Python 快速排序"}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print()
为什么用流式:GPT-4o 完整响应可能要等 2-5 秒,流式输出让用户更早看到内容,体感快很多。Web 应用几乎必开流式。
图片生成(DALL-E)
response = client.images.generate(
model="dall-e-3",
prompt="一只可爱的橘猫在阳光下打盹",
size="1024x1024",
quality="standard",
n=1
)
image_url = response.data[0].url
print(f"图片 URL:{image_url}")
踩坑点:DALL-E 3 的 prompt 对中文支持一般。如果生成效果不好,试试用英文 prompt。
语音转文字(Whisper)
with open("audio.mp3", "rb") as audio_file:
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
language="zh"
)
print(transcript.text)
Whisper 的实际体验:中文转写质量不错,但长音频(>25MB)需要分片。API 有文件大小限制。
Function Calling
import json
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称"
}
},
"required": ["city"]
}
}
}
]
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "北京天气怎么样?"}],
tools=tools,
tool_choice="auto"
)
message = response.choices[0].message
if message.tool_calls:
tool_call = message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
print(f"调用工具:{tool_call.function.name}")
print(f"参数:{args}")
# 执行实际工具逻辑,然后把结果返回给模型
Function Calling 的核心:description 和 parameters 的质量决定模型能不能正确调用。description 写不清楚,模型就选错工具或传错参数。
错误处理
from openai import APIError, RateLimitError
try:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "你好"}]
)
except RateLimitError:
print("请求过于频繁,请稍后重试")
except APIError as e:
print(f"API 错误:{e}")
生产环境必须做的:加重试(tenacity 库很方便),设 timeout,记录错误日志。API 偶尔超时是正常的,不要因为一次超时就报错给用户。
成本控制
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "简短介绍一下自己"}],
max_tokens=200
)
省钱技巧:
- 日常对话用
gpt-4o-mini(便宜很多),复杂推理再用gpt-4o - 设
max_tokens防止输出过长 - System prompt 里要求"简洁回答"
- 缓存高频问题的回答
常见问题
API Key 无效
检查复制是否正确,账户是否有余额。
响应速度慢
用 gpt-4o-mini,减少 max_tokens,检查网络。
Token 超限
减少上下文长度,分段处理长文档。
下一步学习
- 对比 Claude API:Claude API 使用教程
- 构建 AI Agent:AI Agent 开发教程
- 搭建 RAG 应用:RAG 教程
---
本文最后更新于 2026-07-08。代码示例基于 openai Python SDK,请根据最新版本调整。保障 API 调用稳定性
调用 OpenAI、Anthropic 等海外 API 时,网络波动可能导致请求超时或失败。稳定的网络环境有助于提升开发效率。
⚠️ 请遵守所在地的法律法规和服务条款。使用 AI API 时请遵守各平台的使用政策。
了解安全上网方案 →常见问题
相关推荐
获取更多 AI 内容
订阅更新,第一时间获取新教程和工具推荐。