5. Sistemas RAG con n8n

0 de 7 lecciones completas (0%)

1. Crear el Sistema de Ingestión de Datos para tu RAG

¡Hola y bienvenido/a! En esta lección, daremos el primer paso fundamental para construir nuestro propio sistema de Generación Aumentada por Recuperación (RAG) utilizando la poderosa plataforma de automatización n8n.

Nuestro objetivo hoy es construir la primera mitad del sistema: el proceso de ingestión. Aprenderás a crear un workflow que reciba tus documentos, los procese y los almacene en una base de datos vectorial. Este es el corazón que alimentará de conocimiento a tu futura Inteligencia Artificial.

1. Comprendiendo las Dos Fases de un Sistema RAG

Antes de empezar, es crucial entender que todo sistema RAG se compone de dos fases principales:

  1. Fase de Ingestión (Alimentación): Consiste en tomar nuestros documentos (PDFs, texto, etc.), dividirlos en fragmentos manejables y convertirlos en vectores numéricos (un proceso llamado embedding). Estos vectores se almacenan en una base de datos vectorial. Esta es la fase que construiremos en esta lección.
  2. Fase de Consulta (Recuperación): Cuando un usuario hace una pregunta, esta también se convierte en un vector. El sistema busca en la base de datos los vectores de documentos más similares a la pregunta, los recupera y se los entrega a un modelo de lenguaje (como ChatGPT) junto con la pregunta original para que genere una respuesta precisa y contextualizada.

2. Paso a Paso: Construyendo el Workflow de Ingestión en n8n

Vamos a crear el workflow desde cero. Para una mejor organización, dividiremos visualmente nuestro lienzo en n8n usando notas adhesivas (Sticky Notes) para diferenciar la fase de «Ingestión» de la de «Consulta».

Paso 2.1: El Disparador (Trigger) – Un Formulario para Subir Documentos

Necesitamos una forma de introducir nuestros documentos en el sistema. Un formulario web es la solución perfecta.

  1. Añade un nodo Trigger: Haz clic en el + y busca el nodo Form Trigger.
  2. Configura el Formulario:
    • Title: Asígnale un título descriptivo, como «Añadir Documentos a la Base de Datos».
    • Fields (Campos):
      • Haz clic en + Add field.
      • Field Name: Nómbralo «documentos».
      • Field Type: Selecciona File.
      • Multi-File Upload: Activa esta opción para permitir subir varios archivos a la vez.
      • Allowed File Types: Para este ejemplo, especifica application/pdf para aceptar únicamente archivos PDF.
      • Required: Marca esta casilla para que el campo sea obligatorio.

Al activar y probar este nodo, verás que genera una URL pública con un formulario listo para subir tus archivos.

Paso 2.2: El Corazón del Sistema – El Nodo Vector Store

Aquí ocurre la magia. Este nodo se encargará de recibir los archivos, procesarlos y almacenarlos.

  1. Añade el nodo Simple Vector Store: Búscalo y conéctalo después del Form Trigger. n8n ofrece integraciones con bases de datos más complejas como Pinecone o Supabase, pero esta es ideal para empezar.
  2. Configura la Acción:
    • Action: Selecciona Upsert Documents. Esta acción sirve tanto para insertar nuevos documentos como para actualizar los existentes.
    • Store Name: Asigna un nombre único, por ejemplo, mi_base_rag. Importante: Deberás usar exactamente este mismo nombre cuando construyas la fase de consulta.

Este nodo tiene dos componentes internos cruciales que debemos configurar: el Modelo de Embedding y el Loader.

Paso 2.3: Configurando el Modelo de Embedding

El modelo de embedding es el «traductor» que convierte el texto en vectores.

  1. Selecciona el modelo: Haz clic en Embedding Model y elige OpenAI Embeddings.
  2. Credenciales: Selecciona o crea tus credenciales de OpenAI.
  3. Modelo a Utilizar: Tienes dos opciones principales:
    • text-embedding-3-small: Un modelo eficiente y rápido, con vectores de 1536 dimensiones. Ideal para la mayoría de los casos.
    • text-embedding-3-large: Un modelo más potente con vectores de 3072 dimensiones. Úsalo para documentos muy técnicos, largos o complejos (como contratos legales), donde la precisión semántica es crítica. Ofrece mejores resultados a un coste ligeramente superior.

Para este ejemplo, seleccionaremos el modelo large. Recuerda: El modelo que uses para la ingestión debe ser el mismo que uses para la consulta.

Paso 2.4: Configurando el Loader y la Fragmentación (Chunking)

El Loader es el encargado de leer y pre-procesar los documentos antes del embedding. Su tarea más importante es la fragmentación o chunking.

¿Por qué fragmentar los documentos? Un LLM no puede procesar un libro de 300 páginas de una sola vez. Dividir el documento en pequeños fragmentos (chunks) permite al sistema encontrar y utilizar solo las partes más relevantes para una pregunta específica, ahorrando costes y mejorando drásticamente la precisión.

  1. Selecciona el Loader: En la configuración del nodo Simple Vector Store, haz clic en Loader y elige Default Data Loader.
  2. Configura el Loader:
    • Binary Property: Asegúrate de que el campo apunte a los datos binarios que vienen del formulario. n8n suele hacerlo automáticamente.
    • Text Splitter: Aquí definimos cómo se cortará el texto. Selecciona RecursiveCharacterTextSplitter. Este método es inteligente, ya que intenta realizar los cortes respetando la estructura del texto, como puntos y aparte o finales de párrafo.
  3. Define la Estrategia de Fragmentación:
    • Chunk Size (Tamaño del Fragmento): Define el tamaño máximo de cada fragmento en caracteres. Un valor estándar y recomendado es 1000.
    • Chunk Overlap (Solapamiento): Este es un parámetro clave. Define cuántos caracteres del final de un fragmento se repiten al inicio del siguiente. Esto ayuda a mantener el contexto entre fragmentos, evitando que una idea se corte bruscamente. Un buen punto de partida es 250.

Con esta configuración, cada fragmento tendrá hasta 1000 caracteres, con un solapamiento de 250 caracteres con el fragmento anterior y el siguiente, asegurando la continuidad semántica.

3. Ejecución y Verificación

¡Hemos terminado! Tu workflow de ingestión está completo.

  1. Guarda y Activa el workflow.
  2. Ejecuta una prueba: Abre la URL del formulario, selecciona un archivo PDF de tu ordenador y envíalo.
  3. Verifica el resultado: En la vista de ejecución de n8n, verás que el workflow se ha completado. Si haces clic en el nodo Simple Vector Store, verás en la salida el número de fragmentos (chunks) que se han generado y añadido a tu base de datos vectorial. ¡Cada uno de ellos es ahora una pieza de conocimiento lista para ser consultada!

Resumen de la Lección

¡Felicidades! Has construido con éxito la columna vertebral de tu sistema RAG: el proceso de ingestión. Ahora tienes un workflow funcional capaz de tomar documentos PDF, procesarlos de manera inteligente en fragmentos contextuales y almacenarlos como vectores en una base de datos.

En la próxima lección, construiremos la segunda parte: el workflow de consulta. Aprenderás a crear una interfaz para hacer preguntas, buscar en la base de datos que acabamos de alimentar y generar respuestas precisas utilizando la información de tus propios documentos.

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.