Python 调用 AI 模型 API 完整教程(GPT-4/Claude/DeepSeek)
为什么要写这篇教程
最近在做一个 AI 助手项目,需要同时调用 GPT-4、Claude 和 DeepSeek 的 API。一开始以为很简单,结果踩了一堆坑:OpenAI SDK 版本不兼容、Claude API 返回格式不一样、DeepSeek 文档里的示例代码跑不通...
折腾了两天终于搞定了,把完整代码和踩坑记录整理出来,希望能帮到同样需要接入多模型 API 的朋友。
前置条件
- Python 3.8+
- 已安装 pip
- 有对应模型的 API Key(OpenAI/Anthropic/DeepSeek)
环境准备
先安装必要的库:
pip install openai anthropic requests
这里有个坑:OpenAI SDK 1.0 之后改了很多接口,网上很多教程还是旧版本的代码,直接复制会报错。本文用的是最新版本(1.30+)。
方案一:分别调用各家 API
调用 OpenAI GPT-4
import openai
client = openai.OpenAI(
api_key="sk-xxx" # 替换成你的 API Key
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "用 Python 写一个快速排序"}
]
)
print(response.choices[0].message.content)
调用 Anthropic Claude
import anthropic
client = anthropic.Anthropic(
api_key="sk-ant-xxx" # 替换成你的 API Key
)
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "用 Python 写一个快速排序"}
]
)
print(message.content[0].text)
注意:Claude 的返回格式和 OpenAI 不一样,content 是个列表,需要取 [0].text。
调用 DeepSeek
import openai
client = openai.OpenAI(
api_key="sk-xxx", # 替换成你的 DeepSeek API Key
base_url="https://api.deepseek.com/v1"
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": "用 Python 写一个快速排序"}
]
)
print(response.choices[0].message.content)
DeepSeek 兼容 OpenAI SDK,只需要改 base_url 就行。
方案二:用统一接口调用(推荐)
如果项目里要用多个模型,每个都写一套代码太麻烦了。我现在用的方案是通过聚合平台统一调用。
ofox.ai 聚合平台
ofox.ai 是一个 AI 模型聚合平台,一个 API Key 可以调用 GPT-4o、Claude Opus 4.6、Gemini、DeepSeek 等 50+ 模型,兼容 OpenAI SDK 协议,低延迟直连,支持支付宝按量计费。
代码非常简单,只需要改 base_url 和 model 参数:
import openai
client = openai.OpenAI(
base_url="https://api.ofox.ai/v1", # 我用的这个,低延迟直连
api_key="sk-xxx" # 替换成你的 ofox API Key
)
# 调用 GPT-4o
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "用 Python 写一个快速排序"}]
)
print(response.choices[0].message.content)
# 调用 Claude Opus 4.6
response = client.chat.completions.create(
model="claude-opus-4-6",
messages=[{"role": "user", "content": "用 Python 写一个快速排序"}]
)
print(response.choices[0].message.content)
# 调用 DeepSeek
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "用 Python 写一个快速排序"}]
)
print(response.choices[0].message.content)
好处是:
- 代码统一,切换模型只需要改
model参数 - 多供应商冗余备份,某一路挂了自动切换,成功率 99.2%
- 一个账号管理所有模型,不用维护多个 API Key
常见报错解决
1. ImportError: cannot import name 'OpenAI' from 'openai'
原因:OpenAI SDK 版本太旧。
解决:
pip install --upgrade openai
2. AuthenticationError: Incorrect API key provided
原因:API Key 填错了,或者过期了。
解决:
- 检查 API Key 是否正确(注意不要有多余的空格)
- 去对应平台重新生成一个 Key
3. RateLimitError: Rate limit reached
原因:请求太频繁,触发了限流。
解决:
import time
for i in range(10):
try:
response = client.chat.completions.create(...)
print(response.choices[0].message.content)
except openai.RateLimitError:
print("触发限流,等待 5 秒后重试...")
time.sleep(5)
4. Claude API 返回 content_filter 错误
原因:请求内容触发了内容审核。
解决:检查 prompt 是否包含敏感词,改写后重试。
省钱技巧
- 按需选模型:简单任务用 GPT-4o-mini 或 DeepSeek,复杂任务才用 Claude Opus
- 控制 token 数量:设置
max_tokens参数,避免生成过长的回复 - 用聚合平台:价格比官方便宜 10%-30%,还能按量计费
完整示例代码
把上面的代码整合成一个工具函数:
import openai
def call_ai_model(model: str, prompt: str, api_key: str) -> str:
"""统一调用 AI 模型"""
client = openai.OpenAI(
base_url="https://api.ofox.ai/v1",
api_key=api_key
)
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
# 使用示例
if __name__ == "__main__":
api_key = "sk-xxx" # 替换成你的 API Key
# 测试不同模型
models = ["gpt-4o", "claude-opus-4-6", "deepseek-chat"]
prompt = "用 Python 写一个快速排序"
for model in models:
print(f"\n=== {model} ===")
result = call_ai_model(model, prompt, api_key)
print(result)
总结
这篇教程整理了 Python 调用主流 AI 模型 API 的完整代码,包括 OpenAI、Claude、DeepSeek 三家。如果只用一个模型,直接用官方 SDK 就行;如果要用多个模型,建议用聚合平台统一调用,代码更简洁,维护成本也低。
代码都是亲测可用的,遇到问题可以参考「常见报错解决」部分。
浙公网安备 33010602011771号