Gemini API - Google AI 模型接入指南
简介
Gemini 是 Google 的多模态大模型,通过 AI Studio 或 Vertex AI 提供 API。
核心优势:超长上下文(最高 200 万 token)和原生多模态(文本/图片/视频/音频)。
模型矩阵
| 模型 |
上下文窗口 |
特点 |
适用场景 |
| gemini-2.5-pro |
100 万 |
最强推理,思维链 |
复杂分析、代码生成 |
| gemini-2.0-flash |
100 万 |
速度快,性价比高 |
日常对话、批量处理 |
| gemini-2.0-flash-lite |
100 万 |
最快最便宜 |
简单任务、高并发 |
| gemini-1.5-pro |
200 万 |
超长上下文 |
长文档分析、代码库理解 |
SDK 安装与基础调用
pip install google-genai # 官方 SDK
from google import genai
client = genai.Client(api_key="YOUR_API_KEY")
response = client.models.generate_content(
model="gemini-2.0-flash",
contents="用 Python 实现一个快速排序算法"
)
print(response.text)
多模态能力
from google.genai import types
import pathlib
# 图片理解
image = types.Part.from_bytes(data=pathlib.Path("photo.jpg").read_bytes(), mime_type="image/jpeg")
response = client.models.generate_content(model="gemini-2.0-flash", contents=["描述图片内容", image])
# 视频理解(直接上传文件)
video_file = client.files.upload(file="video.mp4")
response = client.models.generate_content(model="gemini-2.0-flash", contents=["总结视频内容", video_file])
# 音频理解
audio_file = client.files.upload(file="audio.mp3")
response = client.models.generate_content(model="gemini-2.0-flash", contents=["转录并翻译", audio_file])
函数调用与 JSON 模式
# 函数调用
get_weather = types.FunctionDeclaration(
name="get_weather", description="获取城市天气",
parameters=types.Schema(type="OBJECT",
properties={"city": types.Schema(type="STRING", description="城市名")},
required=["city"]))
tool = types.Tool(function_declarations=[get_weather])
response = client.models.generate_content(
model="gemini-2.0-flash", contents="北京天气?",
config=types.GenerateContentConfig(tools=[tool]))
# JSON 模式
response = client.models.generate_content(
model="gemini-2.0-flash", contents="列出 3 种编程语言",
config=types.GenerateContentConfig(response_mime_type="application/json"))
上下文缓存(Context Caching)
反复查询同一大文档时可大幅降低成本:
cache = client.caches.create(model="gemini-2.0-flash", contents=[large_document],
config=types.CreateCachedContentConfig(display_name="my-cache", ttl="3600s"))
response = client.models.generate_content(model="gemini-2.0-flash", contents="第三章讲了什么?",
config=types.GenerateContentConfig(cached_content=cache.name))
定价对比(每百万 token)
| 模型 |
输入价格 |
输出价格 |
| Gemini 2.0 Flash |
$0.10 |
$0.40 |
| Gemini 2.5 Pro |
$1.25 |
$10.00 |
| Claude Sonnet 4 |
$3.00 |
$15.00 |
| GPT-4o |
$2.50 |
$10.00 |
与 OpenAI/Claude API 的差异
| 特性 |
Gemini API |
OpenAI API |
Claude API |
| 最大上下文 |
200 万 token |
12.8 万 |
20 万 |
| 原生多模态 |
文本/图片/视频/音频 |
文本/图片/音频 |
文本/图片 |
| 免费额度 |
有(AI Studio) |
无 |
无 |
| 上下文缓存 |
原生支持 |
无 |
Prompt Caching |
| SDK 风格 |
自有 + OpenAI 兼容 |
自有 |
自有 |
最佳实践