返回全部文章
指南

用 OpenAI SDK 调 Gemini API:只改 base_url、API Key 和模型名的迁移教程

2026年6月14日 · 9 分钟阅读 · Claude / GPT / Gemini

米白背景上的开发者迁移示意图:左侧是 OpenAI SDK 代码窗口,右侧是 Gemini API 端点卡片,中间三条赤陶色连线分别标注为 base_url、API Key、model,炭灰色小图标表示 Python、TypeScript

截至 2026-06-14,Google 的 Gemini OpenAI compatibility 文档写得很直接:已有 Python 或 TypeScript 的 OpenAI 库代码,可以通过改 API Key、base_url 和模型名接入 Gemini;文档示例模型是 gemini-3.5-flash,兼容页最后更新于 2026-05-18(Google AI for Developers)。这不是“适配层魔法”,只是把 OpenAI SDK 的请求发到 Google 提供的兼容入口。

米白背景的三步迁移流程图,左到右三个赤陶色步骤卡片:替换 GEMINI_API_KEY、替换 base_url、替换 model;底部用炭灰色细线连接 Python、TypeScript、REST 三个入口

先装 SDK,别换调用范式

如果你的项目已经在用官方 OpenAI Python SDK,保留 chat.completions.create() 就行。OpenAI 的 Python SDK 仓库仍是官方客户端来源(openai-python),Google 兼容接口吃的也是这套调用形状。

from openai import OpenAI

client = OpenAI(
    api_key="GEMINI_API_KEY",
    base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
)

resp = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[
        {"role": "system", "content": "You are a concise code reviewer."},
        {"role": "user", "content": "Review this Python function for edge cases."},
    ],
)

print(resp.choices[0].message.content)

API Key 从 Google AI Studio 创建(AI Studio API key)。注意结尾斜杠:/v1beta/openai/,不是普通 Gemini 原生接口的 /v1beta/models/...

REST 也能按 OpenAI 形状打

服务端、curl 调试、网关健康检查,不一定要 SDK。Google 兼容文档给出的 REST 路径是 /openai/chat/completions

curl "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $GEMINI_API_KEY" \
  -d '{
    "model": "gemini-3.5-flash",
    "messages": [
      {"role": "user", "content": "Give me a 5-point migration checklist."}
    ]
  }'

迁移时先跑这条。它能把 Key、模型名、网络出口、账单权限四类问题拆开,比直接在业务服务里 debug 省时间。

reasoning_effort 怎么映射

Gemini 的 thinking 控制和 OpenAI 的 reasoning_effort 有重叠,Google 明确说两者不要同时传。兼容层会把 OpenAI 风格参数映射到 Gemini thinking 参数(Google OpenAI compatibility)。

OpenAI reasoning_effort Gemini 3 thinking_level Gemini 2.5 thinking_budget
minimal minimallow 1024
low low 1024
medium medium 8192
high high 24576

要保守迁移,就先不传 reasoning_effort,让模型走默认值。要控成本,给长上下文任务加 low,再观察输出质量和 token 账单。

横向参数映射表的可视化插画,左侧炭灰色列为 OpenAI reasoning_effort 四档,右侧赤陶色列为 Gemini thinking_level 与 thinking_budget,中间用细线一一对应

价格别只看模型名

Google 官方价格页把 Gemini 2.5 Pro 和 Flash 的标准价列得很清楚,单位是每 100 万 token,输出价包含 thinking tokens(Gemini API pricing)。

模型 输入价 输出价
gemini-2.5-pro,prompt ≤ 200k $1.25 $10.00
gemini-2.5-pro,prompt > 200k $2.50 $15.00
gemini-2.5-flash,文本/图片/视频输入 $0.30 $2.50
gemini-2.5-flash,音频输入 $1.00 $2.50

我的建议:聊天、分类、轻量代码任务先上 Flash;复杂推理、长文档综合、代码重构再切 Pro。Pro 的 200k prompt 阈值会直接影响输入和输出单价,别把日志、检索片段、重复 system prompt 一股脑塞进去。

迁移清单

  1. OPENAI_API_KEY 换成 GEMINI_API_KEY,从 AI Studio 生成。
  2. base_url 改成 https://generativelanguage.googleapis.com/v1beta/openai/
  3. 把模型名改成兼容 Gemini 模型,比如 gemini-3.5-flash
  4. 先用 REST curl 测通,再接回 SDK。
  5. 暂停自定义 reasoning_effort,确认质量后再加。
  6. 记录输入、输出、thinking token 成本,尤其是 Pro 的 200k 阈值。

如果你还要接 Claude/GPT

只接 Gemini,走 Google 官方兼容入口最干净。可一旦项目里同时要 Claude、GPT、Gemini,多 Key、多账单、多 SDK 会很烦。省事路径是 onehop:OpenAI/Anthropic 兼容,base_url 改成 https://api.onehop.ai/v1,就能用同一套 OpenAI SDK 调 Claude/GPT/Gemini;它主打价格低于官方、新账号送 $10、无需绑卡。

from openai import OpenAI

client = OpenAI(
    api_key="ONEHOP_API_KEY",
    base_url="https://api.onehop.ai/v1",
)

resp = client.chat.completions.create(
    model="anthropic/claude-sonnet-4.5",
    messages=[{"role": "user", "content": "Refactor this API handler."}],
)
print(resp.choices[0].message.content)

如果你现在只是想把多模型接入跑起来,可以直接试:在 onehop 上调用 Claude 等模型,或先领额度:注册即送 $10 体验额度。迁移的关键不是换一堆抽象层,而是把变量收敛到三件事:endpoint、key、model。