本页面介绍如何使用通过 Vertex AI Search 获得的数据来提供接地回答。
利用您的数据让 Gemini 接地
如果您想进行检索增强生成 (RAG),请将模型关联到您的网站数据或文档集,然后依托 Vertex AI Search 进行接地。
利用数据接地最多支持 10 个 Vertex AI Search 数据源,并且可以与依托 Google 搜索进行接地相结合。
支持的模型
本部分列出了支持利用数据接地的模型。
- Gemini 2.5 Flash (预览版)
 - Gemini 2.5 Flash-Lite (预览版)
 - Gemini 2.5 Flash-Lite
 - Gemini 2.5 Flash(支持 Live API 原生音频功能) (预览版)
 - 支持 Live API 的 Gemini 2.0 Flash (预览版)
 - Gemini 2.5 Pro
 - Gemini 2.5 Flash
 - Gemini 2.0 Flash
 
前提条件
在利用自己的数据将模型输出接地之前,请先执行以下操作:
在 Google Cloud 控制台中,前往 IAM 页面,然后搜索
discoveryengine.servingConfigs.search权限,这是接地服务正常运行所必需的权限。启用 AI Applications 并激活该 API。
如需了解详情,请参阅 Vertex AI Search 简介。
启用 AI Applications
在 Google Cloud 控制台中,前往 AI Applications 页面。
阅读并同意服务条款,然后点击继续并激活 API。
AI Applications 在 global 位置或 eu 和 us 多区域提供。如需了解详情,请参阅 AI Applications 位置
在 AI Applications 中创建数据存储区
如需在 AI Applications 中创建数据存储区,您可以选择利用网站数据或文档来接地。
网站
在 Google Cloud 控制台中打开创建数据存储区页面。
在网站内容框中,点击选择。
系统会显示为数据存储区指定网站窗格。如果未勾选高级网站索引编制,请勾选高级网站索引编制复选框以将其开启。系统会显示
配置数据存储区窗格。在指定要编制索引的网址格式部分中,执行以下操作:
- 添加要包含的网站的网址。
 - 可选:添加要排除的网站的网址。
 
点击继续。
在配置数据存储区窗格中,
- 从数据存储区的位置列表中选择一个值。
 - 在您的数据存储区名称字段中输入一个名称。系统会生成 ID。在利用数据存储区生成接地回答时,请使用此 ID。如需了解详情,请参阅利用数据存储区生成接地回答。
 - 点击创建。
 
文档
在 Google Cloud 控制台中打开创建数据存储区页面。
在 Cloud Storage 框中,点击选择。
系统会显示从 Cloud Storage 导入数据窗格。在非结构化文档(PDF、HTML、TXT 等)部分中,选择非结构化文档(PDF、HTML、TXT 等)。
选择同步频率选项。
选择选择您要导入的文件夹或文件选项,然后在相应字段中输入路径。
点击继续。系统会显示
配置数据存储区窗格。在配置数据存储区窗格中,
- 从数据存储区的位置列表中选择一个值。
 - 在您的数据存储区名称字段中输入一个名称。系统会生成 ID。
 - 如需为文档选择解析和分块选项,请展开文档处理选项部分。如需详细了解不同的解析器,请参阅解析文档。
 - 点击创建。
 
点击创建。
利用数据存储区生成接地回答
按照以下说明利用您的数据让模型接地。最多支持 10 个数据存储区。
如果您不知道数据存储区 ID,请按以下步骤操作:
在 Google Cloud 控制台中,前往 AI Applications 页面,然后在导航菜单中点击数据存储区。
点击您的数据存储区的名称。
在数据存储区的数据页面上,获取数据存储区 ID。
控制台
如需在Google Cloud 控制台中使用 Vertex AI Studio 利用 AI Applications 让模型输出接地,请按以下步骤操作:
- 在 Google Cloud 控制台中,前往 Vertex AI Studio 自由格式页面。
 - 如需开启接地功能,请点击接地:您的数据切换开关。
 - 点击自定义。
      
- 选择 Vertex AI Search 作为来源。
 - 使用以下路径格式,替换数据存储区的项目 ID 和数据存储区的 ID:
projects/project_id/locations/global/collections/default_collection/dataStores/data_store_id。
 
 - 点击保存。
 - 在文本框中输入提示,然后点击提交。
 
您的提示回答会利用 AI Applications 接地。
Python
安装
pip install --upgrade google-genai
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
from google import genai
from google.genai.types import (
    GenerateContentConfig,
    VertexAISearch,
    Retrieval,
    Tool,
    HttpOptions,
)
client = genai.Client(http_options=HttpOptions(api_version="v1"))
# Replace with your Vertex AI Search data store details
DATA_STORE_PATH = "projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID"
tool = Tool(
    retrieval=Retrieval(
        vertex_ai_search=VertexAISearch(
            data_store=DATA_STORE_PATH
        )
    )
)
response = client.models.generate_content(
    model="gemini-2.5-flash",  # Or another supported model
    contents="What information can you find about topic X in the provided documents?", # Your query
    config=GenerateContentConfig(
        tools=[tool],
    ),
)
print(response.text)
REST
如需使用 Vertex AI API 测试文本提示,请向发布方模型端点发送 POST 请求。
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:处理请求的区域。如需使用 
global端点,请清除端点名称中的相应位置,并将资源位置配置为global。 - PROJECT_ID:您的项目 ID。
 - MODEL_ID:多模态模型的模型 ID。
 - PROMPT:要发送给模型的提示。
 
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
请求 JSON 正文:
{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "PROMPT"
    }]
  }],
  "tools": [{
    "retrieval": {
      "vertexAiSearch": {
        "datastore": projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID
      }
    }
  }],
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "You can make an appointment on the website https://dmv.gov/"
          }
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        "..."
      ],
      "groundingMetadata": {
        "retrievalQueries": [
          "How to make appointment to renew driving license?"
        ],
        "groundingChunks": [
          {
            "retrievedContext": {
              "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AXiHM.....QTN92V5ePQ==",
              "title": "dmv"
            }
          }
        ],
        "groundingSupport": [
          {
            "segment": {
              "startIndex": 25,
              "endIndex": 147
            },
            "segment_text": "ipsum lorem ...",
            "supportChunkIndices": [1, 2],
            "confidenceScore": [0.9541752, 0.97726375]
          },
          {
            "segment": {
              "startIndex": 294,
              "endIndex": 439
            },
            "segment_text": "ipsum lorem ...",
            "supportChunkIndices": [1],
            "confidenceScore": [0.9541752, 0.9325467]
          }
        ]
      }
    }
  ],
  "usageMetadata": {
    "..."
  }
}
理解回答
这两个 API 的回答都包含 LLM 生成的文本,称为候选回答。如果您的模型提示成功接地到数据源,则回答会包含接地元数据,用于标识回答中源自数据的部分。但是,有多种原因可能会导致此元数据无法提供,并且提示回答不会接地。这些原因包括模型回答中的来源相关性低或信息不完整。
以下是输出数据的细分:
- 角色:指示接地回答的发送者。由于回答始终包含接地的文本,因此角色始终为 
model。 - 文本:由 LLM 生成的接地的回答。
 - 接地元数据:有关接地来源的信息,包含以下元素:
- 接地块:来自索引且支持回答的结果列表。
 - 接地支持:回答中有关特定声明的信息,可用于显示引用:
 - 片段:模型回答中由接地块证实的部分。
 - 接地块索引:接地块列表中与相应声明对应的接地块的索引。
 - 置信度得分:一个介于 0 到 1 之间的数字,表示声明在所提供的接地块集中的接地程度。不适用于 Gemini 2.5 及更高版本。