让 Gemini 模型的回答接地

使用 Vertex AI,您可以通过以下方式为模型输出建立依据:

  • 使用 Google 搜索建立依据 - 使用公开提供的 Web 数据为模型建立依据。
  • 借助您自己的数据接地 - 使用作为数据存储区的 Vertex AI Search 中您自己的数据让模型接地(预览版)。

使用 Google 搜索建立依据

如果您想将模型与世界知识、各种主题或互联网上的最新信息相连接,请使用“借助 Google 搜索接地”功能。

使用此功能时,您必须显示 Google 搜索入口点。如需详细了解相关要求,请参阅 Google 搜索入口点

如需详细了解 Vertex AI 中的模型接地功能,请参阅接地概览

支持的模型

以下模型支持接地:

  • Gemini 1.5 Pro(仅包含文本输入)
  • Gemini 1.5 Flash(仅包含文本输入)
  • Gemini 1.0 Pro(仅包含文本输入)

支持的语言

  • 英语 (en)
  • 西班牙语 (es)
  • 日语 (ja)

按照以下说明借助公开提供的网络数据让模型接地。

注意事项

  • 如需使用“借助 Google 搜索接地”功能,您必须启用 Google 搜索入口点。如需了解详情,请参阅 Google 搜索入口点

  • 为了获得理想的结果,请使用 0.0 温度。如需详细了解如何设置此配置,请参阅模型参考文档中的 Gemini API 请求正文

  • “借助 Google 搜索接地”功能的查询次数上限为每天 100 万次。如果您需要更高的查询次数,请与支持团队联系。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:处理请求的区域。
  • PROJECT_ID:您的项目 ID
  • MODEL_ID:多模态模型的模型 ID。
  • TEXT:要包含在提示中的文本说明。

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": "TEXT"
    }]
  }],
  "tools": [{
    "googleSearchRetrieval": {}
  }],
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
   "candidates": [
     {
       "content": {
         "role": "model",
         "parts": [
           {
             "text": "Chicago weather changes rapidly, so layers let you adjust easily. Consider a base layer, a warm mid-layer (sweater-fleece), and a weatherproof outer layer."
           }
         ]
       },
       "finishReason": "STOP",
       "safetyRatings":[
       "..."
    ],
       "groundingMetadata": {
         "webSearchQueries": [
           "What's the weather in Chicago this weekend?"
         ],
         "searchEntryPoint": {
            "renderedContent": "....................."
         }
       }
     }
   ],
   "usageMetadata": { "..."
   }
 }

控制台

如需将“使用 Google 搜索建立依据”与 Vertex AI Studio 搭配使用,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Vertex AI Studio 页面。

    进入 Vertex AI Studio

  2. 点击多模态标签页。
  3. 点击打开,查看单个提示设计页面。
  4. 在侧边栏中,点击高级,查看高级设置。
  5. 点击启用接地切换开关。
  6. 点击自定义,并将 Google 搜索设置为来源。
  7. 在文本框中输入提示,然后点击提交

您的提示回答现在会以 Google 搜索为基础。

Python

如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 Python API 参考文档

import vertexai

from vertexai.generative_models import (
    GenerationConfig,
    GenerativeModel,
    Tool,
    grounding,
)

# TODO(developer): Update and un-comment below line
# project_id = "PROJECT_ID"

vertexai.init(project=project_id, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-001")

# Use Google Search for grounding
tool = Tool.from_google_search_retrieval(grounding.GoogleSearchRetrieval())

prompt = "When is the next total solar eclipse in US?"
response = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
    ),
)

print(response)

理解回答

如果您的模型提示从 Vertex AI Studio 或 API 成功连接到 Google 搜索,则回答会包含带有来源链接(网址)的元数据。但是,有多种原因可能会导致此元数据无法提供,并且提示回答不会落地。这些原因包括模型回答中的来源相关性低或信息不完整。

引用

强烈建议显示引用。可帮助用户验证发布方自身的回答,并为用户提供更多学习途径。

对来自 Google 搜索来源的回答的引用应以内嵌和汇总形式显示。请参阅下图,了解如何执行此操作。

引用示例

使用备用搜索引擎选项

