Introducción
En esta lección aprenderás a construir tu primera aplicación RAG (Retrieval-Augmented Generation) usando Flowise. Crearemos un sistema que puede hacer web scraping de contenido desde páginas web y permitir hacer preguntas sobre ese contenido.
¿Qué vamos a construir?
Construiremos un «RAG Q&A desde Web» – una aplicación que:
- Extrae contenido de páginas web (web scraping)
- Procesa y almacena ese contenido en una base de datos vectorial
- Permite hacer preguntas sobre el contenido extraído
Paso 1: Configuración Inicial
Creando el Chatflow
- Ve a la sección Chatflows en Flow-wise
- Presiona «Add New» para crear un nuevo canvas vacío
- Guarda el proyecto con el nombre: «RAG Q&A from Web»
Eligiendo la Cadena Principal
En lugar de usar un agente simple, utilizaremos una cadena (chain) para ver todo el proceso:
- Ve a Chains → Conversational Retrieval Q&A Chain
- Esta es la cadena más potente para aplicaciones RAG
Paso 2: Configurando el Modelo de Chat
Conectando OpenAI
- Busca Chat Models → ChatOpenAI
- Conecta el nodo al chain principal
- Configurar credenciales:
- Ve a OpenAI Dashboard → API Keys
- Crea una nueva clave secreta
- En Flow-wise: Create New Credentials
- Pega tu API key
Configuración del Modelo
- Modelo recomendado: GPT-4o Mini (económico y confiable)
- Temperatura: 0.9 (buena para conversaciones)
- Cargas de imagen: Deshabilitado (para este ejemplo)
Paso 3: Base de Datos Vectorial
Seleccionando el Vector Store
Para simplicidad, usaremos In-Memory Vector Store:
- Ventajas: No requiere API keys adicionales
- Desventajas: Los datos se pierden al reiniciar (solo para pruebas)
- Para producción: Recomendamos Pinecone, Chroma o FAISS
Conectando el Vector Store
- Busca Vector Stores → In-Memory Vector Store
- Conecta al chain principal
- Este almacén funciona localmente en tu máquina
Paso 4: Modelo de Embeddings
Configurando OpenAI Embeddings
- Busca Embeddings → OpenAI Embeddings
- Usa las mismas credenciales creadas anteriormente
- Modelo recomendado:
text-embedding-3-small
- Más económico (2 centavos por millón de tokens)
- Eficacia del 99.9% para la mayoría de casos
Parámetros Importantes
- Top K: 4 (número de resultados similares devueltos)
- Para datasets grandes, puede incrementarse hasta 20
Paso 5: Cargador de Documentos
Web Scraping con Brave Search API
- Obtener API Key:
- Ve a Brave Search API
- Regístrate (2000 consultas gratis por mes)
- Crea una nueva API key
- Configurar en Flow-wise:
- Busca Document Loaders → Brave Search API Document Loader
- Ingresa tus credenciales de Brave
- Query: Puedes usar una URL específica o términos de búsqueda
Alternativas Sin API Keys
Si prefieres no usar APIs externas, puedes usar:
- Folder with Files (carga archivos locales)
- PDF File (documentos PDF)
- Plain Text (archivos de texto)
Paso 6: Divisor de Texto (Text Splitter)
HTML to Markdown Text Splitter
Dado que extraemos contenido web (HTML), usamos un divisor especializado:
- Seleccionar: HTML to Markdown Text Splitter
- Configuración:
- Chunk Size: 2000 (tamaño de cada fragmento)
- Chunk Overlap: 200 (superposición entre fragmentos)
¿Por qué estos números?
- Chunk Size grande: Para contenido web complejo
- Overlap: Mantiene contexto entre fragmentos
Paso 7: Procesamiento y Embeddings
Insertar en Vector Store
- Presiona «Upsert to Vector Store»
- El sistema automáticamente:
- Extrae contenido con Brave Search API
- Divide el HTML en fragmentos con el splitter
- Crea embeddings con OpenAI
- Almacena en la base de datos vectorial
Verificación
- Revisa cuántos fragmentos se crearon
- Examina el contenido procesado
- Confirma que el contenido se almacenó correctamente
Paso 8: Personalización Avanzada
Prompt del Sistema
El chain incluye un prompt especializado que:
- Solo responde preguntas sobre el contenido entrenado
- Dice «No estoy seguro» para preguntas fuera del tema
- Mantiene el enfoque en el dominio específico
Memoria Opcional
Puedes agregar Buffer Window Memory para:
- Recordar conversaciones anteriores
- Mantener contexto durante múltiples preguntas
- Configurar cuántos mensajes recordar
Documentos Fuente
Activa «Return Source Documents» para:
- Ver qué fragmentos se usaron en cada respuesta
- Verificar la precisión de las respuestas
- Entender cómo funciona la recuperación
Paso 9: Pruebas y Uso
Preguntas de Prueba
- Pregunta sobre el contenido: «¿Qué es prompt engineering?»
- Pregunta fuera del tema: «¿Qué debería comer hoy?»
- Verificar memoria: «¿Cuál es mi nombre?» (después de presentarte)
Comportamiento Esperado
- Respuestas precisas sobre el contenido entrenado
- «No estoy seguro» para temas no relacionados
- Mantenimiento del contexto conversacional
Conceptos Clave Aprendidos
Arquitectura RAG
- Retrieval: Búsqueda de información relevante
- Augmentation: Enriquecimiento del prompt con contexto
- Generation: Generación de respuesta basada en contexto
Componentes Esenciales
- Chat Model: El cerebro que genera respuestas
- Vector Store: Almacén de conocimiento
- Embeddings: Representación numérica del contenido
- Document Loader: Fuente de información
- Text Splitter: Procesador de contenido
Mejores Prácticas
- Usar modelos económicos para experimentación
- Configurar memoria para conversaciones largas
- Especializar el prompt para el dominio específico
- Verificar la calidad de los embeddings creados
Próximos Pasos
En las siguientes lecciones aprenderás:
- Cómo usar este workflow sin construirlo desde cero
- Integración con modelos open source
- Bases de datos vectoriales más robustas
- Técnicas avanzadas de web scraping
Resumen de la Configuración
Conversational Retrieval Q&A Chain
├── ChatOpenAI (GPT-4o Mini)
├── In-Memory Vector Store
├── OpenAI Embeddings (text-embedding-3-small)
├── Brave Search API Document Loader
├── HTML to Markdown Text Splitter
└── Buffer Window Memory (opcional)
Esta configuración te da una base sólida para construir aplicaciones RAG más complejas y especializadas.