RAG y búsqueda semántica: el pipeline que diseñé
El RAG de mi plataforma de agentes es un diseño, no un sistema en uso: está en construcción, en fase 0. Esta página describe cada etapa del pipeline y qué todavía no existe.
Qué es RAG
RAG (generación aumentada por recuperación) responde con información que el modelo no tenía: primero se buscan los fragmentos relevantes de los documentos y después se le entregan al modelo junto con la pregunta. La búsqueda semántica usa embeddings, vectores que representan el significado de un texto, para encontrar fragmentos parecidos a la pregunta aunque no compartan palabras.
El pipeline previsto
- Entrada: documentos no estructurados como PDF, Word, escaneos e imágenes que necesitan OCR, y correo, TXT y MD.
- Parser y OCR con PyMuPDF y Tesseract, y luego chunking y embeddings, en workers sobre Redis y Celery.
- Almacenamiento en PostgreSQL con pgvector: los documentos se guardan con hash y versiones, y los chunks con sus embeddings.
- Recuperación: la Retrieval Tool trae los top-k fragmentos, siempre dentro de un tenant.
- Respuesta: el agente de RAG, derivado por el orquestador de LangGraph, responde, y un guardrail de salida valida la respuesta y cita la fuente.
Estado
Stack relacionado
- PostgreSQL + pgvector
- PyMuPDF
- Tesseract
- LangChain
- Celery