文档信息

本文档详细介绍Google Gemini API的使用方法,包括2.0与2.5版本对比、1M超长上下文、Native Multimodal能力以及音频处理功能。

核心关键词

关键词说明
Gemini 2.0Google最新一代多模态模型
Gemini 2.5增强版,推理能力大幅提升
1M上下文100万token超长上下文窗口
Native Multimodal原生多模态设计
Flash轻量快速版本
Pro中端主力版本
Audio音频理解和生成
Function Calling函数调用能力
Context Caching上下文缓存
API格式REST/SDK调用

一、Gemini API概述

Google Gemini是Google DeepMind开发的大型语言模型系列,代表了Google在AI领域的技术结晶。Gemini从设计之初就采用原生多模态架构,能够同时理解和生成文本、代码、图像、音频和视频内容。与其他需要外挂模块实现多模态的模型不同,Gemini的多模态能力是内置在模型核心中的,这使其在跨模态任务中表现更为出色。

Gemini系列经历了多次重大更新。Gemini 1.0于2023年12月发布,Gemini 1.5在2024年2月推出,带来了突破性的长上下文能力。2024年底,Gemini 2.0正式发布,实现了性能和功能的双重飞跃。2025年,Gemini 2.5进一步增强了推理能力,成为当前最强大的模型之一。

二、Gemini 2.0与2.5版本对比

2.1 架构升级

Gemini 2.0系列采用了全新的Transformer架构优化,在保持低延迟的同时提升了吞吐量。2.5版本则在2.0基础上引入了增强的推理机制,能够进行更深入的多步骤思考。

特性Gemini 2.0Gemini 2.5
上下文窗口1M tokens1M tokens
多模态支持原生原生增强
推理模式标准思考模式
音频理解支持增强
工具使用Function Calling高级Function Calling
响应速度快速中等
价格定位中端高端

2.2 能力提升

Gemini 2.5相比2.0在多个维度有明显提升:

推理能力:Gemini 2.5引入了”思考模式”,模型会在生成答案前进行多步骤推理,类似于人类的思考过程。这使得复杂数学问题、逻辑推理和代码调试能力大幅提升。在MATH基准测试中,2.5版本得分从2.0的78%提升到了92%。

代码生成:2.5版本的代码生成能力达到了新的高度,支持更长更复杂的代码生成任务,代码质量和可执行性都有所提高。支持的编程语言超过20种,包括Python、JavaScript、TypeScript、Go、Rust等主流语言。

长文本理解:虽然两者都支持100万token上下文,但2.5版本在长文档理解上表现更稳定,能够准确定位和引用文档中的具体内容。

# Gemini 2.5 思考模式示例
import google.generativeai as genai
 
genai.configure(api_key="your-api-key")
 
model = genai.GenerativeModel(
    model_name='gemini-2.5-pro-preview-06-05',
    generation_config={
        'thinking_config': {
            'thinking_mode': 'thoughts_only'  # 启用思考模式
        }
    }
)
 
response = model.generate_content(
    "分析这道数学题:已知一个等差数列的首项为3,"
    "公差为5,前n项和为Sn,若S10=280,求n的取值范围。"
)
print(response.thoughts)  # 查看推理过程
print(response.text)      # 查看最终答案

2.3 版本选择建议

版本选择指南

  • 日常任务、快速响应:选择Gemini 2.0 Flash
  • 复杂推理、长文档分析:选择Gemini 2.5 Pro
  • 需要最佳效果且预算充足:选择Gemini 2.5 Ultra

三、1M超长上下文详解

Gemini最引以为傲的特性之一是支持100万token的超长上下文窗口,这在实际应用中有革命性意义。

3.1 上下文规模对比

模型上下文窗口
GPT-4o128K
Claude 3.7200K
Gemini 2.0/2.51M
Gemini 1.5 Pro1M

100万token大约等于:

  • 75万英文单词
  • 50万中文字符
  • 10小时视频的字幕
  • 完整代码库(如Linux内核)

3.2 长上下文应用场景

代码库分析:可以将整个代码仓库作为上下文输入,让AI理解代码的全貌和细节。这对于代码审查、架构分析、迁移规划等任务非常有用。

# 分析整个代码库
def analyze_codebase(repo_path):
    # 读取整个代码库内容
    all_files = []
    for root, dirs, files in os.walk(repo_path):
        for file in files:
            if file.endswith(('.py', '.js', '.ts', '.go')):
                path = os.path.join(root, file)
                with open(path, 'r', encoding='utf-8') as f:
                    all_files.append(f"# 文件: {path}\n{f.read()}")
    
    codebase_content = "\n\n".join(all_files)
    
    model = genai.GenerativeModel('gemini-2.0-pro')
    response = model.generate_content(
        f"请分析以下代码库的整体架构、主要模块和依赖关系:\n\n{codebase_content}"
    )
    return response.text

长文档处理:可以一次性处理整本书籍、长篇报告或法律文档,无需分段或摘要。

多轮对话记忆:1M上下文使得AI可以记住极长的对话历史,适合需要持续交互的应用场景。

3.3 上下文缓存优化

为了降低长上下文的成本,Gemini提供了上下文缓存功能:

# 使用上下文缓存
from google.ai import generativelanguage as ga
 
# 创建缓存
cache = genai.create_tuned_model(
    source_model='models/gemini-1.5-pro-001',
    training_data=[
        # 预加载的上下文数据
        {"text_input": "系统设定:你是某领域的专家..."}
    ],
    epoch_count=1,
    batch_size=1,
    learning_rate=0.001,
)
 
# 使用缓存进行多次调用
for query in queries:
    response = model.generate_content(
        contents=[{"parts": [{"text": f"上下文ID: {cache.name}\n问题: {query}"}]}]
    )

成本优化

上下文缓存特别适合以下场景:系统提示词固定、参考文档不变、多用户共享基础上下文。

四、Native Multimodal能力

Gemini的原生多模态设计意味着它从底层架构就支持多种模态的处理,而不是像某些模型那样通过拼接不同模块实现。

4.1 多模态输入

# 图像理解
from PIL import Image
import urllib.request
import io
 
# 从URL加载图片
url = "https://example.com/diagram.png"
image_data = urllib.request.urlopen(url).read()
image = Image.open(io.BytesIO(image_data))
 
model = genai.GenerativeModel('gemini-2.0-pro-vision')
 
response = model.generate_content([
    image,
    "请详细分析这张图表,提取所有关键数据点和趋势"
])
 
# 本地图片处理
image = Image.open("screenshot.png")
response = model.generate_content([
    image,
    "这张截图显示了什么内容?有哪些可交互元素?"
])

4.2 视频理解

Gemini可以直接处理视频内容,提取帧信息和时间序列特征:

import moviepy.editor as mp
 
# 提取视频帧
video = mp.VideoFileClip("presentation.mp4")
 
# 每10秒提取一帧
frames = []
for t in range(0, int(video.duration), 10):
    frame = video.get_frame(t)
    frames.append(Image.fromarray(frame))
 
# 批量发送给Gemini
model = genai.GenerativeModel('gemini-2.0-pro-vision')
response = model.generate_content([
    *frames,
    "这是一个演示视频的帧。请总结视频的主要内容和关键信息。"
])

4.3 图文混合理解

# 同时输入图像和文本
response = model.generate_content([
    "请比较以下两款产品的特点:",
    Image.open("product_a.png"),
    Image.open("product_b.png"),
    "\n从外观、功能、价格三个维度进行分析。"
])

五、音频处理能力

Gemini 2.0系列增强了原生音频处理能力,可以直接理解和分析音频内容。

5.1 音频输入

# 音频理解
import base64
 
def transcribe_and_analyze(audio_file):
    with open(audio_file, 'rb') as f:
        audio_data = base64.b64encode(f.read()).decode()
    
    model = genai.GenerativeModel('gemini-2.0-pro')
    
    response = model.generate_content({
        "parts": [{
            "inline_data": {
                "mime_type": "audio/wav",
                "data": audio_data
            }
        }, {
            "text": "请转录这段音频的内容,并总结主要观点。"
        }]
    })
    return response.text
 
# 会议录音分析
meeting_analysis = transcribe_and_analyze("meeting_recording.wav")
print(meeting_analysis)

5.2 音频生成

Gemini 2.0支持音频输出,可以通过Text-to-Speech生成语音内容:

