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
fastyinstant. El valor predeterminado esfast, 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. Usainstantpara 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
fastyinstant. El valor predeterminado esfast, 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. Usainstantpara 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
fastyinstant. El valor predeterminado esfast, 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. Usainstantpara 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
fastyinstant. El valor predeterminado esfast, que proporciona resultados integrales con latencia reducida y es adecuado para la búsqueda para el usuario y los flujos de trabajo interactivos. Usainstantpara 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.