用 OpenAI SDK 调 Gemini API:只改 base_url、key 和模型名的接入教程
2026年6月14日 · 9 分钟阅读 · GPT / Gemini / Claude

Google 已经把话说得很直:Gemini API 支持 OpenAI compatibility,可以用 OpenAI Python SDK、JavaScript SDK 和 REST 调用;官方示例里的 base_url 是 https://generativelanguage.googleapis.com/v1beta/openai/,模型名是 gemini-3.5-flash(Google AI for Developers)。
这对已有 OpenAI SDK 代码的团队很实用。你不需要重写一套 client,不需要改消息结构,先把三处配置换掉,跑通,再决定要不要用 Gemini 原生能力。

先看要改哪三处
Google 文档在示例后写得很清楚:变化就是 api_key、base_url、model 三项。OpenAI Python SDK 本身也支持配置 base_url 或 OPENAI_BASE_URL(openai-python),Node SDK 对应字段是 baseURL(openai-node)。
最小 Python 示例:
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": "你是一个简洁的技术助手。"},
{"role": "user", "content": "用一句话解释什么是向量数据库。"},
],
)
print(resp.choices[0].message.content)
如果你的老代码已经在用 client.chat.completions.create(),大概率只需要把初始化 client 的地方抽成配置项。别在业务函数里硬编码模型名,后面切 Batch、Flex 或换模型会更痛。
Node.js 也是同一套路
JavaScript 版本只把字段名从 base_url 换成 baseURL:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.GEMINI_API_KEY,
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/",
});
const resp = await client.chat.completions.create({
model: "gemini-3.5-flash",
messages: [{ role: "user", content: "给我一个 Redis 限流方案。" }],
});
console.log(resp.choices[0].message.content);
REST 也能直接打:POST https://generativelanguage.googleapis.com/v1beta/openai/chat/completions,请求头用 Authorization: Bearer $GEMINI_API_KEY。这点适合先用 curl 排除 SDK、代理、环境变量问题。

价格别凭感觉,按输出算
截至 2026-06-14,Gemini 官方 pricing 页列出的 gemini-3.5-flash 标准价是输入 $1.50 / 1M tokens、输出 $9.00 / 1M tokens,Batch 和 Flex 都是输入 $0.75 / 1M tokens、输出 $4.50 / 1M tokens(Gemini API pricing)。官方还写明输出价包含 thinking tokens,所以推理型任务不要只盯输入价。
| 模式 | 输入 / 1M tokens | 输出 / 1M tokens | 适合场景 |
|---|---|---|---|
| Standard | $1.50 | $9.00 | 在线请求、低延迟 |
| Batch | $0.75 | $4.50 | 离线批处理 |
| Flex | $0.75 | $4.50 | 可接受弹性调度 |
我的建议很简单:聊天、Agent、编辑器插件先走 Standard;日志总结、数据清洗、离线评测尽量走 Batch/Flex。输出长的任务,成本差距会被放大。
迁移时最容易踩的坑
第一,base_url 末尾的 /openai/ 不要漏。很多 404、模型不存在,本质是打到了 Gemini 原生路径,不是兼容路径。
第二,环境变量分清楚。OPENAI_API_KEY 可以继续给 OpenAI 用,Gemini 建议单独放 GEMINI_API_KEY,不要让 CI 里两个 provider 抢同一个变量。
第三,先跑 models.list()。Google 文档给了列模型和取模型的示例,生产前用它确认账号区域、权限、模型 ID 都没问题。
第四,流式、函数调用、图像输入这些能力在兼容层有示例,但别默认所有 OpenAI 参数都一比一支持。先用一条真实业务请求做回归。
如果你想少维护一套 key
如果团队同时用 Claude、GPT、Gemini,逐个申请、绑卡、配限额很烦。省事路径是用 onehop:把 OpenAI SDK 的 base_url 改成 https://api.onehop.ai/v1,用 onehop 的 key,就能走 OpenAI/Anthropic 兼容接口调用 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="gemini-3.5-flash",
messages=[{"role": "user", "content": "把这段报错日志总结成三条原因。"}],
)
print(resp.choices[0].message.content)
想试 Claude 或多模型路由,可以直接看:在 onehop 上调用 Claude 等模型。想先跑一个小样例,不想绑卡,走这个入口:注册即送 $10 体验额度。
结论:先做成配置,不要写死供应商
这次 Gemini 的 OpenAI compatibility 最有价值的地方,不是“又多一个模型”,而是迁移成本足够低。把 base_url、api_key、model 放进配置,业务代码继续用 OpenAI SDK 的 chat completions。
跑通后再补三件事:记录输入/输出 tokens,按任务选择 Standard 或 Batch/Flex,把模型 ID 做成灰度开关。这样你今天接 Gemini,明天接 Claude 或别的兼容服务,都不会再动核心业务代码。
相关阅读

使用 OpenAI SDK 调用 Groq GPT-OSS 120B:Base URL、定价与缓存
只需替换 OpenAI SDK 的 base URL,即可在 Groq 上运行 GPT-OSS 120B,估算缓存 token 成本,并避免工具计费意外。
2026年6月17日 · 18 分钟阅读

用 OpenAI SDK 调 Gemini API:只改 base_url、API Key 和模型名的迁移教程
面向已有 OpenAI SDK 项目的 Gemini 兼容接口迁移清单,含代码、参数映射和价格。
2026年6月14日 · 9 分钟阅读

用 OpenAI SDK 调用 Gemini:只改 base_url、API Key 和模型名的接入教程
Google 已支持 OpenAI 兼容接口,改 base_url、Key 和模型名即可接入 Gemini。
2026年6月14日 · 11 分钟阅读