En esta lección final, pasamos a la acción. Vamos a tomar nuestro flujo de ingesta básico y lo vamos a transformar en un sistema profesional, dinámico y contextualmente inteligente, implementando las técnicas avanzadas que discutimos en la lección anterior.
Mejora 1: Creando una Entrada de Datos Dinámica y Flexible
Nuestro pipeline inicial dependía de un archivo manual. Un sistema real necesita ser automático y flexible.
- Activador Dinámico (Dynamic Trigger):
- Reemplazamos el
Manual Trigger
por unGoogle Drive Trigger
. - Lo configuramos para que se active cada vez que un nuevo archivo es creado en una carpeta específica de nuestro Google Drive. Esto automatiza el inicio del proceso de ingesta.
- Reemplazamos el
- Soporte para Múltiples Formatos:
- ¿Y si subimos un PDF, un CSV o un archivo de texto? Usamos un nodo
Switch
para dirigir el flujo según el tipo de archivo. - El nodo
Switch
comprueba el tipo de archivo (ej:{{ $binary.data.fileType }}
) y lo envía a la ruta de procesamiento correcta (ej: una ruta para PDFs, otra para CSVs). - Al final, todas las rutas convergen en un nodo
Set
que estandariza los datos, asegurando que el resto del flujo funcione con cualquier tipo de entrada.
- ¿Y si subimos un PDF, un CSV o un archivo de texto? Usamos un nodo
Mejora 2: Implementando la Recuperación Contextual
Ahora, vamos a implementar la técnica de enriquecimiento de chunks para solucionar la «amnesia contextual».
- Limpieza de la Base de Datos: Primero, vaciamos nuestra tabla
documents
en Supabase para empezar de cero con datos de alta calidad. - Integración del Flujo de Contexto: Insertamos el sub-flujo que analizamos en la lección anterior (basado en el trabajo de Mamut) en nuestro pipeline. Este sub-flujo se encarga de:
- Dividir el documento de forma recursiva.
- Enviar cada chunk a un LLM (usaremos Gemini de Google por su bajo coste y alta ventana de contexto) para que genere un resumen contextual y corrija posibles errores de división.
- Formatear la salida para que esté lista para ser cargada.
El Coste Oculto de la Calidad: Latencia en la Ingesta
Al probar este nuevo flujo, nos encontramos con una lección importante. El proceso de enriquecimiento, que implica una llamada a la API del LLM por cada chunk, es significativamente más lento. Procesar los 730 chunks de nuestro documento de Netflix podría llevar mucho tiempo.
- Lección Aprendida: Añadir inteligencia y contexto a nuestra ingesta tiene un coste, en este caso, de tiempo de procesamiento. Esto es un recordatorio crucial de que la ingesta de datos en un sistema RAG profesional a menudo se diseña como un proceso en segundo plano (background job), no como algo que ocurre en tiempo real.
- Solución para la Demo: Para poder continuar con nuestro laboratorio, añadimos un nodo
Limit
para procesar solo los primeros 50 chunks, lo que nos permitirá verificar los resultados rápidamente.
Verificando el Resultado: Chunks Inteligentes
Al examinar la salida, vemos el éxito de nuestro nuevo pipeline. Un chunk que antes era una frase aislada, ahora se ve así:
[Contexto: El fragmento es del índice del formulario 10-K de Netflix de 2024, que detalla la estructura del informe financiero…] Parte I, Ítem 1. Negocio. Ítem 1A. Factores de Riesgo…
El chunk ahora es una unidad de información autónoma y rica en contexto. Tras cargar estos 50 chunks enriquecidos en Supabase, estamos listos para la prueba final.
La Hora de la Verdad: ¿Hemos Solucionado la Amnesia Contextual?
Volvemos a nuestro agente de recuperación de la lección anterior y le hacemos la misma pregunta que falló estrepitosamente:
- Pregunta: «¿Cuáles son los documentos a los que tienes acceso?» (Una forma indirecta de pedir el índice).
- Respuesta del Agente: (El agente ahora lista de forma precisa y completa todos los ítems del índice, desde la Parte I hasta la Parte IV, porque cada chunk contiene el contexto «índice del formulario 10-K…»)
- Veredicto: ✅ ÉXITO TOTAL. Hemos resuelto el problema de la «amnesia contextual». Nuestro agente ahora puede reconstruir información que abarca múltiples chunks gracias a la inteligencia que añadimos en la fase de ingesta.
¡Felicidades! Has completado el viaje desde un sistema RAG básico y con limitaciones hasta un pipeline profesional, dinámico y contextualmente consciente, capaz de ofrecer respuestas mucho más precisas y fiables.