Skip to Content

07d - API 集成指南

本文是《AI Agent 实战手册》第 7 章第 4 节。 上一节:多模态能力实战 | 下一节:Claude-GPT-Gemini 对比

概述

Gemini API 是 Google 提供的开发者接口,用于访问从 Gemini 2.5 Flash-Lite 到 Gemini 3.1 Pro 的完整模型家族。API 提供三种接入层级——免费层(适合原型开发)、付费层(适合生产应用)和企业层(Vertex AI,适合大规模部署)。本节将系统讲解认证设置、价格体系、速率限制和 SDK 使用,帮助你从零开始将 Gemini 集成到实际项目中。


1. 认证设置

Gemini API 提供三种认证方式,适用于不同场景:API Key(最简单)、OAuth 2.0(团队协作)和 Service Account(生产部署)。

工具推荐

工具用途价格适用场景
Google AI Studio API Key 生成与在线测试免费快速获取 API Key、Prompt 调试
Google Cloud Console 项目管理与凭证配置免费(平台本身)OAuth、Service Account 配置
gcloud CLI 命令行认证管理免费本地开发 ADC 认证、自动化脚本
Vertex AI 企业级 API 接入按用量计费生产部署、合规需求、VPC 内访问

操作步骤

方式 1:API Key(推荐入门)

最简单的认证方式,适合个人开发和原型验证。

步骤 1:获取 API Key

  1. 访问 Google AI Studio 
  2. 登录 Google 账号
  3. 点击左侧菜单 “API Keys” → “Create API Key”
  4. 选择或创建一个 Google Cloud 项目
  5. 复制生成的 API Key

步骤 2:安全存储 API Key

# 方式 A:环境变量(推荐) export GEMINI_API_KEY="your-api-key-here" # 方式 B:.env 文件(配合 dotenv 库) echo 'GEMINI_API_KEY=your-api-key-here' >> .env # 确保 .env 已加入 .gitignore echo '.env' >> .gitignore

步骤 3:API Key 安全限制

Google Cloud Console  中为 API Key 添加限制:

  • 应用限制:按 IP 地址、HTTP Referrer 或 Android/iOS 应用限制
  • API 限制:仅允许访问 “Generative Language API”

方式 2:OAuth 2.0(团队协作)

适合需要用户级权限控制的应用,如多人协作平台。

# 1. 在 Google Cloud Console 创建 OAuth 2.0 客户端 ID # APIs & Services → Credentials → Create Credentials → OAuth client ID # 2. 下载客户端配置文件 # 保存为 client_secret.json # 3. 使用 gcloud 进行本地 OAuth 认证 gcloud auth application-default login
# Python:使用 OAuth 认证访问 Gemini API(通过 Vertex AI) from google import genai # ADC(Application Default Credentials)自动检测本地 OAuth 凭证 client = genai.Client( vertexai=True, project="your-project-id", location="us-central1" ) response = client.models.generate_content( model="gemini-3.1-pro", contents="你好,请介绍一下你自己。" ) print(response.text)

方式 3:Service Account(生产部署)

适合服务器端应用、CI/CD 管线和无人值守的自动化场景。

# 1. 创建 Service Account gcloud iam service-accounts create gemini-api-sa \ --display-name="Gemini API Service Account" # 2. 授予 Vertex AI 权限 gcloud projects add-iam-policy-binding your-project-id \ --member="serviceAccount:gemini-api-sa@your-project-id.iam.gserviceaccount.com" \ --role="roles/aiplatform.user" # 3. 生成密钥文件 gcloud iam service-accounts keys create key.json \ --iam-account=gemini-api-sa@your-project-id.iam.gserviceaccount.com # 4. 设置环境变量 export GOOGLE_APPLICATION_CREDENTIALS="./key.json"
# Python:使用 Service Account 认证 from google import genai # 自动读取 GOOGLE_APPLICATION_CREDENTIALS 环境变量 client = genai.Client( vertexai=True, project="your-project-id", location="us-central1" ) response = client.models.generate_content( model="gemini-3.1-pro", contents="分析以下代码的安全漏洞..." )

