Respostas básicas para modelos do Gemini

Nesta página, descrevemos duas maneiras de embasar as respostas de um modelo com a Vertex AI e mostramos como fazer o embasamento funcionar nos seus aplicativos usando a API de embasamento.

A Vertex AI permite que você estabeleça as saídas do modelo usando as seguintes fontes de dados:

  • Pesquisa Google: embasa as respostas usando dados da Web disponíveis publicamente.
  • Seus dados: baseia as respostas usando seus dados da Vertex AI para Pesquisa (pré-lançamento).

Embasamento com a Pesquisa Google

Use o Embasamento com a Pesquisa Google se quiser conectar o modelo ao conhecimento mundial, a uma ampla variedade de tópicos possíveis ou a informações atualizadas na Internet.

A integração com a Pesquisa Google oferece suporte à recuperação dinâmica, que permite gerar respostas com embasamento na pesquisa apenas quando necessário. Portanto, a configuração de recuperação dinâmica avalia se um comando exige conhecimento sobre eventos recentes e ativa a integração com a Pesquisa Google. Para mais informações, consulte Recuperação dinâmica.

Para saber mais sobre o embasamento de modelo na Vertex AI, consulte a Visão geral de embasamento.

Modelos compatíveis

Os seguintes modelos dão suporte ao embasamento:

  • Gemini 1.5 Pro apenas com entrada de texto
  • Gemini 1.5 Flash apenas com entrada de texto
  • Gemini 1.0 Pro apenas com entrada de texto

Idiomas compatíveis

  • inglês (en)
  • Espanhol (es)
  • Japonês (ja)

Use as instruções a seguir para embasar um modelo com dados da Web disponíveis publicamente.

Recuperação dinâmica

Você pode usar a recuperação dinâmica na sua solicitação para escolher quando desativar o embasamento com a Pesquisa Google. Isso é útil quando o comando não exige uma resposta com embasamento na Pesquisa Google e os modelos compatíveis podem fornecer uma resposta com base no conhecimento sem embasamento. Isso ajuda a gerenciar a latência, a qualidade e o custo com mais eficiência.

Antes de invocar a configuração de recuperação dinâmica na solicitação, entenda a seguinte terminologia:

  • Pontuação da previsão: quando você solicita uma resposta com embasamento, a Vertex AI atribui uma pontuação de previsão ao comando. A pontuação de previsão é um valor de ponto flutuante no intervalo [0,1]. O valor depende se a instrução pode se beneficiar ao basear a resposta com as informações mais atualizadas da Pesquisa Google. Portanto, uma instrução que exige uma resposta com embasamento nos fatos mais recentes da Web tem uma pontuação de previsão mais alta. Um comando para o qual uma resposta gerada pelo modelo é suficiente tem uma pontuação de previsão mais baixa.

    Confira exemplos de algumas solicitações e as notas de previsão delas.

    Comando Pontuação de previsão Comentário
    "Escreva um poema sobre peônias" 0,13 O modelo pode confiar no próprio conhecimento, e a resposta não precisa de embasamento.
    "Sugira um brinquedo para uma criança de 2 anos" 0.36 O modelo pode confiar no próprio conhecimento, e a resposta não precisa de embasamento.
    "Você pode dar uma receita de guacamole de inspiração asiática?" 0,55 A Pesquisa Google pode dar uma resposta com embasamento, mas o embasamento não é estritamente necessário. O conhecimento do modelo pode ser suficiente
    "O que é o Agent Builder? Como o embasamento é cobrado no Agent Builder?" 0,72 Requer que a Pesquisa Google gere uma resposta com bom embasamento
    "Quem ganhou o último Grande Prêmio de F1?" 0.97 Requer que a Pesquisa Google gere uma resposta com bom embasamento
  • Limite: na solicitação, é possível especificar uma configuração de recuperação dinâmica com um limite. O limite é um valor de ponto flutuante no intervalo [0,1] e tem o valor padrão 0,7. Se o valor de limite for zero, a resposta será sempre com embasamento com a Pesquisa Google. Para todos os outros valores de limite, o seguinte é aplicável:

    • Se a pontuação da previsão for maior ou igual ao limite, a resposta será baseada na Pesquisa Google. Um limite mais baixo implica que mais comandos têm respostas geradas usando o Embasamento com a Pesquisa Google.
    • Se a pontuação da previsão for menor que o limite, o modelo ainda poderá gerar a resposta, mas ela não será baseada na Pesquisa Google.

Para encontrar um bom limite que atenda às necessidades da sua empresa, crie um conjunto representativo de consultas que você espera encontrar. Em seguida, você pode classificar as consultas de acordo com a pontuação de previsão na resposta e selecionar um limite adequado para seu caso de uso.

Considerações

  • Para usar o embasamento com a Pesquisa Google, ative as Sugestões de pesquisa. Saiba mais em Sugestões da Pesquisa Google.

  • Para resultados ideais, use uma temperatura de 0.0. Para saber mais sobre como definir essa configuração, consulte o Corpo da solicitação da API Gemini na referência do modelo.

  • O embasamento na Pesquisa Google tem um limite de um milhão de consultas por dia. Se você precisar de mais consultas, entre em contato com o suporte do Google Cloud para receber ajuda.

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": { "..."
   }
 }

Console

Para usar o Embasamento com a Pesquisa Google no Vertex AI Studio, siga estas etapas:

  1. No console do Google Cloud, acesse a página Vertex AI Studio.

    Acessar o Vertex AI Studio

  2. Clique na guia Formato livre.
  3. No painel lateral, clique no botão Embasar respostas do modelo.
  4. Clique em Personalizar e defina a Pesquisa Google como a origem.
  5. Insira o comando na caixa de texto e clique em Enviar.

Agora, suas respostas aos comandos serão embasadas com a Pesquisa Google.

Python

Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.

import vertexai

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

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-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.text)
# Example response:
# The next total solar eclipse visible from the contiguous United States will be on **August 23, 2044**.

Entender a resposta

Se o comando do modelo embasar corretamente com a Pesquisa Google pelo Vertex AI Studio ou pela API, as respostas incluirão metadados com links de origem (URLs da Web). No entanto, há vários motivos para esses metadados não serem fornecidos e a resposta ao comando não ser embasada. Esses motivos incluem baixa relevância de fonte ou informações incompletas na resposta do modelo.

Citações

É altamente recomendável exibir citações. Elas ajudam os usuários a validarem as respostas dos próprios editores e oferecem caminhos para mais aprendizado.

As citações das respostas nas fontes da Pesquisa Google precisam ser exibidas inline e de forma agregada. Confira a imagem abaixo como uma sugestão de como fazer isso.

Exemplos de citação

Uso de opções alternativas de mecanismo de pesquisa

O uso da integração com a Pesquisa Google pelo cliente não impede que ele ofereça opções de mecanismos de pesquisa alternativos, tornando as opções de pesquisa alternativas a opção padrão para os aplicativos do cliente ou exibindo as próprias sugestões de pesquisa ou resultados de pesquisa de terceiros nos aplicativos do cliente, desde que esses serviços não relacionados à Pesquisa Google ou resultados associados sejam exibidos separadamente dos resultados e sugestões de pesquisa e não possam ser razoavelmente atribuídos ou confundidos com resultados fornecidos pelo Google.

Embasar o Gemini com seus dados

Esta seção mostra como basear respostas de texto para um repositório de dados do Vertex AI Agent Builder usando a API Vertex AI. Não é possível especificar um repositório de dados de pesquisa de sites como a fonte de referência.

Modelos compatíveis

Os seguintes modelos dão suporte ao embasamento:

  • Gemini 1.5 Pro apenas com entrada de texto
  • Gemini 1.5 Flash apenas com entrada de texto
  • Gemini 1.0 Pro apenas com entrada de texto

