用 Python 3 分钟对接 5 家大模型 API:不切账号的懒人方案

0 阅读5分钟

用 Python 3 分钟对接 5 家大模型 API:不切账号的懒人方案

本文适合:正在用或准备用 AI API 的 Python 开发者 阅读时间:5 分钟 | 代码可直接复制运行


痛点:你是不是也在这样切账号?

写代码用 Claude,聊天用 GPT,长文档丢给 Gemini,推理任务交给 DeepSeek……

然后你的项目里就出现了这种东西:

from openai import OpenAI
from anthropic import Anthropic
import google.generativeai as genai

openai_client = OpenAI(api_key="sk-xxx")
anthropic_client = Anthropic(api_key="sk-ant-xxx")
genai.configure(api_key="AIza-xxx")

# 三个 SDK,三套认证,三份账单
# 还没算 DeepSeek 和 Mistral...

每加一个模型,就多一个 SDK、一个 API Key、一份账单。项目越大越乱。

有没有一种方式,一个 Key 搞定所有模型?

有。用 API 网关。


思路:API 网关 = AI 的菜鸟驿站

你不会每个快递公司都注册一个账号,你用菜鸟驿站统一收件。

API 网关做的事一样:

你的代码 → API 网关 → OpenAI / Anthropic / Google / DeepSeek / ...

你只需要对接网关,网关帮你转发到各家 API。一个 Key,一个 base_url,一份账单。

市面上有不少选择(OpenRouter、Requesty 等),这篇用 Crazyrouter 做演示——539 个模型,按量付费,不用月费。


实战:5 个模型,同一套代码

准备工作

pip install openai

没错,只需要 OpenAI 的 SDK。因为网关兼容 OpenAI 格式,所有模型都用同一个接口。

from openai import OpenAI

client = OpenAI(
    base_url="https://crazyrouter.com/v1",  # 改这一行
    api_key="你的网关 Key"                    # 改这一行
)

# 搞定。下面所有模型都用这个 client

示例 1:GPT-4o-mini — 日常对话

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "用一句话解释什么是 API 网关"}],
    max_tokens=60
)
print(response.choices[0].message.content)

返回:

API 网关是一个管理、路由和处理 API 请求的中间层,提供安全、监控和负载均衡等功能。

示例 2:Claude Sonnet 4 — 写代码

response = client.chat.completions.create(
    model="claude-sonnet-4-20250514",
    messages=[{"role": "user", "content": "Python 快速排序,5行以内"}],
    max_tokens=150
)
print(response.choices[0].message.content)

返回:

def quicksort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    return quicksort([x for x in arr if x < pivot]) + [x for x in arr if x == pivot] + quicksort([x for x in arr if x > pivot])

注意:代码完全一样,只改了 model 参数。

示例 3:DeepSeek-R1 — 推理任务

response = client.chat.completions.create(
    model="deepseek-r1",
    messages=[{"role": "user", "content": "一个房间里有100个人,99%离开了,还剩几个人?"}],
    max_tokens=100
)
print(response.choices[0].message.content)

DeepSeek-R1 擅长逻辑推理,这类"陷阱题"它能正确回答:剩 1 个人

示例 4:Gemini 3 Pro — 长上下文

response = client.chat.completions.create(
    model="gemini-3-pro",
    messages=[{"role": "user", "content": "概括 Python 的 GIL 问题,50字以内"}],
    max_tokens=60
)
print(response.choices[0].message.content)

Gemini 3 Pro 支持超长上下文窗口,适合丢整份文档进去做摘要。

示例 5:DALL-E 3 — 生成图片

response = client.images.generate(
    model="dall-e-3",
    prompt="一只戴着程序员帽子的猫在写 Python 代码,赛博朋克风格",
    size="1024x1024"
)
print(response.data[0].url)

同一个 client,不只能聊天,还能生图。这是大多数网关做不到的——它们只支持 LLM 文本补全。


算一笔账

模型官方价格 (输入/1M tokens)网关价格省多少
GPT-4o-mini$0.15~$0.0847%
Claude Sonnet 4$3.00~$1.6545%
DeepSeek-R1$0.55~$0.3045%
Gemini 3 Pro$1.25~$0.6945%
DALL-E 3$0.04/张~$0.02/张50%

假设你每月用 500 万 tokens(中等用量):

  • 直接对接官方:~$25-40
  • 通过网关:~$14-22
  • 每月省 1018,一年省10-18,一年省 120-216

量越大省越多。而且你省掉的不只是钱,还有管理 5 个账号的时间。


进阶玩法

流式输出

stream = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "讲个程序员笑话"}],
    stream=True
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

用 Anthropic SDK 格式

如果你的项目已经用了 Anthropic SDK,也不用改:

from anthropic import Anthropic

client = Anthropic(
    base_url="https://crazyrouter.com",  # Anthropic 格式不加 /v1
    api_key="你的网关 Key"
)

message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=100,
    messages=[{"role": "user", "content": "hello"}]
)

封装一个多模型调用函数

def ask(model: str, prompt: str, **kwargs) -> str:
    """一行调用任意模型"""
    r = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
        **kwargs
    )
    return r.choices[0].message.content

# 用法
print(ask("gpt-4o-mini", "写个正则匹配邮箱"))
print(ask("claude-sonnet-4-20250514", "review 这段代码有没有 bug"))
print(ask("deepseek-r1", "证明根号2是无理数"))

FAQ

Q: 延迟会增加多少? A: 网关转发增加约 5-20ms,对大多数场景可忽略。流式输出首 token 延迟基本无感。

Q: 数据安全怎么样? A: 网关只做转发,不存储对话内容。和你直接调官方 API 一样,数据直达模型提供商。

Q: 和 OpenRouter 有什么区别? A: OpenRouter 在官方价格上加价 10-30%,而且只支持 LLM 文本。Crazyrouter 价格低于官方,且支持图片生成、语音、视频等多模态模型。

Q: 支持哪些模型? A: 539+ 个模型,覆盖 OpenAI、Anthropic、Google、DeepSeek、Mistral、Meta 等主流厂商。完整列表见 模型定价页

Q: 怎么注册? A: 打开 crazyrouter.com,注册后在控制台生成 API Key,充值即用。没有月费,纯按量计费。


总结

对比项直接对接各家 API通过 API 网关
SDK 数量每家一个1 个 (openai)
API Key每家一个1 个
账单每家一份1 份
切换模型改 SDK + 认证改 model 字符串
价格官方原价约 55%
多模态各家各的接口统一接口

如果你只用一个模型,直接对接官方没问题。但如果你像大多数开发者一样,需要在多个模型之间切换——API 网关能帮你省掉大量胶水代码和管理成本。


觉得有用的话点个赞 👍 收藏一下,以后对接新模型不用再翻文档了。