认证方式对比

认证方式复杂度安全性适用场景支持 Vertex AI
API Key⭐ 最简单中等个人开发、原型验证❌ 仅 Developer API
OAuth 2.0⭐⭐ 中等团队协作、用户级权限
Service Account⭐⭐⭐ 较复杂最高生产部署、CI/CD、自动化

提示词模板

你是一位 DevOps 工程师,请帮我为以下场景选择最合适的 Gemini API 认证方式: 场景描述:[描述你的应用场景,如:一个 SaaS 产品的后端服务,需要调用 Gemini API 处理用户上传的文档] 请考虑以下因素: 1. 安全性要求 2. 部署环境(本地/云端/容器) 3. 团队规模 4. 是否需要 Vertex AI 的企业功能 输出:推荐的认证方式、配置步骤、安全注意事项。

2. 价格体系

Gemini API 采用按 token 计费的模式,不同模型和上下文长度有不同的价格阶梯。2026 年 2 月的最新价格如下。

2.1 核心模型价格对比

模型输入(≤200K)输入(>200K)输出(含思考)上下文缓存输入Batch 输入折扣
Gemini 3.1 Pro$2.00/1M$4.00/1M$12.00/1M(≤200K)$18.00/1M(>200K)$0.20/1M50% off
Gemini 3 Pro$2.00/1M$4.00/1M$12.00/1M(≤200K)$18.00/1M(>200K)$0.20/1M50% off
Gemini 3 Flash$0.50/1M$3.00/1M$0.05/1M50% off
Gemini 2.5 Pro$1.25/1M$2.50/1M$10.00/1M(≤200K)$15.00/1M(>200K)$0.125/1M50% off
Gemini 2.5 Flash$0.30/1M$2.50/1M$0.03/1M50% off
Flash-Lite$0.10/1M$0.40/1M$0.01/1M50% off

💡 关键发现:Gemini 3.1 Pro 与 3 Pro 价格完全相同,但推理性能翻倍(ARC-AGI-2 从 31.1% 到 77.1%)。这意味着升级到 3.1 Pro 是”免费”的性能提升。

2.2 免费层 vs 付费层

特性免费层付费层
费用$0按用量计费
可用模型2.5 Pro/Flash/Flash-Lite(3 Pro/3.1 Pro 不可用)全部模型
速率限制5-15 RPM150-4,000+ RPM
上下文缓存
Batch API✅(50% 折扣)
数据用于改进产品✅ 是❌ 否
适用场景学习、原型验证生产应用

2.3 成本优化策略

策略节省幅度适用场景
上下文缓存输入成本降低 90%重复分析同一文档/代码库
Batch API所有成本降低 50%非实时批量处理(24h 内返回)
模型降级75-95%简单任务用 Flash-Lite 替代 Pro
200K 阈值管理输入成本降低 50%控制 prompt 在 200K tokens 以内
思考预算控制输出成本降低 30-70%简单任务设置 thinking_level: "LOW"

实战案例:月度成本估算

假设一个中型 SaaS 产品,每天处理 1,000 次用户请求:

场景:AI 代码审查助手 - 每次请求:平均 5,000 输入 tokens + 2,000 输出 tokens - 日请求量:1,000 次 - 月请求量:30,000 次 方案 A:全部使用 Gemini 3.1 Pro 输入:30,000 × 5,000 / 1M × $2.00 = $300 输出:30,000 × 2,000 / 1M × $12.00 = $720 月总计:$1,020 方案 B:简单请求用 Flash,复杂请求用 Pro(70/30 分流) Flash 输入:21,000 × 5,000 / 1M × $0.50 = $52.50 Flash 输出:21,000 × 2,000 / 1M × $3.00 = $126 Pro 输入:9,000 × 5,000 / 1M × $2.00 = $90 Pro 输出:9,000 × 2,000 / 1M × $12.00 = $216 月总计:$484.50(节省 52%) 方案 C:方案 B + Batch API(非实时部分) 月总计:约 $290(节省 72%)

3. 速率限制与配额层级

Gemini API 通过四个维度控制速率:RPM(每分钟请求数)、TPM(每分钟 token 数)、RPD(每日请求数)和 IPM(每分钟图片数)。

3.1 配额层级体系

层级解锁条件RPM 范围TPMRPD
Free无需付费5-15250,000100-1,000
Tier 1绑定付费账号150-3001,000,000-4,000,00010,000-30,000
Tier 2累计消费 $250 + 30 天1,000-2,0004,000,000+无限制
Tier 3累计消费 $1,000 + 30 天4,000+自定义无限制

3.2 各模型免费层速率限制

模型RPMRPDTPM
Gemini 2.5 Pro5100250,000
Gemini 2.5 Flash10250250,000
Flash-Lite151,000250,000
Gemini 3 Pro / 3.1 Pro—(免费层不可用)
Gemini 3 Flash10250250,000

3.3 速率限制错误处理

当超过速率限制时,API 返回 HTTP 429 错误。推荐使用指数退避策略:

import time import random from google import genai client = genai.Client(api_key="your-api-key") def call_with_retry(prompt: str, max_retries: int = 5) -> str: """带指数退避的 API 调用""" for attempt in range(max_retries): try: response = client.models.generate_content( model="gemini-3.1-pro", contents=prompt ) return response.text except Exception as e: if "429" in str(e) and attempt < max_retries - 1: wait_time = (2 ** attempt) + random.uniform(0, 1) print(f"速率限制,等待 {wait_time:.1f}s 后重试...") time.sleep(wait_time) else: raise return ""
import { GoogleGenAI } from "@google/genai"; const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY }); async function callWithRetry(prompt: string, maxRetries = 5): Promise<string> { for (let attempt = 0; attempt < maxRetries; attempt++) { try { const response = await ai.models.generateContent({ model: "gemini-3.1-pro", contents: prompt, }); return response.text ?? ""; } catch (error: any) { if (error?.status === 429 && attempt < maxRetries - 1) { const waitTime = Math.pow(2, attempt) + Math.random(); console.log(`速率限制,等待 ${waitTime.toFixed(1)}s 后重试...`); await new Promise((r) => setTimeout(r, waitTime * 1000)); } else { throw error; } } } return ""; }

4. SDK 安装与基础使用

Google 于 2025 年初推出了全新的 Google GenAI SDK(google-genai / @google/genai),取代了旧版 google-generativeai / @google/generative-ai 库。新 SDK 提供统一的 Client 架构,支持在 Developer API 和 Vertex AI 之间无缝切换。

工具推荐

工具用途价格适用场景
google-genai(Python) Python SDK免费(开源)Python 后端、数据处理、脚本
@google/genai(Node.js) TypeScript/JS SDK免费(开源)Node.js 后端、全栈应用
Gemini API Cookbook 官方代码示例集免费(开源)学习参考、快速上手
Gemini CLI 终端 AI 助手免费(开源)命令行快速测试、脚本集成

操作步骤

步骤 1:安装 SDK

# Python pip install -U google-genai # Node.js / TypeScript npm install @google/genai # Go go get google.golang.org/genai

⚠️ 注意:如果你之前使用的是旧版 SDK(google-generativeai@google/generative-ai),请迁移到新版。旧版已停止更新。

步骤 2:基础文本生成(Python)

import os from google import genai # 创建客户端(Developer API) client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) # 基础文本生成 response = client.models.generate_content( model="gemini-3.1-pro", contents="请用 Python 实现一个线程安全的 LRU 缓存。" ) print(response.text) # 查看 token 使用量 print(f"输入 tokens: {response.usage_metadata.prompt_token_count}") print(f"输出 tokens: {response.usage_metadata.candidates_token_count}") print(f"总 tokens: {response.usage_metadata.total_token_count}")

步骤 3:基础文本生成(TypeScript)

import { GoogleGenAI } from "@google/genai"; // 创建客户端 const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY }); // 基础文本生成 const response = await ai.models.generateContent({ model: "gemini-3.1-pro", contents: "请用 TypeScript 实现一个线程安全的 LRU 缓存。", }); console.log(response.text); // 查看 token 使用量 console.log(`输入 tokens: ${response.usageMetadata?.promptTokenCount}`); console.log(`输出 tokens: ${response.usageMetadata?.candidatesTokenCount}`); console.log(`总 tokens: ${response.usageMetadata?.totalTokenCount}`);

步骤 4:流式输出(Python)

import os from google import genai client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) # 流式生成——逐块返回,适合实时展示 for chunk in client.models.generate_content_stream( model="gemini-3.1-pro", contents="请详细解释 Rust 的所有权系统。" ): print(chunk.text, end="", flush=True) print() # 换行

步骤 5:流式输出(TypeScript)

import { GoogleGenAI } from "@google/genai"; const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY }); // 流式生成 const stream = await ai.models.generateContentStream({ model: "gemini-3.1-pro", contents: "请详细解释 Rust 的所有权系统。", }); for await (const chunk of stream) { process.stdout.write(chunk.text ?? ""); } console.log(); // 换行

步骤 6:系统指令与生成配置(Python)

import os from google import genai from google.genai import types client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) response = client.models.generate_content( model="gemini-3.1-pro", contents="审查以下 Python 代码的安全性:\n```python\nimport os\nos.system(input('Enter command: '))\n```", config=types.GenerateContentConfig( system_instruction="你是一位资深安全工程师,专注于代码安全审查。对每个发现的问题,给出严重等级(Critical/High/Medium/Low)、问题描述和修复建议。", temperature=0.2, # 低温度 = 更确定性的输出 max_output_tokens=4096, # 最大输出长度 top_p=0.95, top_k=40, response_mime_type="application/json", # 结构化 JSON 输出 ) ) print(response.text)

步骤 7:系统指令与生成配置(TypeScript)

import { GoogleGenAI } from "@google/genai"; const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY }); const response = await ai.models.generateContent({ model: "gemini-3.1-pro", contents: '审查以下 Python 代码的安全性:\n```python\nimport os\nos.system(input("Enter command: "))\n```', config: { systemInstruction: "你是一位资深安全工程师,专注于代码安全审查。对每个发现的问题,给出严重等级(Critical/High/Medium/Low)、问题描述和修复建议。", temperature: 0.2, maxOutputTokens: 4096, topP: 0.95, topK: 40, responseMimeType: "application/json", }, }); console.log(response.text);

5. 高级功能

5.1 思考模式(Thinking)

Gemini 3.1 Pro 支持三级思考控制(Low / Medium / High),可根据任务复杂度调整推理深度。

from google import genai from google.genai import types import os client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) # 高思考模式——适合复杂推理任务 response = client.models.generate_content( model="gemini-3.1-pro", contents="证明:对于所有正整数 n,1² + 2² + ... + n² = n(n+1)(2n+1)/6", config=types.GenerateContentConfig( thinking_config=types.ThinkingConfig(thinking_level="HIGH") ) ) # 查看思考过程(如果可用) for part in response.candidates[0].content.parts: if part.thought: print(f"💭 思考过程:\n{part.text}\n") else: print(f"📝 最终回答:\n{part.text}")
import { GoogleGenAI } from "@google/genai"; const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY }); const response = await ai.models.generateContent({ model: "gemini-3.1-pro", contents: "证明:对于所有正整数 n,1² + 2² + ... + n² = n(n+1)(2n+1)/6", config: { thinkingConfig: { thinkingLevel: "HIGH" }, }, }); // 查看思考过程 for (const part of response.candidates?.[0]?.content?.parts ?? []) { if (part.thought) { console.log(`💭 思考过程:\n${part.text}\n`); } else { console.log(`📝 最终回答:\n${part.text}`); } }

5.2 上下文缓存

对于需要重复分析同一大型文档或代码库的场景,上下文缓存可将输入成本降低 90%。

from google import genai from google.genai import types import os client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) # 上传大型代码库文件 code_file = client.files.upload(file="./large_codebase.zip") # 创建缓存(有效期 2 小时) cache = client.caches.create( model="gemini-3.1-pro", config=types.CreateCachedContentConfig( display_name="codebase-review", system_instruction="你是一位高级代码审查员。基于提供的代码库回答问题。", contents=[code_file], ttl="7200s", # 2 小时有效期 ) ) # 第一轮:架构分析(缓存命中,输入成本降低 90%) r1 = client.models.generate_content( model="gemini-3.1-pro", contents="请分析这个代码库的整体架构,画出模块依赖图。", config=types.GenerateContentConfig(cached_content=cache.name) ) print(r1.text) # 第二轮:安全审查(同一缓存,无需重新上传) r2 = client.models.generate_content( model="gemini-3.1-pro", contents="请检查代码中的安全漏洞,重点关注 SQL 注入和 XSS。", config=types.GenerateContentConfig(cached_content=cache.name) ) print(r2.text) # 缓存存储费用:$4.50/1M tokens/小时 # 对比直接输入:如果代码库 500K tokens,每次查询输入成本 $2.00 # 使用缓存:首次 $2.00 + 后续每次 $0.10 + 存储 $2.25/小时

5.3 函数调用(Function Calling)

让 Gemini 调用你定义的外部函数,实现 Agent 工作流。

from google import genai from google.genai import types import os, json client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) # 定义工具 tools = [ types.Tool(function_declarations=[ types.FunctionDeclaration( name="get_weather", description="获取指定城市的当前天气信息", parameters=types.Schema( type="OBJECT", properties={ "city": types.Schema(type="STRING", description="城市名称"), "unit": types.Schema( type="STRING", enum=["celsius", "fahrenheit"], description="温度单位" ), }, required=["city"], ), ), types.FunctionDeclaration( name="search_flights", description="搜索航班信息", parameters=types.Schema( type="OBJECT", properties={ "origin": types.Schema(type="STRING", description="出发城市"), "destination": types.Schema(type="STRING", description="目的城市"), "date": types.Schema(type="STRING", description="出发日期 YYYY-MM-DD"), }, required=["origin", "destination", "date"], ), ), ]) ] response = client.models.generate_content( model="gemini-3.1-pro", contents="我下周三想从北京飞上海,帮我查一下航班和上海的天气。", config=types.GenerateContentConfig(tools=tools) ) # 处理函数调用 for part in response.candidates[0].content.parts: if part.function_call: print(f"调用函数: {part.function_call.name}") print(f"参数: {json.dumps(dict(part.function_call.args), ensure_ascii=False)}")

5.4 Developer API 与 Vertex AI 无缝切换

新版 SDK 的核心优势之一是可以在 Developer API 和 Vertex AI 之间无缝切换,代码几乎不需要修改。

from google import genai # 方式 A:Developer API(API Key 认证) client_dev = genai.Client(api_key="your-api-key") # 方式 B:Vertex AI(ADC / Service Account 认证) client_vertex = genai.Client( vertexai=True, project="your-project-id", location="us-central1" ) # 两种方式的调用代码完全相同 for client in [client_dev, client_vertex]: response = client.models.generate_content( model="gemini-3.1-pro", contents="Hello, Gemini!" ) print(response.text)
import { GoogleGenAI } from "@google/genai"; // 方式 A:Developer API const aiDev = new GoogleGenAI({ apiKey: "your-api-key" }); // 方式 B:Vertex AI const aiVertex = new GoogleGenAI({ vertexai: true, project: "your-project-id", location: "us-central1", }); // 调用代码完全相同 for (const ai of [aiDev, aiVertex]) { const response = await ai.models.generateContent({ model: "gemini-3.1-pro", contents: "Hello, Gemini!", }); console.log(response.text); }

5.5 Token 计数与成本预估

在发送请求前预估 token 消耗,避免意外成本。

from google import genai import os client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) # 预估 token 数量 count_response = client.models.count_tokens( model="gemini-3.1-pro", contents="这是一段需要预估 token 数量的文本..." ) print(f"预估 token 数: {count_response.total_tokens}") # 成本计算 input_tokens = count_response.total_tokens estimated_output = 2000 # 预估输出 tokens input_cost = input_tokens / 1_000_000 * 2.00 # $2.00/1M output_cost = estimated_output / 1_000_000 * 12.00 # $12.00/1M print(f"预估成本: ${input_cost + output_cost:.4f}")

6. 模型选择指南

6.1 Gemini 模型家族速查

模型模型 ID上下文窗口最佳用途性价比
Gemini 3.1 Progemini-3.1-pro1M tokens复杂推理、Agentic 编码、数学证明⭐⭐⭐
Gemini 3 Progemini-3-pro1M tokens多模态理解、Computer Use⭐⭐⭐
Gemini 3 Flashgemini-3-flash1M tokens高速推理、搜索增强、日常编码⭐⭐⭐⭐
Gemini 2.5 Progemini-2.5-pro1M tokens稳定生产、长文档分析⭐⭐⭐⭐
Gemini 2.5 Flashgemini-2.5-flash1M tokens高吞吐、实时应用⭐⭐⭐⭐⭐
Flash-Litegemini-2.5-flash-lite1M tokens大规模分类、简单提取⭐⭐⭐⭐⭐

6.2 场景选择决策树

你的任务是什么? ├─ 复杂推理 / 数学 / 竞赛编程 │ └─ → Gemini 3.1 Pro(thinking_level: HIGH) ├─ Agentic 工作流 / 自主编码 │ └─ → Gemini 3.1 Pro 或 3 Pro ├─ 多模态理解(图像/视频/音频) │ ├─ 需要精确分析 → Gemini 3 Pro │ └─ 够用就好 → Gemini 3 Flash ├─ 长文档分析(>200K tokens) │ ├─ 预算充足 → Gemini 3.1 Pro │ └─ 控制成本 → Gemini 2.5 Flash ├─ 实时对话 / 低延迟 │ └─ → Gemini 3 Flash 或 2.5 Flash ├─ 大规模批量处理 │ ├─ 需要高质量 → Gemini 3.1 Pro + Batch API │ └─ 简单任务 → Flash-Lite + Batch API └─ 学习 / 原型验证(免费) └─ → Gemini 2.5 Flash(免费层)

实战案例:从零搭建 AI 代码审查服务

场景

搭建一个自动化代码审查服务:接收 GitHub PR webhook,使用 Gemini 3.1 Pro 审查代码变更,将审查结果作为 PR 评论发布。

操作流程

import os, json from google import genai from google.genai import types client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) def review_code_changes(diff: str, file_path: str) -> dict: """使用 Gemini 3.1 Pro 审查代码变更""" # 预估 token 数量 count = client.models.count_tokens( model="gemini-3.1-pro", contents=diff ) # 根据 diff 大小选择模型 model = "gemini-3.1-pro" if count.total_tokens > 5000 else "gemini-3-flash" response = client.models.generate_content( model=model, contents=f"请审查以下代码变更(文件:{file_path}):\n\n```diff\n{diff}\n```", config=types.GenerateContentConfig( system_instruction="""你是一位资深代码审查员。请从以下维度审查代码: 1. 安全性(注入、泄露、权限) 2. 性能(N+1、内存泄漏、阻塞) 3. 可维护性(命名、复杂度、重复) 4. 正确性(边界条件、错误处理) 对每个发现返回 JSON 格式: { "issues": [{"severity": "high/medium/low", "line": 行号, "description": "描述", "suggestion": "建议"}], "summary": "总体评价", "approve": true/false }""", temperature=0.1, response_mime_type="application/json", thinking_config=types.ThinkingConfig(thinking_level="MEDIUM") ) ) result = json.loads(response.text) result["model_used"] = model result["tokens_used"] = response.usage_metadata.total_token_count return result # 使用示例 diff_content = """ - password = request.form['password'] + password = hashlib.sha256(request.form['password'].encode()).hexdigest() + if len(password) < 8: + return "Password too short", 400 """ review = review_code_changes(diff_content, "auth/login.py") print(json.dumps(review, ensure_ascii=False, indent=2))

