Fundamentación con la Búsqueda de Google

La fundamentación con la Búsqueda de Google conecta el modelo de Gemini con contenido web en tiempo real y funciona con todos los idiomas disponibles. Esto permite que Gemini proporcione respuestas más precisas y cite fuentes verificables más allá de su fecha límite de conocimiento.

La fundamentación te ayuda a crear aplicaciones que pueden hacer lo siguiente:

  • Aumentar la exactitud fáctica: Reduce las alucinaciones del modelo basando las respuestas en información del mundo real.
  • Acceder a información en tiempo real: Responder preguntas sobre eventos y temas recientes
  • Proporciona citas: Genera confianza en los usuarios mostrando las fuentes de las afirmaciones del modelo.

Python

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3-flash-preview",
    input="Who won the euro 2024?",
    tools=[{"type": "google_search"}]
)

# Print the model's text response
for step in interaction.steps:
    if step.type == "model_output":
        for content_block in step.content:
            if content_block.type == "text":
                print(content_block.text)

JavaScript

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

const client = new GoogleGenAI({});

const interaction = await client.interactions.create({
    model: "gemini-3-flash-preview",
    input: "Who won the euro 2024?",
    tools: [{ type: "google_search" }]
});

const modelStep = interaction.steps.find(s => s.type === 'model_output');
if (modelStep) {
  for (const contentBlock of modelStep.content) {
    if (contentBlock.type === 'text') console.log(contentBlock.text);
  }
}

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3-flash-preview",
    "input": "Who won the euro 2024?",
    "tools": [{"type": "google_search"}]
  }'

Cómo funciona la fundamentación con la Búsqueda de Google

Cuando habilitas la herramienta google_search, el modelo controla todo el flujo de trabajo de búsqueda, procesamiento y citación de información de forma automática.

grounding-overview

  1. Instrucción del usuario: Tu aplicación envía una instrucción del usuario a la API de Gemini con la herramienta google_search habilitada.
  2. Análisis de la instrucción: El modelo analiza la instrucción y determina si la Búsqueda de Google puede mejorar la respuesta.
  3. Búsqueda de Google: Si es necesario, el modelo genera y ejecuta automáticamente una o varias búsquedas.
  4. Procesamiento de los resultados de la búsqueda: El modelo procesa los resultados de la búsqueda, sintetiza la información y formula una respuesta.
  5. Respuesta fundamentada: La API devuelve una respuesta final y fácil de usar que se basa en los resultados de la búsqueda. Esta respuesta incluye la respuesta de texto del modelo con annotations intercalados que contienen las citas, así como los pasos de google_search_call y google_search_result con las búsquedas y las sugerencias de búsqueda.

Cómo comprender la respuesta de fundamentación

Cuando una respuesta se fundamenta correctamente, el texto de salida del modelo incluye annotations intercalados directamente en el bloque de contenido de texto. Estas anotaciones proporcionan información de citas que vincula partes de la respuesta a sus fuentes.

{
  "steps": [
    {
      "type": "thought",
      "summary": [
        {
          "type": "text",
          "text": "The user is asking for the winner of Euro 2024. I need to search for the result of the Euro 2024 final."
        }
      ],
      "signature": "CoMDAXLI2nynRYojJIy6B1Jh9os2crpWLfB0..."
    },
    {
      "type": "google_search_call",
      "arguments": {
        "queries": ["UEFA Euro 2024 winner"]
      }
    },
    {
      "type": "google_search_result",
      "call_id": "search_001",
      "result": [
        {
          "search_suggestions": "<!-- HTML and CSS for the search widget -->"
        }
      ]
    },
    {
      "type": "model_output",
      "content": [
        {
          "type": "text",
          "text": "Spain won Euro 2024, defeating England 2-1 in the final. This victory marks Spain's record fourth European Championship title.",
          "annotations": [
            {
              "type": "url_citation",
              "url": "https://www.aljazeera.com/sports/euro-2024-final",
              "title": "aljazeera.com",
              "start_index": 0,
              "end_index": 56
            },
            {
              "type": "url_citation",
              "url": "https://www.uefa.com/euro2024/news/spain-wins-euro-2024",
              "title": "uefa.com",
              "start_index": 57,
              "end_index": 124
            }
          ]
        }
      ]
    }
  ]
}

Los campos clave en la respuesta son los siguientes:

  • google_search_call : Contiene la búsqueda queries que ejecutó el modelo.
  • google_search_result : Contiene search_suggestions, un fragmento de HTML para renderizar sugerencias de búsqueda en tu IU. Los requisitos de uso completos se detallan en las Condiciones del Servicio.
  • text con annotations : Es la respuesta sintetizada del modelo con citas intercaladas. Cada anotación url_citation vincula un segmento de texto (definido por start_index y end_index) a una URL de origen. Esta es la clave para crear citas intercaladas.

La fundamentación con la Búsqueda de Google también se puede usar en combinación con la herramienta de contexto de URL para fundamentar las respuestas en los datos web públicos y en las URLs específicas que proporciones.

Cómo atribuir fuentes con citas intercaladas

La API devuelve anotaciones url_citation intercaladas en el bloque de contenido de texto, lo que te brinda un control completo sobre cómo mostrar las fuentes en tu interfaz de usuario. Cada anotación incluye start_index y end_index para identificar qué parte del texto cita. A continuación, te mostramos cómo extraerlos y mostrarlos.

Python

for step in interaction.steps:
    if step.type == "model_output":
        for content_block in step.content:
            if content_block.type == "text":
                print(content_block.text)
                if content_block.annotations:
                    print("\nCitations:")
                    for annotation in content_block.annotations:
                        if annotation.type == "url_citation":
                            cited_text = content_block.text[annotation.start_index:annotation.end_index]
                            print(f"  [{annotation.title}]({annotation.url})")
                            print(f"    Cited text: \"{cited_text}\"")

JavaScript

for (const step of interaction.steps) {
  if (step.type === 'model_output') {
    for (const contentBlock of step.content) {
      if (contentBlock.type === 'text') {
        console.log(contentBlock.text);
        if (contentBlock.annotations) {
          console.log("\nCitations:");
          for (const annotation of contentBlock.annotations) {
            if (annotation.type === 'url_citation') {
              const citedText = contentBlock.text.slice(annotation.startIndex, annotation.endIndex);
              console.log(`  [${annotation.title}](${annotation.url})`);
              console.log(`    Cited text: "${citedText}"`);
            }
          }
        }
      }
    }
  }
}

El resultado mostrará el texto seguido de sus citas:

Spain won Euro 2024, defeating England 2-1 in the final. This victory marks Spain's record fourth European Championship title.

Citations:
  [aljazeera.com](https://www.aljazeera.com/sports/euro-2024-final)
    Cited text: "Spain won Euro 2024, defeating England 2-1 in the final."
  [uefa.com](https://www.uefa.com/euro2024/news/spain-wins-euro-2024)
    Cited text: "This victory marks Spain's record fourth European Championship title."

Precios

Cuando usas Fundamentación con la Búsqueda de Google con Gemini 3, se te factura el proyecto por cada búsqueda que el modelo decide ejecutar. Si el modelo decide ejecutar varias búsquedas para responder a una sola instrucción (por ejemplo, buscar "UEFA Euro 2024 winner" y "Spain vs England Euro 2024 final score" en la misma llamada a la API), esto se considera como dos usos facturables de la herramienta para esa solicitud. Para fines de facturación, ignoramos las búsquedas web vacías cuando contamos las búsquedas únicas. Este modelo de facturación solo se aplica a los modelos de Gemini 3. Cuando usas la fundamentación con la Búsqueda con modelos de Gemini 2.5 o anteriores, tu proyecto se factura por instrucción.

Para obtener información detallada sobre los precios, consulta la página de precios de la API de Gemini.

Modelos compatibles

Puedes encontrar todas las capacidades en la página de resumen del modelo.

Modelo Fundamentación con la Búsqueda de Google
Versión preliminar de Gemini 3.1 Flash Image ✔️
Versión preliminar de Gemini 3.1 Pro ✔️
Versión preliminar de Gemini 3 Pro Image ✔️
Versión preliminar de Gemini 3 Flash ✔️
Gemini 2.5 Pro ✔️
Gemini 2.5 Flash ✔️
Gemini 2.5 Flash-Lite ✔️
Gemini 2.0 Flash ✔️

Combinaciones de herramientas compatibles

Puedes usar la fundamentación con la Búsqueda de Google con otras herramientas, como la ejecución de código y el contexto de URL, para potenciar casos de uso más complejos.

Los modelos de Gemini 3 admiten la combinación de herramientas integradas (como la Fundamentación con la Búsqueda de Google) con herramientas personalizadas (llamadas a funciones). Obtén más información en la página de combinaciones de herramientas.

¿Qué sigue?