# 音频生成
response = model.generate_content(
    "用简洁的语言总结今日新闻要点,然后用中文朗读出来。",
    generation_config={
        "response_modalities": ["TEXT", "AUDIO"]
    }
)
 
# 获取音频数据
if hasattr(response, 'audio'):
    audio_bytes = response.audio
    with open("summary.mp3", "wb") as f:
        f.write(audio_bytes)

5.3 应用场景

场景说明
会议记录自动转录、总结、提取待办事项
播客分析内容理解、关键信息提取
语音助手语音交互、指令执行
有声内容文本转语音、语音合成
音乐分析音频特征提取、风格识别

六、Function Calling与工具使用

6.1 基础函数调用

# 定义可调用的函数
tools = [{
    "function_declarations": [{
        "name": "get_weather",
        "description": "获取指定城市的天气信息",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "城市名称"
                },
                "unit": {
                    "type": "string",
                    "enum": ["celsius", "fahrenheit"],
                    "description": "温度单位"
                }
            },
            "required": ["location"]
        }
    }]
}]
 
model = genai.GenerativeModel(
    'gemini-2.0-pro',
    tools=tools
)
 
response = model.generate_content(
    "北京今天天气怎么样?需要带伞吗?"
)
 
# 处理函数调用
for candidate in response.candidates:
    for part in candidate.content.parts:
        if part.function_call:
            fc = part.function_call
            print(f"调用函数: {fc.name}")
            print(f"参数: {fc.args}")

6.2 链式函数调用

Gemini支持复杂的函数调用链,可以根据结果决定下一步操作:

# 多步骤任务处理
def process_user_request(user_message):
    model = genai.GenerativeModel(
        'gemini-2.0-pro',
        tools=[web_search_tool, database_tool, email_tool]
    )
    
    chat = model.start_chat()
    response = chat.send_message(user_message)
    
    # 持续处理函数调用直到完成
    while response.candidates and hasattr(response.candidates[0].content.parts[0], 'function_call'):
        for part in response.candidates[0].content.parts:
            if part.function_call:
                result = execute_function(part.function_call)
                response = chat.send_message(
                    FunctionResponse(
                        name=part.function_call.name,
                        response=result
                    )
                )
    
    return response.text

七、API调用详解

7.1 Python SDK

import google.generativeai as genai
import os
 
# 配置
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
 
# 列出可用模型
for m in genai.list_models():
    if 'generateContent' in m.supported_generation_methods:
        print(f"{m.name}: {m.description}")
 
# 模型选择
model = genai.GenerativeModel('gemini-2.0-pro')
 
# 基础调用
response = model.generate_content("请介绍一下人工智能的发展历史")
print(response.text)
 
# 流式输出
for chunk in model.generate_content(
    "详细解释量子计算原理",
    stream=True
):
    print(chunk.text, end='', flush=True)

7.2 JavaScript/Node.js SDK

import { GoogleGenerativeAI } from "@google/generative-ai";
 
const genAI = new GoogleGenerativeAI(process.env.GOOGLE_API_KEY);
 
async function main() {
    const model = genAI.getGenerativeModel({ model: "gemini-2.0-pro" });
    
    // 基础调用
    const result = await model.generateContent(
        "解释什么是机器学习"
    );
    console.log(result.response.text());
    
    // 流式输出
    const streamResult = await model.generateContentStream(
        "详细说明区块链技术"
    );
    for await (const chunk of streamResult.stream) {
        process.stdout.write(chunk.text());
    }
}

八、2026年4月定价

模型输入价格输出价格上下文
Gemini 2.5 Ultra$1.25/百万tokens$5/百万tokens1M
Gemini 2.5 Pro$0.75/百万tokens$3/百万tokens1M
Gemini 2.0 Flash$0.10/百万tokens$0.40/百万tokens1M
Gemini 2.0 Pro$0.50/百万tokens$2/百万tokens1M

免费额度

Gemini API提供免费层级,每月包含一定量的免费token,适合开发和测试使用。

九、相关资源


完成状态

本文档已完成Gemini API的全面介绍,涵盖2.0/2.5版本对比、1M上下文、多模态能力、音频处理等核心内容。