Na IA generativa, embasamento é a capacidade de conectar a saída do modelo a fontes de informações verificáveis. Se você fornecer aos modelos acesso a fontes de dados específicas, o embasamento da saída deles a esses dados reduz as chances de inventar conteúdo.
Com a Vertex AI, é possível embasar as saídas do modelo das seguintes maneiras:
- Terreno com a Pesquisa Google: basear um modelo com dados da Web disponíveis publicamente.
- Ter fundamento nos seus próprios dados: basear um modelo com seus próprios dados da Vertex AI para Pesquisa como um repositório de dados (pré-lançamento).
Para mais informações sobre embasamento, consulte Visão geral de embasamento.
Modelos compatíveis
Modelo | Versão |
---|---|
Gemini 2.0 Flash apenas com entrada de texto | gemini-2.0-flash-001 |
Gemini 1.5 Pro apenas com entrada de texto | gemini-1.5-pro-002 gemini-1.5-pro-001 |
Gemini 1.5 Flash apenas com entrada de texto | gemini-1.5-flash-002 gemini-1.5-flash-001 |
Gemini 1.0 Pro apenas com entrada de texto | gemini-1.0-pro-001 gemini-1.0-pro-002 |
Limitações
O embasamento está disponível apenas para solicitações de texto.
Exemplo de sintaxe
Este exemplo mostra a sintaxe para fundamentar um modelo e especificar o idioma com suporte. Para saber mais sobre o suporte a idiomas, consulte Idiomas.
Especifique os valores das seguintes variáveis:
- PROMPT_TEXT: sua solicitação de texto enviada a um modelo de linguagem para receber uma resposta.
- SYSTEM_INSTRUCTION: um conjunto de instruções que informa ao modelo como se comportar e responder aos comandos.
- FACT_TEXT_1: informações verificadas usadas pelo modelo para gerar uma resposta.
- TITLE_1: o nome da sua fonte de informações verificada.
- URI_1: uma string que identifica exclusivamente um local da sua fonte de informações verificada.
- AUTHOR_1: o provedor das informações verificadas usadas pelo modelo para gerar uma resposta.
- FACT_TEXT_2: informações verificadas usadas pelo modelo para gerar uma resposta.
- TITLE_2: o nome da sua fonte de informações verificada.
- URI_2: uma string que identifica exclusivamente um local da sua fonte de informações verificada.
- FACT_TEXT_3: informações verificadas usadas pelo modelo para gerar uma resposta.
- TITLE_3: o nome da sua fonte de informações verificada.
- URI_3: uma string que identifica exclusivamente um local da sua fonte de informações verificada.
- PROJECT_NUMBER: identifica de forma exclusiva o projeto Google Cloud , que contém seus recursos.
- APP_ID_1: um aplicativo que interage com o modelo.
- APP_ID_2: um aplicativo que interage com o modelo.
- MODEL_ID: identifica o modelo com que o app interage.
- LANGUAGE_CODE: identifica o idioma usado na geração de uma resposta fundamentada.
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 }, }'
Lista de parâmetros
Confira exemplos para detalhes de implementação.
GoogleSearchRetrieval
Baseie a resposta com dados públicos.
Parâmetros | |
---|---|
|
Obrigatório: Terreno com dados da Web disponíveis publicamente. |
Retrieval
Baseie a resposta com dados particulares da Vertex AI para Pesquisa como um repositório de dados. Define uma ferramenta de recuperação que o modelo pode chamar para acessar conhecimento externo.
Parâmetros | |
---|---|
|
Obrigatório: Informações básicas sobre as fontes de dados da Vertex AI para Pesquisa. |
VertexAISearch
Parâmetros | |
---|---|
|
Obrigatório: ID do recurso de repositório de dados totalmente qualificado da Vertex AI para Pesquisa, no
seguinte formato: |
Exemplos
Resposta empírica em dados públicos da Web usando a Pesquisa Google
Baseie a resposta com dados públicos da Pesquisa Google. Inclua a ferramenta google_search_retrieval
na solicitação. Nenhum parâmetro adicional é necessário.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
LOCATION : a região para processar a solicitação.PROJECT_ID : o ID do projeto.MODEL_ID : o ID do modelo multimodal. Somente os modelos Gemini 1.0 e Gemini 1.5 oferecem suporte à recuperação dinâmica. Os modelos do Gemini 2.0 não oferecem suporte à recuperação dinâmica.TEXT : as instruções de texto a serem incluídas no comando.DYNAMIC_THRESHOLD : um campo opcional para definir o limite para invocar a configuração de recuperação dinâmica. É um valor de ponto flutuante no intervalo [0,1]. Se você não definir o campodynamicThreshold
, o valor de limite será 0,7.
Método HTTP e URL:
POST https://LOCATION -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION /publishers/google/models/MODEL_ID :generateContent
Corpo JSON da solicitação:
{ "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 " }
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a esta:
{ "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": { "..." } }
Resposta em base em dados particulares usando a Vertex AI para Pesquisa
Baseie a resposta com dados de um repositório da Vertex AI para Pesquisa. Para mais informações, consulte o Vertex AI Agent Builder.
Antes de fundamentar uma resposta com dados particulares, crie um repositório de dados e um app de pesquisa.
AVISO: por enquanto, essa interface de "aterramento" não oferece suporte ao "modo de bloco" da Pesquisa da Vertex AI.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
LOCATION : a região para processar a solicitação.PROJECT_ID : o ID do projeto.MODEL_ID : o ID do modelo multimodal.TEXT : as instruções de texto a serem incluídas no comando.
Método HTTP e URL:
POST https://LOCATION -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION /publishers/google/models/MODEL_ID :generateContent
Corpo JSON da solicitação:
{ "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 " }
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a esta:
{ "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": { "..." } }
A seguir
Para consultar a documentação detalhada, acesse: