5. Sistemas RAG con n8n

0 de 7 lecciones completas (0%)

4. Conectar Google Drive como Fuente de Datos (Trigger) en tu RAG

Descarga el Workflow de n8n de esta lección:

En esta lección, configuraremos Google Drive como una fuente de información dinámica para nuestro flujo RAG en n8n. En lugar de cargar archivos manualmente, aprenderemos a usar un trigger (disparador) que automáticamente detecte nuevos archivos en una carpeta específica de Drive y los procese.

Nota: Mantener el nodo de carga manual que configuramos anteriormente sigue siendo útil. Puedes dejarlo en tu flujo como una ruta alternativa para que los usuarios puedan cargar documentos sin necesidad de usar Google Drive.

Paso 1: Añadir el Nodo Trigger de Google Drive

Comenzaremos por añadir el nodo que vigilará nuestra carpeta de Google Drive.

  1. En tu flujo de n8n, haz clic en el botón + para añadir un nuevo nodo.
  2. Busca y selecciona el nodo Google Drive.
  3. Una vez añadido, verás que el nodo de Google Drive tiene varias categorías. Expande la sección «Triggers».
  4. Verás dos opciones principales: una para monitorear un archivo específico y otra para una carpeta. Selecciona la opción «On change or changes in folder» (Cuando haya un cambio o cambios en la carpeta).

Paso 2: Configuración de Credenciales (Recordatorio)

Crear credencial en n8n: consulta la lección: https://jerocuevas.com/leccion/como-crear-credenciales-en-n8n-con-integraciones-avanzadas-en-google-workspace/ donde realizamos esta configuración paso a paso. Una conexión exitosa te permitirá ver tus carpetas y archivos de Drive directamente en el nodo de n8n.

Para que n8n pueda acceder a tu Google Drive, necesita credenciales válidas.

  • Asegúrate de haber completado el proceso de configuración de la API de Google Drive en la Google Cloud Console.
  • Esto incluye:
    • Habilitar la API de Google Drive.
    • Crear un ID de Cliente OAuth 2.0.
    • Obtener el Client ID y el Client Secret.
    • Configurar la URL de redireccionamiento (Callback URL) en tus credenciales de n8n.

Paso 3: Preparar los Datos de Prueba en Google Drive

Necesitamos un conjunto de archivos para que nuestro trigger los detecte.

descarga el archivo .zip que contiene los documentos de ejemplo:

  1. Descomprímelo. Encontrarás una carpeta llamada (por ejemplo) «Documentos-legales».
  2. Ve a tu cuenta de Google Drive y crea una nueva carpeta. Para este ejemplo, la llamaremos «Documentos Legales RAG».
  3. Sube todas las carpetas y archivos de ejemplo dentro de esta nueva carpeta.

Paso 4: Configurar el Nodo Trigger

Ahora, volvamos a n8n para finalizar la configuración del nodo:

  1. Polling: Configura la frecuencia con la que n8n debe revisar si hay cambios. Puedes ajustarlo a «Cada Día» (Every Day) o «Cada Hora» (Every Hour), según tus necesidades. Ten en cuenta que, independientemente de esto, el trigger se ejecutará cada vez que actives el flujo manualmente para pruebas.
  2. Selección de Carpeta: En las opciones del nodo, selecciona la carpeta que acabas de crear («Documentos Legales RAG»).
    • Solución de problemas: Si acabas de crear la carpeta y no aparece en la lista, guarda tu flujo, recarga la pestaña del navegador de n8n y vuelve a intentarlo.
  3. Evento a Escuchar: Define qué acción debe disparar el flujo. Para nuestro caso de uso, activa la opción «File Created» (Archivo Creado). Esto hará que el flujo se inicie cada vez que un nuevo documento se añada a esa carpeta.

Paso 5: El Paso Crucial: Descargar el Archivo

Este es un punto crítico que suele causar confusión: el nodo trigger no descarga el archivo. Simplemente «avisa» que un archivo ha cambiado y proporciona sus metadatos (como el nombre y el ID).

Necesitamos añadir un segundo paso para obtener el contenido binario del archivo:

  1. Haz clic en el + después de tu nodo trigger de Google Drive.
  2. Añade otro nodo de Google Drive.
  3. En la configuración de este segundo nodo, en la sección «Operation», selecciona «Download File» (Descargar Archivo).
  4. En el campo «File ID», vamos a insertar dinámicamente el ID que nos proporciona el nodo trigger. Usa el selector de expresiones y busca el ID del archivo proveniente del nodo anterior. La expresión será algo similar a {{ $json.id }}.
  5. Conecta la salida de este nodo «Download File» al resto de tu flujo (al nodo que procesa el binario y lo envía al vector store).

Filtrado Opcional: Si en tu carpeta de Drive aparecen archivos «basura» (como .DS_Store en macOS), podrías añadir un nodo «IF» entre el trigger y el nodo de descarga para filtrar los archivos por extensión (ej. «solo continuar si la extensión es .pdf o .txt»).

Paso 6: Prueba Inicial e Identificación del Problema

Antes de ejecutar la prueba, vamos a limpiar nuestra base de datos para evitar duplicados.

  1. Ve a tu gestor de base de datos (ej. pgAdmin) y ejecuta un TRUNCATE en tu tabla de vectores para borrar toda la información existente.
  2. Regresa a n8n y ejecuta el flujo.

Resultado de la Prueba:

Notarás algo interesante. Si subiste los archivos directamente dentro de la carpeta «Documentos Legales RAG», el flujo los detectará, descargará e indexará correctamente.

Sin embargo, el flujo fallará si los archivos están dentro de subcarpetas. El trigger que hemos configurado no es recursivo; solo vigila el nivel raíz del directorio que seleccionamos.

Conclusión y Próximos Pasos

Hemos conectado Google Drive exitosamente como un disparador para nuestro sistema. Sin embargo, nos enfrentamos a un nuevo desafío: ¿cómo procesar automáticamente todos los archivos en todas las subcarpetas de nuestro directorio principal?

En la próxima lección, resolveremos exactamente este problema. Aprenderemos a implementar un bucle (loop) que barrerá recursivamente todos los directorios y subdirectorios, tomará cada archivo uno por uno y lo enviará a nuestro flujo de procesamiento.

Resumen de privacidad
Logo JeroCuevas.com

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Analítica

Esta web utiliza Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.