• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

OfoxAI

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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 是否包含敏感词,改写后重试。

省钱技巧

  1. 按需选模型:简单任务用 GPT-4o-mini 或 DeepSeek,复杂任务才用 Claude Opus
  2. 控制 token 数量:设置 max_tokens 参数,避免生成过长的回复
  3. 用聚合平台:价格比官方便宜 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 就行;如果要用多个模型,建议用聚合平台统一调用,代码更简洁,维护成本也低。

代码都是亲测可用的,遇到问题可以参考「常见报错解决」部分。

posted on 2026-05-03 17:00  失控的上下文  阅读(0)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3