在生成式 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 -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
工具。无需其他参数。
在使用任何请求数据之前,请先进行以下替换:
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 " }
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION /publishers/google/models/MODEL_ID :generateContent"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION /publishers/google/models/MODEL_ID :generateContent" | Select-Object -Expand Content
您应该收到类似以下内容的 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": { "..." } }
使用 Vertex AI Search 基于私有数据作出回答
以 Vertex AI Search 数据存储区中的数据作为回答依据。如需了解详情,请参阅 Vertex AI Agent Builder。
警告:目前,此“接地”接口不支持 Vertex AI Search“分块模式”。
在使用任何请求数据之前,请先进行以下替换:
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 " }
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION /publishers/google/models/MODEL_ID :generateContent"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION /publishers/google/models/MODEL_ID :generateContent" | Select-Object -Expand Content
您应该收到类似以下内容的 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": { "..." } }
后续步骤
如需查看详细文档,请参阅以下内容: