快速答案与 Gemini API 配额层级对照表
在开发 AI 应用、调用翻译脚本或使用第三方客户端(如 Cherry Studio / NextChat / OpenWebUI)接入 Gemini 时,最常遭遇的就是控制台弹出的 429 Too Many Requests: RESOURCE_EXHAUSTED 错误。
以下为 Google 官方最新速率与配额限制矩阵:
| 计划层级 | 每分钟请求数 (RPM) | 每分钟 Token 数 (TPM) | 每日请求上限 (RPD) | 计费模式 | 适用场景 |
|---|---|---|---|---|---|
| 免费版 (Free Tier) | 15 RPM (极易在并发时超限) | 1,000,000 TPM | 1,500 RPD | 100% 免费 (数据可能用于模型质量改进) | 个人测试、轻量实验 |
| 按量付费 (Pay-as-you-go) | 1,000 RPM (提升近 70 倍) | 4,000,000 TPM | 无硬性每日上限 | 按实际 Token 消耗扣费,私域数据绝不用于训练 | 商业生产环境、高并发 SaaS |
解决步骤一:在 Google AI Studio 升级为按量付费(根本解决)
如果您需要在生产环境稳定运行,必须开启 GCP 绑卡结算:
- 打开 Google AI Studio 控制台(aistudio.google.com)。
- 点击左下角的 “Get API key”。
- 找到您的项目,点击 “Set up billing”(设置结算)。
- 关联一个绑定了国际双币信用卡(Visa/MasterCard)的 Google Cloud Platform (GCP) 结算账号。
- 开启结算后,当前 API Key 会自动从 Free Tier 升级为 Pay-as-you-go,RPM 限制瞬间提升至 1000 次/分,彻底终结 429 报错。
解决步骤二:在代码中实现“指数退避重试” (Exponential Backoff)
如果网络偶发瞬时峰值,优雅的客户端重试算法能够保证程序不崩溃:
Python 代码健壮重试示例:
import time
import google.generativeai as genai
from google.api_core.exceptions import ResourceExhausted
genai.configure(api_key="YOUR_API_KEY")
model = genai.GenerativeModel("gemini-1.5-flash")
def generate_with_retry(prompt, max_retries=5):
delay = 2
for attempt in range(max_retries):
try:
response = model.generate_content(prompt)
return response.text
except ResourceExhausted:
if attempt == max_retries - 1:
raise
print(f"⚠️ 触发 429 限流,正在等待 {delay} 秒后发起第 {attempt + 1} 次重试...")
time.sleep(delay)
delay *= 2 # 指数级递增:2s -> 4s -> 8s -> 16s
TypeScript / Node.js 异步重试示例:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
async function callWithRetry(prompt: string, retries = 5, delay = 2000): Promise<string> {
try {
const result = await model.generateContent(prompt);
return result.response.text();
} catch (error: any) {
if (error?.status === 429 && retries > 0) {
console.warn(`[429 限流] ${delay}ms 后进行重试... 剩余重试次数: ${retries}`);
await new Promise((resolve) => setTimeout(resolve, delay));
return callWithRetry(prompt, retries - 1, delay * 2);
}
throw error;
}
}
解决步骤三:高低搭配——将重型任务与轻量任务分流
不要将所有简单任务都无脑发送给开销昂贵的 gemini-1.5-pro:
gemini-1.5-flash: 成本仅为 Pro 的 1/10,且配额吞吐量极大,适合绝大部分清洗、摘要、分类场景;gemini-1.5-pro: 仅在需要深度代码重构、长逻辑推理时才发起调用。
常见错误与避坑指南
- 短时间内并发循环请求未加防抖: 在写爬虫或批量翻译脚本时,必须在循环间加入
asyncio.sleep()或令牌桶限流算法。 - 多进程共享同一个 Free API Key: 多进程会瞬间放大 RPM 消耗,生产环境建议配置 Key 轮询池或直接开启 Pay-as-you-go。
常见问题解答 (FAQ)
Q1:为什么我刚发了一条请求就立即提示 429?
检查您发送的单次上下文 Token 是否过大。例如如果您一次性上传了包含 150 万 Token 的视频或长文档,虽然 RPM 只有 1 次,但瞬时消耗直接击穿了免费版 1,000,000 TPM 的每分钟 Token 额度。
Q2:Google Cloud 免费赠送的 $300 美元赠金可以用来抵扣 Gemini API 吗?
完全可以。新用户在 GCP 绑卡后赠送的 $300 美元赠金额度,可直接用于抵扣 Google AI Studio / Vertex AI 中的所有 Gemini 1.5 Pro 和 Flash 模型调用费用。
Q3:如何申请更高阶的企业级专用配额?
如果 1,000 RPM 依然无法满足千万级日活业务需求,可在 Google Cloud Console 中迁移至 Vertex AI 专有集群,并向 Google 销售团队提交 Quota Increase 配额提升工单。
Q4:第三方客户端接入 Gemini 为什么经常报 429?
很多第三方客户端默认并发请求数设置过高(例如同时并发抓取 20 条网页摘要),瞬时请求数轻易击穿了 15 RPM 限制。在客户端设置中将并发线程数(Concurrency)限制为 2~3 即可缓解。
Q5:如何实时监控 API 的 Token 消耗与剩余配额?
在 Google Cloud Console(console.cloud.google.com)进入“API 和服务” → “指标(Metrics)”,可查看每分钟 RPM、TPM 与错误率曲线。