案例分析

  • 智能模型路由:小 diff 用 Flash($0.50/1M),大 diff 用 Pro($2.00/1M),平均节省 60% 成本
  • 思考模式选择:代码审查用 MEDIUM 思考级别,平衡质量和速度;安全审计可升级到 HIGH
  • 结构化输出response_mime_type: "application/json" 确保输出可直接解析,无需额外处理
  • 成本控制:通过 count_tokens 预估后选择模型,避免简单任务浪费 Pro 的算力

避坑指南

❌ 常见错误

  1. 使用旧版 SDK(google-generativeai

    • 问题:旧版 SDK 已停止更新,不支持 Gemini 3.x 系列模型和新功能(思考模式、Computer Use 等)
    • 正确做法:迁移到新版 google-genai(Python)或 @google/genai(Node.js),参考 迁移指南 
  2. 在代码中硬编码 API Key

    • 问题:API Key 泄露到 Git 仓库,可能被恶意使用产生高额费用
    • 正确做法:使用环境变量或密钥管理服务(如 Google Secret Manager、AWS Secrets Manager);在 Google Cloud Console 中为 API Key 添加 IP/Referrer 限制
  3. 忽略 200K token 价格阶梯

    • 问题:超过 200K tokens 的 prompt,输入价格翻倍($2→$4/1M),输出价格也上涨($12→$18/1M)
    • 正确做法:使用 count_tokens 预估;对于大型输入,考虑使用上下文缓存或分块处理
  4. 免费层用于生产环境

    • 问题:免费层速率极低(5-15 RPM),且数据会被用于改进 Google 产品
    • 正确做法:生产环境必须使用付费层;敏感数据场景考虑 Vertex AI 企业层
  5. 不处理 429 速率限制错误

    • 问题:突发流量导致大量请求失败,用户体验差
    • 正确做法:实现指数退避重试;使用请求队列控制并发;监控 RPM/TPM 使用率
  6. 所有任务都用最贵的模型

    • 问题:简单的文本分类、摘要任务用 Gemini 3.1 Pro,成本是 Flash-Lite 的 20 倍
    • 正确做法:建立模型路由策略——简单任务用 Flash-Lite,中等任务用 Flash,复杂任务用 Pro

✅ 最佳实践

  1. 建立模型路由策略:根据任务复杂度自动选择模型,可节省 50-80% 成本
  2. 善用 Batch API:非实时任务(报告生成、批量分析)使用 Batch API 可节省 50%
  3. 上下文缓存常态化:对于重复分析同一文档的场景,缓存可将输入成本降低 90%
  4. 监控 token 使用量:在每次请求后记录 usage_metadata,建立成本仪表板
  5. 设置预算告警:在 Google Cloud Console 中设置月度预算上限和告警阈值
  6. 思考预算精细化:简单任务用 thinking_level: "LOW",复杂推理用 "HIGH",日常用 "MEDIUM"

免费资源最大化利用指南

Google AI Studio 是目前全球最慷慨的免费 AI 开发资源之一。以下是如何最大化利用免费额度的实战策略。

Google AI Studio 免费层详解

资源免费额度限制备注
Gemini 2.5 Pro5 RPM / 100 RPD250K TPM旗舰级推理能力,开发阶段够用
Gemini 2.5 Flash10 RPM / 250 RPD250K TPM速度快,适合日常开发
Gemini 2.5 Flash-Lite15 RPM / 1,000 RPD250K TPM极低延迟,适合高频轻量任务
Gemini 3 Flash10 RPM / 250 RPD250K TPM新一代 Flash,编码能力接近 Pro
Gemini 图像生成约 500 张/天速率限制免费生成高质量图像
Gemma 3 全系列通过 Ollama 本地运行完全免费仅受本地硬件限制1B/4B/12B/27B 四种尺寸

💡 Gemma 3 是隐藏的宝藏:虽然 Gemma 3 不是 Gemini,但 Google 的 Gemma 3 开源模型家族(1B 到 27B 参数)可以通过 Ollama 在本地完全免费运行,无速率限制、无数据隐私顾虑。Gemma 3 27B 的编码和推理能力已接近 GPT-4o mini 水平,对于开发阶段的 Prompt 调试和本地测试非常实用。

免费层实战策略

# 策略 1:本地 Gemma 3 + 云端 Gemini 混合使用 # 安装 Ollama 并下载 Gemma 3 ollama pull gemma3:27b # 27B 参数,需要 16GB+ 内存 ollama pull gemma3:12b # 12B 参数,需要 8GB+ 内存 ollama pull gemma3:4b # 4B 参数,需要 4GB+ 内存 # 日常开发用本地 Gemma 3(无限制) ollama run gemma3:27b "请用 Python 实现一个 LRU 缓存" # 复杂任务用云端 Gemini 2.5 Pro 免费层 curl -s "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent?key=$GEMINI_API_KEY" \ -H "Content-Type: application/json" \ -d '{"contents":[{"parts":[{"text":"分析这段代码的安全漏洞..."}]}]}'
策略 2:免费层速率限制下的开发工作流 开发阶段($0 成本): ├── Prompt 调试 → Google AI Studio 在线 Playground(无需 API 调用) ├── 本地测试 → Ollama + Gemma 3 27B(无限制) ├── 复杂推理 → Gemini 2.5 Pro 免费层(5 RPM,够用) ├── 快速迭代 → Gemini 2.5 Flash 免费层(10 RPM) └── 图像生成 → Gemini 图像 API 免费层(~500 张/天) 生产阶段(按需付费): ├── 升级到付费层(绑定信用卡即可,按用量计费) ├── 使用 Gemini 3 Flash($0.50/1M 输入,性价比极高) └── 批量任务用 Batch API(额外 50% 折扣)

注意事项

  • 免费层数据可能用于 Google 模型改进,生产环境建议使用付费层
  • 速率限制在高峰期可能更严格,建议实现重试逻辑
  • Gemini 3 Pro 和 3.1 Pro 目前不提供免费层,需要付费使用
  • Google 可能随时调整免费额度(2025 年 12 月曾大幅削减),建议关注官方公告

相关资源与延伸阅读

资源类型说明
Gemini API 官方文档 官方文档完整的 API 参考、教程和指南
Gemini API 定价页面 官方文档最新价格表,包含所有模型和工具定价
Gemini API 速率限制 官方文档各层级速率限制详情和升级指南
Google GenAI SDK 迁移指南 官方指南从旧版 SDK 迁移到新版的完整指南
Gemini API Cookbook GitHub 仓库官方代码示例集,覆盖各种使用场景
google-genai Python SDK PyPI 包Python SDK 安装和版本信息
@google/genai NPM 包 NPM 包TypeScript/JavaScript SDK
Gemini CLI GitHub 仓库开源终端 AI 助手,支持 Gemini 全系列模型
Google AI Studio 在线工具免费在线测试平台,可生成 API Key
Vertex AI Gemini 快速入门 官方文档企业级 Vertex AI 接入指南

参考来源


📖 返回 总览与导航 | 上一节:多模态能力实战 | 下一节:Claude-GPT-Gemini 对比

Last updated on