在生成式 AI 中,建立依据是指将模型输出连接到可验证的信息源的能力。如果您为模型提供访问特定数据源的权限,则建立依据可以将其输出仅限于这些数据范围,从而降低内容创造的可能性。
使用 Vertex AI,您可以通过以下方式为模型输出建立依据:
- 使用 Google 搜索建立依据 - 使用公开提供的 Web 数据为模型建立依据。
- 借助您自己的数据接地 - 使用作为数据存储区的 Vertex AI Search 中您自己的数据让模型接地(预览版)。
如需详细了解依据,请参阅依据概览。
支持的模型
模型 | 版本 |
---|---|
Gemini 2.0 Flash(仅包含文本输入) | gemini-2.0-flash-001 |
Gemini 1.5 Pro(仅包含文本输入) | gemini-1.5-pro-002 gemini-1.5-pro-001 |
Gemini 1.5 Flash(仅包含文本输入) | gemini-1.5-flash-002 gemini-1.5-flash-001 |
Gemini 1.0 Pro(仅包含文本输入) | gemini-1.0-pro-001 gemini-1.0-pro-002 |
限制
依据仅适用于文本请求。
示例语法
此示例展示了如何为模型建立依据以及如何指定支持的语言的语法。如需了解语言支持,请参阅语言。
为以下变量指定值:
- PROMPT_TEXT:您提交到语言模型以接收回答的文本请求。
- SYSTEM_INSTRUCTION:一组指令,用于告知模型如何执行操作以及如何回答提示。
- FACT_TEXT_1:模型用于生成回答的经过验证的信息。
- TITLE_1:您的已经验证的信息来源的名称。
- URI_1:用于唯一标识已经验证的信息来源的位置的字符串。
- AUTHOR_1:模型用于生成回答的经过验证的信息的提供方。
- FACT_TEXT_2:模型用于生成回答的经过验证的信息。
- TITLE_2:您的已经验证的信息来源的名称。
- URI_2:用于唯一标识已经验证的信息来源的位置的字符串。
- FACT_TEXT_3:模型用于生成回答的经过验证的信息。
- TITLE_3:您的已经验证的信息来源的名称。
- URI_3:用于唯一标识已经验证的信息来源的位置的字符串。
- PROJECT_NUMBER:唯一标识您的 Google Cloud 项目,其中包含您的资源。
- APP_ID_1:与模型交互的应用。
- APP_ID_2:与模型交互的应用。
- MODEL_ID:标识应用与之交互的模型。
- LANGUAGE_CODE:标识生成有依据的回答时所用的语言。
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/global:generateGroundedContent" \ -d ' { "contents": [ { "role": "user", "parts": [ { "text": "PROMPT_TEXT" } ] } ], "systemInstruction": { "parts": { "text": "SYSTEM_INSTRUCTION" } }, "groundingSpec": { "groundingSources": [ { "inlineSource": { "groundingFacts": [ { "factText": "FACT_TEXT_1", "attributes": { "title": "TITLE_1", "uri": "URI_1", "author": "AUTHOR_1" } } ] } }, { "inlineSource": { "groundingFacts": [ { "factText": "FACT_TEXT_2", "attributes": { "title": "TITLE_2", "uri": "URI_2" } }, { "factText": "FACT_TEXT_3", "attributes": { "title": "TITLE_3", "uri": "URI_3" } } ] } }, { "searchSource": { "servingConfig": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID_1/servingConfigs/default_search" } }, { "searchSource": { "servingConfig": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID_2/servingConfigs/default_search" } } ] }, "generationSpec": { "modelId": "MODEL_ID", "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, }, "user_context": { "languageCode: "LANGUAGE_CODE" "latLng": { "latitude": 46.7, "longitude": 8.9 }, }'
参数列表
如需了解实现详情,请参阅示例。
GoogleSearchRetrieval
以公开数据作为回答依据。
参数 | |
---|---|
|
必需: 以公开提供的 Web 数据作为依据。 |
Retrieval
以作为数据存储区的 Vertex AI Search 中的私有数据作为回答依据。定义模型可以调用以访问外部知识的检索工具。
参数 | |
---|---|
|
必需: 以 Vertex AI Search 数据源作为依据。 |
VertexAISearch
参数 | |
---|---|
|
必需: 来自 Vertex AI Search 的完全限定数据存储区资源 ID,格式如下: |
示例
使用 Google 搜索基于公开 Web 数据作为回答依据
以 Google 搜索公开数据作为回答依据。在请求中添加 google_search_retrieval
工具。无需其他参数。
REST
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:处理请求的区域。
- PROJECT_ID:您的项目 ID。
- MODEL_ID:多模态模型的模型 ID。 只有 Gemini 1.0 和 Gemini 1.5 模型支持动态检索。Gemini 2.0 模型不支持动态检索。
- TEXT:要包含在提示中的文本说明。
- DYNAMIC_THRESHOLD:可选字段,用于设置调用动态检索配置的阈值。该值是一个介于 [0,1] 范围内的浮点值。如果您未设置
dynamicThreshold
字段,则阈值默认为 0.7。
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": { "dynamicRetrievalConfig": { "mode": "MODE_DYNAMIC", "dynamicThreshold": DYNAMIC_THRESHOLD } } }], "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": "....................." } "groundingSupports": [ { "segment": { "startIndex": 0, "endIndex": 65, "text": "Chicago weather changes rapidly, so layers let you adjust easily." }, "groundingChunkIndices": [ 0 ], "confidenceScores": [ 0.99 ] }, ] "retrievalMetadata": { "webDynamicRetrievalScore": 0.96879 } } } ], "usageMetadata": { "..." } }
Python
NodeJS
Java
使用 Vertex AI Search 基于私有数据作出回答
以 Vertex AI Search 数据存储区中的数据作为回答依据。如需了解详情,请参阅 Vertex AI Agent Builder。
警告:目前,此“接地”接口不支持 Vertex AI Search“分块模式”。
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": [{ "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": { "..." } }
Python
NodeJS
Java
后续步骤
如需查看详细文档,请参阅以下内容: