Volver al blog Tutorial

Tutorial: Cómo crear un RAG con Google Gemini File Search y n8n

En este tutorial vamos a implementar un sistema RAG (Retrieval-Augmented Generation) utilizando la nueva capacidad nativa de Google Gemini: File Search.

Comparativa RAG: Sin RAG vs Con RAG

¿Para qué sirve un RAG realmente?

Te lo explico con un ejemplo sencillo y visual, imagina que eres un estudiante. Seguro que al igual que yo has odiado memorizar sin sentido.👇

Comparativa RAG Google vs Tradicional

Arquitectura RAG

A diferencia de los sistemas tradicionales donde necesitas una base de datos vectorial externa (como Pinecone, Qdrant, Supabase ..), aquí Google se encarga de vectorizar, almacenar y recuperar la información por nosotros.

"Usaremos n8n para orquestar la subida de documentos y la consulta mediante un Agente AI"

La Lógica del Workflow

Workflow de n8n

El sistema se divide en dos partes:

  1. Ingesta de Datos: Descarga un archivo, crea el "almacén" en Google y sube el documento.
  2. Agente de Consulta: Un chatbot que utiliza una herramienta personalizada para consultar esa base de conocimientos.

Fase 1: Ingesta y Vectorización (El Backend)

El objetivo de esta fase es tomar un documento (PDF, CSV, etc.) y dejarlo listo para que Gemini lo consuma.

1. Obtención del Archivo

En el workflow, usamos el nodo Google Drive (Download file).

  • Técnico: Descargamos el archivo como binario.
  • Nivel Usuario: n8n va a tu Drive, coge el archivo que quieres que la IA "lea" y lo guarda temporalmente en memoria.

2. Creación del "Store" (Almacén)

Usamos un nodo HTTP Request contra la API de Gemini (POST /v1beta/fileSearchStores).

  • Qué hace: Crea un contenedor lógico en los servidores de Google llamado vector_db. Este será nuestro índice de búsqueda.

3. Subida y Vinculación

Aquí ocurre la magia de la API de Gemini mediante dos peticiones HTTP secuenciales:

  1. Upload: Subimos el binario a upload/v1beta/files. Google nos devuelve un uri del archivo.
  2. Import: Vinculamos ese archivo al "Store" que creamos antes.

Nota clave: El nodo Merge es vital aquí. Espera a que tengamos tanto el ID del Store creado como el Archivo descargado antes de proceder a la importación.

Fase 2: El Agente RAG (El Frontend)

Ahora que Google tiene nuestros datos indexados, configuramos el cerebro que responderá las preguntas.

1. El Agente Híbrido

En la plantilla tenemos una configuración interesante:

  • Cerebro: OpenAI Chat Model (GPT-4o-mini).
  • Herramienta: Google Gemini File Search.
  • Explicación: Usas la capacidad de razonamiento de GPT para entender al usuario, pero la búsqueda de información se delega a la infraestructura de Google.

2. La Herramienta Personalizada (HTTP Request Tool)

Esta es la pieza más importante. Hemos creado una herramienta que el agente puede "llamar" cuando necesita información.

  • Configuración: Es un nodo HTTP Request Tool que apunta a models/gemini-1.5-flash:generateContent.
  • El Payload (JSON): Le enviamos a Gemini el prompt del usuario y le indicamos explícitamente que use su herramienta fileSearch apuntando a nuestro fileSearchStore.

{
  "contents": [{
    "parts": [{ "text": "$json.chatInput" }]
  }],
  "tools": [{
    "fileSearch": {
      "fileSearchStoreNames": ["fileSearchStores/TU_ID_DE_STORE"]
    }
  }]
}

Ventajas de este método

  1. Ventana de Contexto: Gemini 1.5/2.0 tiene una ventana de contexto masiva, ideal para procesar documentos enteros sin "trocearlos" (chunking) agresivamente.
  2. Sin Vector DB externa: Te ahorras gestionar y pagar servicios como Pinecone. Todo vive dentro de la API de Google.
  3. Gestión de Archivos: El workflow incluye nodos para Listar y Borrar archivos/stores, permitiéndote limpiar la base de datos y no acumular costes.

Conclusión

Con esta plantilla de n8n, has convertido un proceso complejo de ingeniería de datos (ETL + Vectorización + RAG) en un flujo visual simple.

Solo subes el archivo a Drive, ejecutas la carga una vez, y tu agente ya es un experto en ese documento.

Conclusión tutorial RAG