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 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 só oferece suporte a fontes de dados em inglês, espanhol e japonês.
- O embasamento está disponível apenas para solicitações de texto.
Exemplo de sintaxe
Sintaxe para embasar um modelo.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \ -d '{ "contents": [{ ... }], "tools": [{ "retrieval": { "googleSearchRetrieval": {} } }], "model": "" }'
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.
REST
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.
- 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 campo
dynamicThreshold
, 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:
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": { "..." } }
Python
NodeJS
Java
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 de pesquisa.
REST
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:
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": { "..." } }
Python
NodeJS
Java
A seguir
Para consultar a documentação detalhada, acesse: