Google 为其强大的 Gemini 模型提供了免费的 API 密钥,无需绑定信用卡即可快速上手。对于开发者和小型项目而言,其免费额度相当慷慨,足以满足日常的开发、测试与学习需求。

与其他主流 AI 服务相比,Gemini 的免费政策极具吸引力。例如,OpenAI 必须绑定信用卡,而 Claude 则需要企业验证。Gemini 仅需一个 Google 账号,三分钟内即可完成申请。

免费额度详解

Google 为不同模型设定了差异化的免费配额,以满足不同场景的需求。免费额度的重置时间为太平洋时间每日午夜(北京时间下午 3 点)。

免费层级核心限制(2025 年 8 月更新)

限制项目 Gemini 1.5 Flash Gemini 1.5 Pro
每分钟请求数 (RPM) 15 5
每天请求数 (RPD) 1,500 50
每分钟 Token 数 (TPM) 1,000,000 32,000
上下文窗口 1,000,000 Tokens 2,000,000 Tokens
免费试用期 永久 永久

免费版 vs. 付费版

免费层级功能齐全,包含所有模型访问、批处理和流式响应。与付费版的主要区别在于:

  • 数据隐私:免费层级的数据可能被用于模型改进,而付费层级提供数据隐私保护。
  • 服务等级协议 (SLA):免费层级无 SLA 保证,付费层级承诺 99.9% 的可用性。
  • 请求优先级:免费层级不设优先队列,高峰时段可能出现延迟。

对于原型开发和测试,免费额度绰绰有余。若需部署到生产环境,建议评估成本后升级至付费版。

注意:自 2025 年 4 月 29 日起,新创建的项目可能无法立即访问 Gemini 1.5 Pro 和 Flash 的某些实验性功能,通常需要 7-14 天的活跃使用记录后方可申请。

如何获取免费的 Gemini API Key

获取 API 密钥的流程非常简单,全程无需支付信息或等待审核。

申请步骤

  1. 准备 Google 账号 确保你拥有一个活跃的 Google 账号。建议使用注册时间超过 30 天的主账号,以获取更高级模型的访问权限。

  2. 访问 Google AI Studio 在浏览器中打开 Google AI Studio 的 API 密钥页面。首次访问时,你需要同意 Google API 服务条款和 Gemini API 附加条款。

  3. 创建 API 密钥 点击 “Create API key” 按钮。系统会提示你选择一个现有的 Google Cloud 项目或创建一个新项目。建议为每个应用创建独立的项目,以便于管理配额和监控用量。

  4. 生成并保存密钥 项目选定后,系统会立即生成一个 API 密钥。请立即复制并妥善保存这个密钥,因为它只会出现一次。密钥通常以 AIzaSy 开头,共 39 位字符。如果遗忘,只能重新生成。

安全配置

为保障安全,强烈建议通过环境变量来管理你的 API 密钥,切勿将其硬编码在代码中或提交到 Git 仓库

Linux / macOS

export GEMINI_API_KEY="your-api-key-here"

Windows PowerShell

$env:GEMINI_API_KEY="your-api-key-here"

在 Python 代码中,你可以这样读取和使用它:

import os
import google.generativeai as genai

# 从环境变量中读取 API 密钥
api_key = os.environ.get('GEMINI_API_KEY')
genai.configure(api_key=api_key)

# 测试调用
model = genai.GenerativeModel('gemini-1.5-flash')
response = model.generate_content("你好, Gemini!")
print(response.text)

中国开发者解决方案

由于网络访问限制,中国开发者直连 Google 服务可能会遇到困难。以下是三种经过验证的可行方案。

方案一:API 中转服务

对于追求稳定性的个人和企业开发者,使用 API 中转服务是最高效的选择。这类服务在国内架设服务器,将你的请求转发至 Google 官方 API。

优势:

  • 国内直连:无需配置网络代理,延迟低。
  • 支付便捷:通常支持微信、支付宝等本地支付方式。
  • 格式兼容:部分服务提供与 OpenAI 兼容的 API 格式,方便迁移现有应用。
  • 技术支持:提供中文技术支持。

使用中转服务时,通常会替换 API 的请求地址,并使用服务商提供的密钥。

// 示例:使用 API 中转服务
const API_ENDPOINT = '
const PROXY_API_KEY = 'your-proxy-service-api-key';

async function callGemini(prompt) {
  const response = await fetch(`${API_ENDPOINT}/generate`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${PROXY_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'gemini-1.5-flash',
      messages: [{ role: 'user', content: prompt }]
    })
  });
  return await response.json();
}

方案二:自建海外服务器中转

如果你具备一定的技术能力且对数据安全有更高要求,可以在海外云服务器(如新加坡、日本或美西节点)上自行部署一个反向代理服务。

  • 技术栈:可使用 Nginx、Cloudflare Workers 或 Vercel Edge Functions 等工具实现。
  • 成本:每月成本约 5-20 美元。
  • 优势:数据链路完全可控,安全性高。

方案三:浏览器插件(仅限测试)

对于个人学习和轻度调试,可以通过浏览器插件(如 ModHeader)修改请求头,配合合适的网络工具直接在 Google AI Studio 网页上进行操作。此方案不稳定,不适用于任何生产环境。

额度优化与扩展策略

通过合理的策略,可以最大化免费额度的使用效率。

1. 智能缓存

对于重复或相似的请求,引入缓存机制可以有效减少不必要的 API 调用。一个简单的基于哈希值的内存缓存就能将重复调用率降低 40-60%。

import hashlib
from datetime import datetime, timedelta

# 一个简单的 API 响应缓存类
class GeminiCache:
    def __init__(self, ttl_hours=24):
        self.cache = {}
        self.ttl = timedelta(hours=ttl_hours)

    def get_key(self, prompt, model):
        content = f"{model}:{prompt}"
        return hashlib.md5(content.encode()).hexdigest()

    def get(self, prompt, model):
        key = self.get_key(prompt, model)
        if key in self.cache:
            entry = self.cache[key]
            if datetime.now() - entry['time'] < self.ttl:
                return entry['response']
        return None

    def set(self, prompt, model, response):
        key = self.get_key(prompt, model)
        self.cache[key] = {'response': response, 'time': datetime.now()}

# 使用缓存调用 API
cache = GeminiCache()

def call_gemini_with_cache(prompt, model='gemini-1.5-flash'):
    cached_response = cache.get(prompt, model)
    if cached_response:
        print("命中缓存!")
        return cached_response

    print("调用 API...")
    model_instance = genai.GenerativeModel(model)
    response = model_instance.generate_content(prompt)
    cache.set(prompt, model, response.text)
    return response.text

2. 批处理与请求合并

将多个独立的短请求合并成一个批处理请求,可以显著提高吞吐量。例如,将 10 个独立的翻译任务合并为一次 API 调用,请求数就能从 10 次降为 1 次,从而更好地利用 RPM(每分钟请求数)配额。

3. 多账号轮换(仅限开发测试)

在合规的前提下,开发者可以使用多个 Google 账号申请独立的免费额度,并通过轮换机制来扩展总请求量。这需要一个管理系统来监控每个密钥的用量,并在接近限额时自动切换。此方法仅适用于开发和测试阶段,生产环境应升级至付费方案。

常见问题与排查

常见错误代码

错误代码 信息 原因分析 解决方案
400 Invalid API key 密钥格式错误或已被删除。 重新生成密钥,并确保完整复制。
429 Rate limit exceeded 超过了 RPM 或 RPD 限制。 等待 60 秒后重试,或优化调用频率。
403 Permission denied Google Cloud 项目权限不足或 API 未启用。 检查项目设置,确认 Generative Language API 已启用。
500 Internal server error Google 服务端临时性问题。 稍后重试,建议实现指数退避重试策略。

API 密钥无法使用怎么办?

  1. 检查密钥格式:确认密钥是以 AIzaSy 开头的 39 位字符串。
  2. 检查项目配置:确保你使用的密钥与当前配置的 Google Cloud 项目匹配。
  3. 确认 API 已启用:在新项目中,可能需要手动进入 Google Cloud Console 启用 “Generative Language API”。
  4. 检查账号状态:确认你的 Google 账号没有因违反服务条款而被限制。

👉 如果你需要 ChatGPT 代充 / Claude / Claude Code / 镜像 / 中转 API