Pré-requisitos

Há pré-requisitos para embasar a saída do modelo nos dados.

  1. Ativar o Vertex AI Agent Builder e a API.
  2. Criar uma origem de dados e um app do Vertex AI Agent Builder.
  3. Vincule seu repositório de dados ao seu app no Vertex AI Agent Builder. A fonte de dados serve como base para embasar o Gemini 1.0 Pro na Vertex AI. Não é possível especificar um repositório de dados de pesquisa de site como a fonte de referência.
  4. Ative a edição Enterprise para seu repositório de dados.

Consulte a Introdução à Vertex AI para Pesquisa para mais informações.

Ativar o Vertex AI Agent Builder

  1. No Console do Google Cloud, acesse a página Criador de agentes.

    Agent Builder.

  2. Leia e aceite os Termos de Serviço e clique em Continuar e ativar a API.

Vertex AI Agent Builder está disponível no local global ou nas multirregiões eu e us. Para saber mais, consulte Locais do Vertex AI Agent Builder.

Criar um repositório de dados no Vertex AI Agent Builder

Para fundamentar seus modelos nos dados de origem, você precisa preparar e salvar os dados na Vertex AI para Pesquisa. Para fazer isso, você precisa criar um repositório de dados no Vertex AI Agent Builder.

Se você estiver começando do zero, vai precisar preparar seus dados para transferência ao Vertex AI Agent Builder. Consulte Preparar dados para ingestão para começar. Dependendo do tamanho dos dados, a ingestão pode levar de vários minutos a várias horas. Só há suporte para armazenamentos de dados não estruturados.

Depois de preparar os dados para ingestão, crie um repositório de dados de pesquisa. Depois de criar um repositório de dados, crie um app de pesquisa para vinculá-lo e ative a edição Enterprise.

Exemplo: embasar o modelo Gemini 1.5 Flash

Use as instruções a seguir para embasar um modelo com seus próprios dados.

Se você não souber o ID do repositório de dados, siga estas etapas:

  1. No console do Google Cloud, acesse a página Vertex AI Agent Builder e, no menu de navegação, clique em Repositórios de dados.

    Acesse a página Repositório de dados

  2. Clique no nome do seu repositório de dados.

  3. Na página Dados do seu repositório de dados, encontre o ID do repositório. Não é possível especificar um repositório de dados de pesquisa de sites como a fonte de referência.

REST

Para testar um prompt de texto usando a API Vertex AI, envie uma solicitação POST para o endpoint do modelo do editor.

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": {
    "..."
  }
}

Entender a resposta com base na Pesquisa Google

Quando um resultado com base é gerado, os metadados contêm um URI que redireciona para o editor do conteúdo usado para gerar o resultado com embasamento. Os metadados também contêm o domínio do editor. Os URIs fornecidos permanecem acessíveis por 30 dias após a geração do resultado com embasamento.

Python

Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.

import vertexai

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

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# data_store_id = "your-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_id,
            project=PROJECT_ID,
            location="global",
        )
    )
)

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.text)

Console

Para embasar a saída do modelo com Vertex AI Agent Builder usando o Vertex AI Studio no console do Google Cloud, siga estas etapas:

  1. No console do Google Cloud, acesse a página Vertex AI Studio.

    Acessar o Vertex AI Studio

  2. Clique na guia Formato livre.
  3. No painel lateral, clique no botão de alternância Respostas do modelo embasado para ativar o embasamento.
  4. Clique em Personalizar e defina o Vertex AI Agent Builder como a origem. O caminho precisa seguir este formato: projects/project_id/locations/global/collections/default_collection/dataStores/data_store_id.
  5. Insira o comando na caixa de texto e clique em Enviar.

Agora, suas respostas aos comandos serão embasadas no Vertex AI Agent Builder.

Mais recursos de IA generativa