客户使用 Google 搜索的接地功能不会阻止客户提供备用搜索引擎选项、将备用搜索选项设为客户应用的默认选项,或者在客户应用中显示自己的或第三方搜索建议或搜索结果,前提是任何此类非 Google 搜索服务或相关结果与依据结果和搜索入口点分开显示,且不能合理地归因于 Google 提供的结果或与 Google 提供的结果混淆。

借助您的数据让 Gemini 接地

本部分介绍如何使用 Vertex AI API 让文本回答接地到 Vertex AI Agent Builder 数据存储区。

支持的模型

以下模型支持接地:

  • Gemini 1.5 Pro(仅包含文本输入)
  • Gemini 1.5 Flash(仅包含文本输入)
  • Gemini 1.0 Pro(仅包含文本输入)

前提条件

需要满足一些前提条件才能让模型输出接地到您的数据。

  1. 启用 Vertex AI Agent Builder 并激活此 API。
  2. 创建 Vertex AI Agent Builder 数据源和应用。
  3. 在 Vertex AI Agent Builder 中将您的数据存储区与应用相关联。数据源用作在 Vertex AI 中让 Gemini 1.0 Pro 接地的基础。
  4. 为您的数据存储区启用企业版。

如需了解详情,请参阅 Vertex AI Search 简介

启用 Vertex AI Agent Builder

  1. 在 Google Cloud 控制台中,前往 Agent Builder 页面。

    Agent Builder

  2. 阅读并同意服务条款,然后点击继续并激活 API

Vertex AI Agent Builder 在 global 位置或 euus 多区域提供。如需了解详情,请参阅 Vertex AI Agent Builder 位置

在 Vertex AI Agent Builder 中创建数据存储区

如需将模型连接到源数据,您需要准备好数据并将其保存到 Vertex AI Search。为此,您需要在 Vertex AI Agent Builder 中创建数据存储区

如果您从头开始,则需要准备数据以将其注入到 Vertex AI Agent Builder 中。如需开始操作,请参阅准备数据以进行注入。注入过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。只有非结构化数据存储区支持连接功能。

准备好要注入的数据后,您可以创建搜索数据存储区。成功创建数据存储区后,创建搜索应用以关联到该存储区并启用企业版

示例:让 Gemini 1.5 Flash 模型接地

按照以下说明借助您自己的数据让模型接地。

如果您不知道数据存储区 ID,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Vertex AI Agent Builder 页面,然后在导航菜单中点击数据存储区

    前往“数据存储区”页面

  2. 点击您的数据存储区的名称。

  3. 在数据存储区的数据页面上,获取数据存储区 ID。

REST

如需使用 Vertex AI API 测试文本提示,请向发布方模型端点发送 POST 请求。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:处理请求的区域。
  • PROJECT_ID:您的项目 ID
  • MODEL_ID:多模态模型的模型 ID。
  • TEXT:要包含在提示中的文本说明。

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": "TEXT"
    }]
  }],
  "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?"
         ]
       }
     }
   ],
   "usageMetadata": { "..."
   }
 }

Python

如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 Python API 参考文档

import vertexai

from vertexai.preview.generative_models import grounding
from vertexai.generative_models import GenerationConfig, GenerativeModel, Tool

# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"
# data_store_path = "projects/{project_id}/locations/{location}/collections/default_collection/dataStores/{data_store_id}"

vertexai.init(project=project_id, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-001")

tool = Tool.from_retrieval(
    grounding.Retrieval(grounding.VertexAISearch(datastore=data_store_path))
)

prompt = "How do I make an appointment to renew my driver's license?"
response = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
    ),
)

print(response)

控制台

如需在 Google Cloud 控制台中使用 Vertex AI Studio 将模型输出连接到 Vertex AI Agent Builder,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Vertex AI Studio 页面。

    进入 Vertex AI Studio

  2. 点击语言标签页。
  3. 点击文本提示可查看单个提示设计页面。
  4. 在侧边栏中,点击高级,查看高级设置。
  5. 点击启用接地切换开关以启用接地功能。
  6. 点击自定义并将 Vertex AI Agent Builder 设置为来源。该路径应采用以下格式:projects/project_id/locations/global/collections/default_collection/dataStores/data_store_id
  7. 在文本框中输入提示,然后点击提交

您的提示回答现在会借助 Vertex AI Agent Builder 接地。

后续步骤