Fundamentación con la búsqueda web de Exa

Exa proporciona una API de búsqueda que brinda acceso a datos web disponibles públicamente y optimizados para fundamentar respuestas de modelos de lenguaje grandes. En esta página, se explica cómo fundamentar las respuestas de Gemini con Exa.

La fundamentación con la búsqueda web de Exa en Gemini Enterprise Agent Platform es una oferta independiente (como se define en tu Google Cloud acuerdo) que conecta los modelos de Gemini con los datos web públicos que proporciona la API de búsqueda de Exa.

Casos de uso

La fundamentación con Exa mejora la precisión y reduce las alucinaciones, ya que les brinda a los modelos acceso a datos web actualizados y pertinentes. Los casos de uso comunes incluyen los siguientes:

  • Agentes y chatbots generales: Recupera información actualizada para producir respuestas más confiables.
  • Agentes de investigación: Realiza investigaciones web profundas en varias fuentes.
  • Agentes de programación: Extrae los fragmentos de código, los documentos y las referencias técnicas más recientes.
  • Agentes de voz: Recuperación web para admitir interacciones de voz en tiempo real y de baja latencia.
  • Agentes específicos de la industria: Obtén información actualizada y específica de la industria adaptada a un sector o una industria del conocimiento en particular.
  • Enriquecimiento de datos: Aumenta los conjuntos de datos internos con el contexto y los metadatos web actuales.
  • Flujos de trabajo automatizados: Recopila periódicamente noticias, personas, empresas o cualquier otro dato que se actualice con frecuencia para flujos de trabajo internos o de producción.

Ejemplo

¿Quién ganó el Super Bowl 2026?

Sin fundamentación Con fundamentación
No puedo decirte quién ganó el Super Bowl 2026, ya que ese evento aún no sucedió. Los Seattle Seahawks ganaron el Super Bowl LX el 8 de febrero de 2026, derrotando a los New England Patriots con un marcador final de 29 a 13. Fuentes: domain1.com, domain2.com, ...

Modelos compatibles

En esta sección, se enumeran los modelos que admiten la fundamentación con la búsqueda web de Exa.

Haz clic para expandir los modelos compatibles

Antes de comenzar

Para usar la fundamentación con Exa, debes obtener una clave de API del sitio web de Exa. Esta clave de API se usa en tu solicitud a Gemini.

Fundamenta las respuestas de Gemini con Exa

Solicita respuestas fundamentadas de Gemini con el SDK de IA generativa de Google o la API de REST. Para obtener el mejor rendimiento, te recomendamos que uses la configuración predeterminada para los parámetros opcionales, a menos que necesites valores no predeterminados.

Antes de ejecutar las muestras, completa los requisitos previos, incluida la obtención de una clave de API de Exa.

Python

Instalar

pip install --upgrade google-genai

Para obtener más información, consulta la documentación de referencia del SDK.

Establece variables de entorno para usar el SDK de IA generativa de Google con 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 ejecutar la muestra, realiza los siguientes reemplazos:

  • MODEL_ID: Es el ID de un modelo compatible que se usará, como gemini-2.5-flash.
  • TEXT: Es la instrucción de texto que se enviará al modelo.
  • API_KEY: Es tu clave de API para la búsqueda web de Exa.
  • SEARCH_TYPE: Opcional: Es el tipo de búsqueda de Exa que se ejecutará. Los valores admitidos son fast y instant. El valor predeterminado es fast, que proporciona resultados integrales con latencia reducida y es un buen ajuste para la búsqueda para el usuario y los flujos de trabajo interactivos. Usa instant para experiencias que requieren la latencia más baja, como chat, agentes de voz y autocompletar. Minimiza el tiempo de respuesta, ya que prioriza la velocidad por sobre la promedio de páginas vistas por búsqueda.
  • EXCLUDE_DOMAINS: Opcional: Es la lista de dominios que se excluirán de los resultados de la búsqueda. Si se especifica, no se mostrarán resultados de estos dominios. Para excluir más de un dominio, agrega cada dominio como una cadena entre comillas separada en la lista (por ejemplo, ["example.com", "example.net"]). Puedes especificar hasta 1,200 dominios.
  • INCLUDE_DOMAINS: Opcional: Es la lista de dominios que se incluirán en la búsqueda. Si se especifica, los resultados provienen solo de estos dominios. Para incluir más de un dominio, agrega cada dominio como una cadena entre comillas separada en la lista (por ejemplo, ["example.com", "example.net"]). Puedes especificar hasta 1,200 dominios.
  • MAX_CHARACTERS: Opcional: Es la cantidad máxima de caracteres que se mostrarán para los aspectos destacados. Controla la longitud total del texto destacado que se muestra por URL.
  • NUM_RESULTS: Opcional: Es la cantidad máxima de resultados de la búsqueda que se usarán para la fundamentación. Si no se especifica, el valor predeterminado es 5.

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

Obtén información para instalar o actualizar Java.

Para obtener más información, consulta la documentación de referencia del SDK.

Establece variables de entorno para usar el SDK de IA generativa de Google con 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 ejecutar la muestra, realiza los siguientes reemplazos:

  • MODEL_ID: Es el ID de un modelo compatible que se usará, como gemini-2.5-flash.
  • TEXT: Es la instrucción de texto que se enviará al modelo.
  • API_KEY: Es tu clave de API para la búsqueda web de Exa.
  • SEARCH_TYPE: Opcional: Es el tipo de búsqueda de Exa que se ejecutará. Los valores admitidos son fast y instant. El valor predeterminado es fast, que proporciona resultados integrales con latencia reducida y es un buen ajuste para la búsqueda para el usuario y los flujos de trabajo interactivos. Usa instant para experiencias que requieren la latencia más baja, como chat, agentes de voz y autocompletar. Minimiza el tiempo de respuesta, ya que prioriza la velocidad por sobre el promedio de páginas vistas por búsqueda.
  • EXCLUDE_DOMAINS: Opcional: Es la lista de dominios que se excluirán de los resultados de la búsqueda. Si se especifica, no se mostrarán resultados de estos dominios. Para excluir más de un dominio, agrega cada dominio como una cadena entre comillas separada en la lista (por ejemplo, ["example.com", "example.net"]). Puedes especificar hasta 1,200 dominios.
  • INCLUDE_DOMAINS: Opcional: Es la lista de dominios que se incluirán en la búsqueda. Si se especifica, los resultados provienen solo de estos dominios. Para incluir más de un dominio, agrega cada dominio como una cadena entre comillas separada en la lista (por ejemplo, ["example.com", "example.net"]). Puedes especificar hasta 1,200 dominios.
  • MAX_CHARACTERS: Opcional: Es la cantidad máxima de caracteres que se mostrarán para los aspectos destacados. Controla la longitud total del texto destacado que se muestra por URL.
  • NUM_RESULTS: Opcional: Es la cantidad máxima de resultados de la búsqueda que se usarán para la fundamentación. Si no se especifica, el valor predeterminado es 5.

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 obtener más información, consulta la documentación de referencia del SDK.

Establece variables de entorno para usar el SDK de IA generativa de Google con 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 ejecutar la muestra, realiza los siguientes reemplazos:

  • MODEL_ID: Es el ID de un modelo compatible que se usará, como gemini-2.5-flash.
  • TEXT: Es la instrucción de texto que se enviará al modelo.
  • API_KEY: Es tu clave de API para la búsqueda web de Exa.
  • SEARCH_TYPE: Opcional: Es el tipo de búsqueda de Exa que se ejecutará. Los valores admitidos son fast y instant. El valor predeterminado es fast, que proporciona resultados integrales con latencia reducida y es un buen ajuste para la búsqueda para el usuario y los flujos de trabajo interactivos. Usa instant para experiencias que requieren la latencia más baja, como chat, agentes de voz y autocompletar. Minimiza el tiempo de respuesta, ya que prioriza la velocidad por sobre el promedio de páginas vistas por búsqueda.
  • EXCLUDE_DOMAINS: Opcional: Es la lista de dominios que se excluirán de los resultados de la búsqueda. Si se especifica, no se mostrarán resultados de estos dominios. Para excluir más de un dominio, agrega cada dominio como una cadena entre comillas separada en la lista (por ejemplo, ["example.com", "example.net"]). Puedes especificar hasta 1,200 dominios.
  • INCLUDE_DOMAINS: Opcional: Es la lista de dominios que se incluirán en la búsqueda. Si se especifica, los resultados provienen solo de estos dominios. Para incluir más de un dominio, agrega cada dominio como una cadena entre comillas separada en la lista (por ejemplo, ["example.com", "example.net"]). Puedes especificar hasta 1,200 dominios.
  • MAX_CHARACTERS: Opcional: Es la cantidad máxima de caracteres que se mostrarán para los aspectos destacados. Controla la longitud total del texto destacado que se muestra por URL.
  • NUM_RESULTS: Opcional: Es la cantidad máxima de resultados de la búsqueda que se usarán para la fundamentación. Si no se especifica, el valor predeterminado es 5.

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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: La región para procesar la solicitud. Para usar el extremo global, excluye la ubicación del nombre del extremo y configura la ubicación del recurso como `global`.
  • PROJECT_ID: Es el ID del Google Cloud proyecto de.
  • MODEL_ID: Es el ID del modelo que se usará.
  • TEXT: Es la instrucción de texto que se enviará al modelo.
  • API_KEY: Es tu clave de API para la búsqueda web de Exa.
  • SEARCH_TYPE: Opcional: Es el tipo de búsqueda de Exa que se ejecutará. Los valores admitidos son fast y instant. El valor predeterminado es fast, que proporciona resultados integrales con latencia reducida y es adecuado para la búsqueda para el usuario y los flujos de trabajo interactivos. Usa instant para experiencias que requieren la latencia más baja, como chat, agentes de voz y autocompletar. Minimiza el tiempo de respuesta, ya que prioriza la velocidad por sobre el promedio de páginas vistas por búsqueda.
  • EXCLUDE_DOMAINS: Opcional: Es la lista de dominios que se excluirán de los resultados de la búsqueda. Si se especifica, no se mostrarán resultados de estos dominios. Puedes especificar hasta 1,200 dominios.
  • INCLUDE_DOMAINS: Opcional: Es la lista de dominios que se incluirán en la búsqueda. Si se especifica, los resultados provienen solo de estos dominios. Puedes especificar hasta 1,200 dominios.
  • MAX_CHARACTERS: Opcional: Es la cantidad máxima de caracteres que se mostrarán para los aspectos destacados. Controla la longitud total del texto destacado que se muestra por URL.
  • NUM_RESULTS: Opcional: Es la cantidad máxima de resultados de la búsqueda que se usarán para la fundamentación. Si no se especifica, el valor predeterminado es 5.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "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 tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Quota

La cuota predeterminada es de 200 instrucciones por minuto. Si necesitas aumentar los límites de frecuencia, comunícate con support@exa.ai y con tu equipo de la cuenta de Google con tu caso de uso y tus requisitos.

Facturación

El uso de la fundamentación con Exa genera los siguientes cargos:

  • Consumo de tokens de Gemini: Tokens de instrucción, tokens de razonamiento y tokens de salida. Para obtener más información, consulta Precios.
  • Fundamentación de Gemini con tus datos: Para obtener más información, consulta Precios.
  • Precios por el uso de la API de búsqueda de Exa: Para obtener más información, consulta la página de precios de Exa.