Gemini API File Search(RAG 工具)详解


一、它是什么?原理是什么?

File Search是 Gemini API 内置的、托管式 RAG(检索增强生成) 能力。
你把文件交给它,它会自动完成 导入 → 分块 → 向量化 → 索引
当用户提问时,它会进行语义检索,把最相关的片段作为上下文输入模型,从而得到更准确且带引用的回答
目前支持的模型包括 gemini-2.5-progemini-2.5-flash

⚙️ 基本工作流程

  1. 创建一个 File Search Store(索引容器)。
  2. 通过 uploadToFileSearchStoreimportFile 将文档导入;系统自动分块、生成嵌入向量并建立索引。
    • 原始文件 48 小时后删除;
    • 向量索引数据将长期保存。
  3. 在生成内容时启用 tools.fileSearch,模型自动执行检索并返回引用(grounding metadata)。

二、它能做什么?(设计目标与应用场景)

File Search 的设计目标是让开发者无需自建向量库或维护嵌入逻辑
你只需上传文件,剩下的由 Gemini 自动完成。

🎯 典型使用场景

  • 知识库问答 / 客服助手:基于产品文档、FAQ、手册快速回答问题并给出引用。
  • 内部文档助理:检索会议纪要、内部政策或研究资料,自动生成摘要。
  • 内容与代码搜索:支持 PDF、DOCX、TXT、JSON、源代码等多格式检索。
  • 多源融合:与 Google Search Grounding 联用,实现“内部文档 + 公网信息”并行检索。

💾 限制与存储配额

类型限制
单文件大小≤ 100 MB
Store 建议容量< 20 GB(性能最佳)
项目总容量Free 1 GB / Tier1 10 GB / Tier2 100 GB / Tier3 1 TB
Files API 原始文件48 小时有效,单文件 ≤ 2 GB,总量 20 GB
File Search 索引长期保存,约为原文大小的 3×

三、我能怎么用?(上手指南)

🧩 步骤概览

  1. 获取 Gemini API Key(Google AI Studio)。
  2. 安装 SDK(Python / JavaScript)。
  3. 创建 Store → 导入文件 → 调用模型启用 File Search 工具。

🐍 Python 示例

from google import genai
from google.genai import types
import time
 
client = genai.Client()
 
# 1) 创建 File Search Store
store = client.file_search_stores.create(
    config={'display_name': 'my-kb'}
)
 
# 2) 上传并导入文件
op = client.file_search_stores.upload_to_file_search_store(
    file="handbook.pdf",
    file_search_store_name=store.name,
    config={'display_name': 'handbook.pdf'}
)
while not op.done:
    time.sleep(2)
    op = client.operations.get(op)
 
# 3) 使用 File Search 进行问答
resp = client.models.generate_content(
    model="gemini-2.5-pro",
    contents="用3条要点总结这份手册的安全规范,并给出处。",
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                file_search=types.FileSearch(
                    file_search_store_names=[store.name]
                )
            )
        ]
    )
)
 
print(resp.text())
print(resp.candidates[0].grounding_metadata)
 

四、进阶用法与最佳实践

功能说明
🔹 自定义分块导入时传 chunking_config 调整 token 大小与重叠度
🔹 元数据过滤上传时加 custom_metadata,查询时用 metadata_filter 筛选
🔹 控制召回数量使用 topK 调节召回片段数量
🔹 展示引用读取 grounding_metadata 渲染来源/证据
🔹 混合检索同时启用 fileSearchgoogle_search,结合私有+公网来源
🔹 性能建议单 Store 控制在 20 GB 内,索引文件小于 100 MB

五、计费说明

项目计费规则
索引嵌入按嵌入模型价格(约 $0.15 / 百万 token)
存储免费
查询嵌入免费
生成时使用按上下文 token 常规计费

六、Gemini vs Vertex AI

方案适合场景
Gemini Developer API快速构建、个人与小型项目
Vertex AI企业级部署、VPC 环境、合规治理、监控需求

两者 SDK 均已统一为 Gen AI SDK,迁移无缝。

七、官方文档与资源

🧪 Google AI for Developers 官方文档 🧪 Introducing File Search 博文 🧪 @google/genai SDK 参考 🧪 Files API 限制说明 🧪 Google Search Grounding 组合使用指南