一、简介与适用场景
Google AI Studio 是目前主流大厂里免费额度最实在的一家:注册即用、不需要绑定信用卡、也不需要国内那套实名流程,而且免费档就能调用 Gemini 2.5 Flash 这种同时支持文本、图片和音频输入的多模态模型。
对新手来说它还有一个隐藏优势——Google 提供了官方的 OpenAI 兼容端点。这意味着你现有的任何 OpenAI SDK 代码,只要换掉 base_url 和 api_key 两个参数就能跑起来,不必学一套新的请求格式。
适合看这篇的情况:想零成本试用多模态能力、需要处理图片或长文档、或者想给自己的应用配一个不花钱的兜底模型。要注意的是免费档有明确的每分钟与每日请求上限,做批量任务前先算清楚配额。
二、注册与获取 Key
- 打开 Google AI Studio,用 Google 账号登录。
- 点击「Create API key」,选择一个已有的 Google Cloud 项目,或让它自动新建一个。
- Key 生成后可以随时回到该页面查看和复制,这点比 OpenAI 友好——不会一次性消失。
- 免费档到此就可以直接用了;只有当你需要突破免费配额时,才需要去 Cloud Console 绑定结算账号。
需要注意 AI Studio 的免费档默认允许 Google 使用你的输入数据来改进服务。不要把公司代码、客户资料、身份证件这类内容喂给免费档。涉密场景请走付费档或改用本地部署。
三、Base URL 与鉴权
- OpenAI 兼容 Base URL:
https://generativelanguage.googleapis.com/v1beta/openai - 鉴权方式:
Authorization: Bearer YOUR_GEMINI_KEY - 对话端点:在 Base URL 后拼
/chat/completions
这个地址长得比较特别,结尾是 /v1beta/openai 而不是常见的 /v1,很多人凭直觉填成 /v1 然后卡在 404。另外这是「兼容层」,若你要用 Gemini 的原生能力(如结构化输出的完整配置项),仍需改走 https://generativelanguage.googleapis.com/v1beta/models/... 的原生路径。
四、客户端接入示例
Cherry Studio 内置了 Gemini 供应商,直接选择即可:
- 打开「设置 → 模型服务 → Gemini」。
- API 密钥粘贴 AI Studio 里复制的字符串。
- API 地址保持默认,客户端会自动处理原生协议差异。
- 若你用的客户端只支持 OpenAI 兼容模式,就新建自定义供应商,地址填上一节那个
/v1beta/openai完整路径。 - 首次测试建议选
gemini-2.5-flash,速度快且免费配额相对宽松。
五、代码示例
curl:
curl https://generativelanguage.googleapis.com/v1beta/openai/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GEMINI_API_KEY" \
-d '{
"model": "gemini-2.5-flash",
"messages": [{"role": "user", "content": "用一句话解释什么是 API"}]
}'
Python(复用 OpenAI SDK):
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["GEMINI_API_KEY"],
base_url="https://generativelanguage.googleapis.com/v1beta/openai",
)
resp = client.chat.completions.create(
model="gemini-2.5-flash",
messages=[{"role": "user", "content": "用一句话解释什么是 API"}],
)
print(resp.choices[0].message.content)
Node.js:
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.GEMINI_API_KEY,
baseURL: 'https://generativelanguage.googleapis.com/v1beta/openai',
});
const stream = await client.chat.completions.create({
model: 'gemini-2.5-flash',
messages: [{ role: 'user', content: '用一句话解释什么是 API' }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? '');
}
六、常见错误排查
| 错误码 | 现象 | 原因 | 解决方案 |
|---|---|---|---|
| 404 | 端点找不到 | Base URL 结尾填成了 /v1 | 改为 /v1beta/openai 完整路径 |
| 400 | API key not valid | Key 复制不全或用错了项目的 Key | 回 AI Studio 页面重新复制 |
| 429 | RESOURCE_EXHAUSTED | 触发免费档的每分钟或每日配额 | 降低并发、等待配额重置,或绑定结算账号 |
| 403 | 地区不支持 | 出口 IP 所在地区未开放该服务 | 更换网络出口所在区域 |
| 200 但内容为空 | 返回结构正常但文本为空 | 命中安全过滤,回复被拦截 | 调整提示词措辞,或配置 safety settings |
| 400 | 图片输入报错 | 图片体积过大或格式不受支持 | 压缩图片,使用常见的 png / jpeg 格式 |