Embasamento com a pesquisa na Web da Exa

A Exa fornece uma API de pesquisa que dá acesso a dados públicos da Web otimizados para embasar respostas de modelos de linguagem grandes. Nesta página, explicamos como embasar as respostas do Gemini usando o Exa.

O embasamento com a pesquisa na Web da Exa na Gemini Enterprise Agent Platform é uma Solução Separada (conforme definido no seu Google Cloud Contrato) que conecta os modelos do Gemini aos dados públicos da Web fornecidos pela API de pesquisa da Exa.

Casos de uso

O embasamento com o Exa melhora a precisão e reduz as alucinações, aos modelos acesso a dados da Web recentes e relevantes. Os casos de uso comuns incluem:

  • Agentes gerais e chatbots: recuperam informações atualizadas para produzir respostas mais confiáveis.
  • Agentes de pesquisa: faça pesquisas detalhadas na Web em várias fontes.
  • Agentes de programação: extraia os snippets de código, documentos e referências técnicas mais recentes.
  • Agentes de voz: recuperação da Web para oferecer suporte a interações de voz em tempo real e de baixa latência.
  • Agentes específicos de setores: buscam informações atualizadas e específicas de um domínio, adaptadas a um setor ou área de conhecimento específica.
  • Aprimoramento de dados: aumente os conjuntos de dados internos com o contexto e os metadados atuais da Web.
  • Fluxos de trabalho automatizados: colete periodicamente notícias, pessoas, empresas ou outros dados atualizados com frequência para fluxos de trabalho internos ou de produção.

Exemplo

Quem ganhou o Super Bowl de 2026?

Sem embasamento Com embasamento
Não posso dizer quem ganhou o Super Bowl de 2026, porque esse evento ainda não aconteceu. O Seattle Seahawks venceu o Super Bowl LX em 8 de fevereiro de 2026, derrotando o New England Patriots por 29 a 13. Origens: domain1.com, domain2.com, ...

Modelos compatíveis

Esta seção lista os modelos que aceitam o embasamento com a pesquisa na Web do Exa.

Clique para abrir os modelos compatíveis

Antes de começar

Para usar o embasamento com o Exa, você precisa de uma chave de API do site do Exa. Essa chave de API é usada na sua solicitação ao Gemini.

Embasar as respostas do Gemini com o Exa

Solicite respostas embasadas do Gemini usando o SDK de IA generativa do Google ou a API REST. Para ter o melhor desempenho, recomendamos usar as configurações padrão para parâmetros opcionais, a menos que você precise de valores não padrão.

Antes de executar os exemplos, conclua os pré-requisitos, incluindo a obtenção de uma chave de API do Exa.

Python

Instalar

pip install --upgrade google-genai

Para mais informações, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa do Google com a Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

Antes de executar o exemplo, faça as seguintes substituições:

  • MODEL_ID: o ID de um modelo compatível a ser usado, como gemini-2.5-flash.
  • TEXT: o comando de texto a ser enviado ao modelo.
  • API_KEY: sua chave de API para a pesquisa na Web do Exa.
  • SEARCH_TYPE: opcional: o tipo de pesquisa do Exa a ser executada. Os valores aceitos são fast e instant. O padrão é fast, que fornece resultados abrangentes com latência reduzida e é uma boa opção para pesquisa voltada ao usuário e fluxos de trabalho interativos. Use instant para experiências que exigem a menor latência, como chat, agentes de voz e preenchimento automático. Ele minimiza o tempo de resposta priorizando a velocidade em detrimento da média de páginas por visita.
  • EXCLUDE_DOMAINS: opcional. Lista de domínios a serem excluídos dos resultados da pesquisa. Se especificado, nenhum resultado será retornado desses domínios. Para excluir mais de um domínio, adicione cada um como uma string entre aspas separada na lista (por exemplo, ["example.com", "example.net"]). É possível especificar até 1.200 domínios.
  • INCLUDE_DOMAINS: opcional: lista de domínios a serem incluídos na pesquisa. Se especificado, os resultados vêm apenas desses domínios. Para incluir mais de um domínio, adicione cada um como uma string entre aspas separada na lista (por exemplo, ["example.com", "example.net"]). É possível especificar até 1.200 domínios.
  • MAX_CHARACTERS (opcional): número máximo de caracteres a serem retornados para os destaques. Controla o tamanho total do texto de destaque retornado por URL.
  • NUM_RESULTS: opcional. O número máximo de resultados da pesquisa a serem usados para embasamento. Se não for especificado, 5 será usado como padrão para .

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="MODEL_ID",
    contents="TEXT",
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                exa_ai_search=types.ToolExaAiSearch(
                    # Required. Your API key for Exa web search.
                    api_key="API_KEY",
                    # Optional. Customize the search. Click a placeholder to
                    # enter a value, or remove the line to accept the default.
                    custom_configs={
                        "type": "SEARCH_TYPE",
                        "excludeDomains": ["EXCLUDE_DOMAINS"],
                        "includeDomains": ["INCLUDE_DOMAINS"],
                        "contents": {
                            "highlights": {
                                "maxCharacters": MAX_CHARACTERS,
                            },
                        },
                        "numResults": NUM_RESULTS,
                    },
                )
            )
        ],
    ),
)

print(response.text)

# The grounding metadata contains the web sources used to ground the response.
print(response.candidates[0].grounding_metadata.grounding_chunks)

Java

Saiba como instalar ou atualizar a Java.

Para mais informações, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa do Google com a Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

Antes de executar o exemplo, faça as seguintes substituições:

  • MODEL_ID: o ID de um modelo compatível a ser usado, como gemini-2.5-flash.
  • TEXT: o comando de texto a ser enviado ao modelo.
  • API_KEY: sua chave de API para a pesquisa na Web do Exa.
  • SEARCH_TYPE: opcional: o tipo de pesquisa do Exa a ser executada. Os valores aceitos são fast e instant. O padrão é fast, que fornece resultados abrangentes com latência reduzida e é uma boa opção para pesquisa voltada ao usuário e fluxos de trabalho interativos. Use instant para experiências que exigem a menor latência, como chat, agentes de voz e preenchimento automático. Ele minimiza o tempo de resposta priorizando a velocidade em detrimento da média de páginas por visita.
  • EXCLUDE_DOMAINS: opcional. Lista de domínios a serem excluídos dos resultados da pesquisa. Se especificado, nenhum resultado será retornado desses domínios. Para excluir mais de um domínio, adicione cada um como uma string entre aspas separada na lista (por exemplo, ["example.com", "example.net"]). É possível especificar até 1.200 domínios.
  • INCLUDE_DOMAINS: opcional: lista de domínios a serem incluídos na pesquisa. Se especificado, os resultados vêm apenas desses domínios. Para incluir mais de um domínio, adicione cada um como uma string entre aspas separada na lista (por exemplo, ["example.com", "example.net"]). É possível especificar até 1.200 domínios.
  • MAX_CHARACTERS (opcional): número máximo de caracteres a serem retornados para os destaques. Controla o tamanho total do texto de destaque retornado por URL.
  • NUM_RESULTS: opcional. O número máximo de resultados da pesquisa a serem usados para embasamento. Se não for especificado, 5 será usado como padrão para .

import com.google.genai.Client;
import com.google.genai.types.GenerateContentConfig;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.Tool;
import com.google.genai.types.ToolExaAiSearch;
import java.util.List;
import java.util.Map;

public class ExaGroundingSample {
  public static void main(String[] args) {
    try (Client client = Client.builder().build()) {

      GenerateContentConfig config =
          GenerateContentConfig.builder()
              .tools(
                  Tool.builder()
                      .exaAiSearch(
                          ToolExaAiSearch.builder()
                              // Required. Your API key for Exa web search.
                              .apiKey("API_KEY")
                              // Optional. Customize the search. Click a
                              // placeholder to enter a value, or remove the
                              // entry to accept the default.
                              .customConfigs(
                                  Map.of(
                                      "type", "SEARCH_TYPE",
                                      "excludeDomains",
                                      List.of("EXCLUDE_DOMAINS"),
                                      "includeDomains",
                                      List.of("INCLUDE_DOMAINS"),
                                      "contents",
                                      Map.of(
                                          "highlights",
                                          Map.of(
                                              "maxCharacters",
                                              MAX_CHARACTERS)),
                                      "numResults", NUM_RESULTS))
                              .build())
                      .build())
              .build();

      GenerateContentResponse response =
          client.models.generateContent(
              "MODEL_ID", "TEXT", config);

      System.out.println(response.text());

      // The grounding metadata contains the web sources used to ground the response.
      System.out.println(
          response.candidates().get().get(0).groundingMetadata().get().groundingChunks().get());
    }
  }
}

Node.js

Instalar

npm install @google/genai

Para mais informações, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa do Google com a Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

Antes de executar o exemplo, faça as seguintes substituições:

  • MODEL_ID: o ID de um modelo compatível a ser usado, como gemini-2.5-flash.
  • TEXT: o comando de texto a ser enviado ao modelo.
  • API_KEY: sua chave de API para a pesquisa na Web do Exa.
  • SEARCH_TYPE: opcional: o tipo de pesquisa do Exa a ser executada. Os valores aceitos são fast e instant. O padrão é fast, que fornece resultados abrangentes com latência reduzida e é uma boa opção para pesquisa voltada ao usuário e fluxos de trabalho interativos. Use instant para experiências que exigem a menor latência, como chat, agentes de voz e preenchimento automático. Ele minimiza o tempo de resposta priorizando a velocidade em detrimento da média de páginas por visita.
  • EXCLUDE_DOMAINS: opcional. Lista de domínios a serem excluídos dos resultados da pesquisa. Se especificado, nenhum resultado será retornado desses domínios. Para excluir mais de um domínio, adicione cada um como uma string entre aspas separada na lista (por exemplo, ["example.com", "example.net"]). É possível especificar até 1.200 domínios.
  • INCLUDE_DOMAINS: opcional: lista de domínios a serem incluídos na pesquisa. Se especificado, os resultados vêm apenas desses domínios. Para incluir mais de um domínio, adicione cada um como uma string entre aspas separada na lista (por exemplo, ["example.com", "example.net"]). É possível especificar até 1.200 domínios.
  • MAX_CHARACTERS (opcional): número máximo de caracteres a serem retornados para os destaques. Controla o tamanho total do texto de destaque retornado por URL.
  • NUM_RESULTS: opcional. O número máximo de resultados da pesquisa a serem usados para embasamento. Se não for especificado, 5 será usado como padrão para .

import {GoogleGenAI} from '@google/genai';

const ai = new GoogleGenAI({});

const response = await ai.models.generateContent({
  model: 'MODEL_ID',
  contents: 'TEXT',
  config: {
    tools: [
      {
        exaAiSearch: {
          // Required. Your API key for Exa web search.
          apiKey: 'API_KEY',
          // Optional. Customize the search. Click a placeholder to enter a
          // value, or remove the line to accept the default.
          customConfigs: {
            type: 'SEARCH_TYPE',
            excludeDomains: ['EXCLUDE_DOMAINS'],
            includeDomains: ['INCLUDE_DOMAINS'],
            contents: {
              highlights: {
                maxCharacters: MAX_CHARACTERS,
              },
            },
            numResults: NUM_RESULTS,
          },
        },
      },
    ],
  },
});

console.log(response.text);

// The grounding metadata contains the web sources used to ground the response.
console.log(response.candidates[0].groundingMetadata.groundingChunks);

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. Para usar o endpoint global, exclua o local do nome do endpoint e configure o local do recurso como "global".
  • PROJECT_ID: o ID do projeto do Google Cloud .
  • MODEL_ID: o ID do modelo que será usado.
  • TEXT: o comando de texto a ser enviado ao modelo.
  • API_KEY: sua chave de API para a pesquisa na Web do Exa.
  • SEARCH_TYPE: opcional: o tipo de pesquisa do Exa a ser executada. Os valores aceitos são fast e instant. O padrão é fast, que fornece resultados abrangentes com latência reduzida e é uma boa opção para pesquisa voltada ao usuário e fluxos de trabalho interativos. Use instant para experiências que exigem a menor latência, como chat, agentes de voz e preenchimento automático. Ele minimiza o tempo de resposta priorizando a velocidade em detrimento da média de páginas por visita.
  • EXCLUDE_DOMAINS: opcional. Lista de domínios a serem excluídos dos resultados da pesquisa. Se especificado, nenhum resultado será retornado desses domínios. É possível especificar até 1.200 domínios.
  • INCLUDE_DOMAINS: opcional: lista de domínios a serem incluídos na pesquisa. Se especificado, os resultados serão provenientes apenas desses domínios. É possível especificar até 1.200 domínios.
  • MAX_CHARACTERS (opcional): número máximo de caracteres a serem retornados para os destaques. Controla o tamanho total do texto de destaque retornado por URL.
  • NUM_RESULTS (opcional): o número máximo de resultados da pesquisa a serem usados para embasamento. Se não for especificado, 5 será usado como padrão para .

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

Corpo JSON da solicitação:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "exaAiSearch": {
        "api_key": "API_KEY",
        "customConfigs": {
            "type": "SEARCH_TYPE",
            "excludeDomains": ["EXCLUDE_DOMAINS"],
            "includeDomains": ["INCLUDE_DOMAINS"],
            "contents": {
                "highlights": {
                    "maxCharacters": MAX_CHARACTERS
                }
            },
            "numResults": NUM_RESULTS
        }
    }
}],
  "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 seguinte.

Cota

A cota padrão é de 200 comandos por minuto. Se você precisar aumentar os limites de limitação de taxa, entre em contato com support@exa.ai e com a Equipe de Contas do Google, informando seu caso de uso e requisitos.

Faturamento

O uso do embasamento com o Exa gera as seguintes cobranças:

  • Consumo de tokens do Gemini: tokens de comando, tokens de raciocínio e tokens de saída. Para saber mais informações, consulte Preços.
  • Embasamento do Gemini com seus dados: para mais informações, consulte Preços.
  • Preços para o uso da API de pesquisa da Exa: para mais informações, consulte a página de preços da Exa.