Agentes IA con Flowise

0 de 22 lecciones completas (0%)

3. Flujos de Agentes

3.7- Proyecto – Chatbot con RAG (Base de Conocimiento)

¡Hola y bienvenido/a al proyecto práctico de RAG! En la lección anterior vimos la teoría, y ahora vamos a aplicar todo ese conocimiento para construir un chatbot experto desde cero.

El Plan de Construcción

Esto es lo que vamos a montar:

  1. Una Base de Conocimiento (Document Store): La crearemos en Flowise y la alimentaremos con documentos PDF. Esta base incluirá:
    • Embeddings: Usaremos OpenAI.
    • Almacén de Vectores (Vector Store): Usaremos Upstash.
    • Gestor de Registros (Record Manager): Usaremos Supabase para evitar duplicados y gestionar borrados.
  2. Un Agente Experto: Un agente simple que, en lugar de usar su conocimiento general, consultará exclusivamente nuestra Base de Conocimiento para responder.

Para este ejemplo, he descargado dos artículos de Wikipedia en formato PDF: uno sobre Esquí y otro sobre Snowboard. Estos serán el «cerebro» de nuestro agente.

¡Manos a la obra!


Parte 1: Creación de Nuestra Base de Conocimiento («Document Store»)

Paso 1.1: Crear el «Document Store» y Cargar los Archivos

  1. En el menú de Flowise, ve a Document Stores.
  2. Haz clic en Add New y crea una nueva base de conocimiento. La llamaremos «Deportes de Invierno».
  3. Entra en ella y haz clic en Add Document Loader.
  4. Selecciona PDF File y sube el primer archivo (por ejemplo, snowboarding.pdf).

Paso 1.2: Dividir el Texto (Text Splitter)

No podemos procesar el PDF de golpe. Necesitamos dividirlo.

  1. Justo debajo de la carga del PDF, activa Use Text Splitter.
  2. Hay varias opciones, pero la más común y versátil es Recursive Character Text Splitter. Selecciónala.
  3. Configura los parámetros:
    • Chunk Size (Tamaño del Chunk): Define el tamaño máximo de cada trozo de texto. Pondremos 2000 para tener trozos un poco más grandes.
    • Chunk Overlap (Solapamiento): Indica cuántos caracteres del final de un chunk se repiten al principio del siguiente. Esto es crucial para no perder el contexto entre un trozo y otro. Dejaremos el valor por defecto de 200.
  4. Puedes hacer clic en Preview Chunks para ver cómo Flowise ha dividido tu documento. Verás que ha generado unos 40 chunks.
  5. Haz clic en Process.

¡Perfecto! Ahora, repite exactamente el mismo proceso para el segundo documento, skiing.pdf. Al final, tendrás los dos documentos procesados y divididos en chunks (el de esquí generará unos 10 chunks).

Paso 1.3: «Upsert» – Conectando los Componentes RAG

Ahora que tenemos los chunks, necesitamos convertirlos en vectores y guardarlos. Este proceso se llama «Upsert» (una combinación de Update e Insert).

  1. Haz clic en el botón Upsert All Chunks. Se abrirá una ventana de configuración.
  2. Embeddings: Selecciona OpenAI Embeddings y tus credenciales.
    • Importante: En el Model Name, elige text-embedding-3-small. Este modelo es eficiente y compatible con la configuración gratuita de Upstash.
  3. Vector Store: Selecciona Upstash y tus credenciales.
    • Ve a tu panel de Upstash. Deberías tener un índice vectorial ya creado (si no, créalo ahora). El mío se llama wintersports-index. Actualmente, tiene 0 registros.

Nota: Si no tienes las credenciales o el índice de Upstash, por favor, revisa la sección anterior donde se explica cómo configurarlo todo.


Parte 2: La Importancia del Gestor de Registros (Record Manager)

El Problema: Datos Duplicados

Para entender por qué necesitamos un Gestor de Registros, vamos a hacer el «Upsert» sin él.

  1. En la ventana de Upsert, haz clic en el botón Upsert. El proceso comenzará y añadirá nuestros ~50 chunks a Upstash.
  2. Si ahora vas a Upstash y refrescas, verás que tu índice tiene 50 vectores. ¡Genial!

Pero, ¿qué pasa si hacemos Upsert otra vez? Inténtalo. Flowise volverá a añadir los 50 registros. Si revisas Upstash, ¡ahora tendrás 100 registros! Son todo duplicados, lo cual es ineficiente y problemático.

La Solución: Configurar Supabase como Gestor de Registros

  1. Primero, para empezar de cero, ve a Upstash y borra todos los registros de tu índice.
  2. Vuelve a Flowise, a la configuración de «Deportes de Invierno». Haz clic en Add Record Manager.
  3. Selecciona Postgres y luego Supabase como credenciales.
  4. Configuración de Supabase:
    • Ve a tu panel de Supabase y crea un nuevo proyecto (ej: «wintersports-flowise»).
    • Una vez creado, ve a la configuración del proyecto -> Database -> Connection pooling. Copia los datos (Host, Database, Port, User) y pégalos en tus credenciales de Supabase en Flowise. No olvides añadir tu contraseña de la base de datos.
    • Guarda las credenciales.
  5. Vuelve a la ventana de Upsert All Chunks. Ahora verás que el Record Manager de Supabase ya está seleccionado.
  6. Haz clic en Upsert. Verás que se añaden los 50 registros.
  7. Ahora, haz clic en Upsert de nuevo. ¡Mira la magia! El resultado será: «Skipped 50» (Omitidos 50). El Gestor de Registros detectó que esos chunks ya existían y evitó la duplicación.

Extra: Gestión de Borrados

El Record Manager también sirve para eliminar datos.

  1. En la configuración de «Deportes de Invierno», busca la sección del Record Manager y cambia la opción Cleanup de None a Full. Esto le dice que también gestione los borrados.
  2. Ahora, elimina uno de los documentos, por ejemplo skiing.pdf.
  3. Vuelve a hacer Upsert All Chunks. El resultado será: «Skipped 40, Deleted 10». El gestor mantuvo los 40 chunks de snowboard que ya existían y borró los 10 que pertenecían al archivo de esquí que eliminamos. ¡Es un sistema robusto!

(Vuelve a añadir el archivo de esquí y haz Upsert para tener la base de conocimiento completa de nuevo).


Parte 3: Usar Nuestra Base de Conocimiento con un Agente

  1. Ve a Agent Flows y crea un nuevo flujo.
  2. Añade un Agent Node y llámalo «Agente Deportes de Invierno».
  3. Configúralo:
    • Modelo: Elige un modelo de OpenAI.
    • System Prompt: Dale un rol claro. Ej: «Eres un agente experto en deportes de invierno. Tus respuestas se basan únicamente en la información sobre esquí y snowboard que se te ha proporcionado.»
  4. Conectar la Base de Conocimiento:
    • En la sección Knowledge Base, selecciona nuestra base «Deportes de Invierno».
    • Añade una descripción. Esto es útil para que el agente sepa qué hay dentro. Ej: «Base de conocimiento sobre deportes de invierno, en particular esquí y snowboard.»
  5. Guarda el flujo.

Parte 4: ¡A Chatear con Nuestro Experto!

¡Llegó el momento de la verdad!

  1. Abre el chat de tu nuevo flujo.
  2. Haz una pregunta muy específica cuya respuesta solo pueda estar en tus documentos. Por ejemplo, en el artículo de esquí se menciona una técnica llamada «Telemark». Pregunta: «¿Qué es el Telemark?»
  3. El agente responderá correctamente: «El esquí Telemark es una técnica de giro…».
  4. Si haces clic en el icono </> del nodo del agente, verás en la ejecución que usó la herramienta «Knowledge Base – Deportes de Invierno» para encontrar la respuesta.

¡Felicidades! Has construido un chatbot con una base de conocimiento externa, funcional y bien gestionada. Ahora puedes integrar este agente en una web o usarlo como necesites.

Nos vemos en la siguiente lección.

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 de terceros

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.