# Sistema RAG base **Proyecto:** Workspace de tools IA para empresas **Modulo:** RAG **Ultima actualizacion:** 2026-09-17 **Ultima modificacion por:** Agente RAG 2 **Estado:** RAG y OCR desplegados; pendientes correcciones de revision OCR y versionado verificable de servicios --- ## Proposito Definir un sistema RAG base, bien planteado y reutilizable, que pueda integrarse con rapidez en proyectos de clientes y tambien servir como base para tools internas del workspace. La prueba inicial con la carpeta `docs/` de este workspace se utilizara solo como ejemplo practico y entorno real de validacion, no como limite del sistema. Desde la v1, el sistema debe contemplar tambien PDFs como parte valida de las fuentes documentales de entrada. --- ## Que es lo que queremos lograr Queremos construir una base RAG que permita: - indexar informacion relevante de un proyecto - recuperar contexto util en funcion de una consulta - entregar ese contexto a un agente o servicio para mejorar sus respuestas o decisiones - integrarse con rapidez en otros proyectos sin rehacer la arquitectura cada vez En terminos practicos, el objetivo es disponer de una pieza reutilizable que convierta documentacion, conocimiento interno y otras fuentes en contexto accesible para agentes y servicios de IA. --- ## Vision del sistema Este sistema RAG debe quedar preparado para trabajar con diferentes tipos de fuentes, por ejemplo: - documentacion de proyecto - bases de conocimiento internas - contenido operativo de clientes - archivos tecnicos - datos exportados desde otros sistemas La carpeta `docs/` del workspace servira como primer caso real de prueba porque permite validar resultados con un conjunto de informacion pequeno, claro y facil de revisar. --- ## Objetivos principales 1. DiseƱar una base RAG reutilizable y desacoplada del proyecto de prueba. 2. Permitir que pueda conectarse a otros servicios de IA o agentes con una integracion sencilla. 3. Hacer que el sistema funcione con fuentes reales, empezando por `docs/`. 4. Facilitar continuidad entre sesiones, agentes y proyectos gracias a recuperacion de contexto relevante. 5. Dejar lista una arquitectura que luego pueda crecer hacia casos mas complejos. --- ## Caso de prueba inicial La primera validacion se hara con la carpeta `docs/` de este workspace. La idea es comprobar si un agente puede: - localizar rapidamente informacion relevante - entender que se ha hecho y que queda pendiente - responder con base documental sin releer todo manualmente - usar la documentacion del workspace como conocimiento ampliado en tiempo de consulta Esto servira para evaluar si la base conceptual y tecnica del RAG esta bien construida. --- ## Principios del sistema - Reutilizable: debe servir para este workspace y para proyectos de clientes. - Modular: ingesta, indexacion, recuperacion y consumo deben poder evolucionar por separado. - Simple al inicio: la primera version debe ser pequena y validable. - Escalable: debe poder crecer a nuevas fuentes y nuevos casos de uso. - Trazable: el contexto recuperado debe indicar de donde sale. - Facil de integrar: debe poder conectarse rapidamente a agentes, tools o servicios. --- ## Resultado esperado Si el sistema esta bien planteado, deberiamos poder usarlo como una capa de contexto ampliado para agentes y servicios, logrando que consulten conocimiento relevante de forma rapida y util, sin depender de tener toda la informacion cargada manualmente en cada sesion. --- ## Estado actual de la v1 La v1 ya ha alcanzado un estado operativo real. Estado confirmado: - desplegada en `VPS2` - dominio activo: `https://rag.por-correo.com` - conexion operativa con `Qdrant` - soporte funcional para `documental` y `codigo` - API HTTP operativa con ingesta, upload, cleanup, retrieval, answer, chat, catalogo de fuentes/modelos y logs de evaluacion - playground web operativo en `/playground` - contrato OpenAPI y ayuda de descubrimiento operativos en produccion Pruebas funcionales ya superadas: - consulta documental sobre pendientes del workspace - consulta conceptual sobre caracteristicas del RAG - consulta tecnica en modo codigo sobre la construccion de `source_id` ### Ciclo de vida del conocimiento Cada fuente dispone de versiones controladas en PostgreSQL, mientras Qdrant conserva sus chunks y embeddings. Solo la version activa participa en las consultas. Esto permite actualizar una fuente sin mezclar contenido antiguo y nuevo, detectar ingestas identicas, conservar versiones anteriores y hacer rollback sin recalcular embeddings. Los parametros de consulta actuales no cambian. Esta mejora esta implementada y desplegada. Falta preparar PostgreSQL, registrar el corpus existente como version inicial y validarla antes de activar enforcement en produccion. Los pendientes vigentes, su prioridad y su estado se mantienen en [`PENDIENTES_RAG.md`](./PENDIENTES_RAG.md). ### Flujo RAG y OCR RAG y OCR son servicios separados con responsabilidades distintas: - RAG recibe documentos compatibles, extrae texto nativo, conserva sus versiones y convierte el texto aprobado en conocimiento consultable. - OCR recibe un PDF y una lista cerrada de paginas, procesa solo esas paginas y devuelve texto, lineas, posiciones y metricas de calidad. Para un PDF, RAG revisa primero todas sus paginas. Usa OCR cuando el texto nativo de una pagina es insuficiente o cuando su contenido rasterizado supera el umbral configurado. Reune todas las paginas seleccionadas y las envia en un solo trabajo OCR; no procesa una pagina, reinicia el documento y continua en ciclos. El resultado OCR queda como evidencia revisable. RAG conserva la responsabilidad de revision humana, indexacion, versionado y activacion. OCR no escribe en PostgreSQL ni en Qdrant, ni decide que contenido se activa. Actualmente OCR procesa PDFs. La admision directa de imagenes JPG y PNG es una mejora futura registrada en [`PENDIENTES_RAG.md`](./PENDIENTES_RAG.md). El detalle de contratos, umbrales y estados esta en [`CONTRATO_CICLO_VIDA_Y_OCR.md`](./CONTRATO_CICLO_VIDA_Y_OCR.md). --- ## Alcance de este documento Este documento define el que y el para que del sistema RAG base. En documentos posteriores de esta carpeta se podran detallar, por separado: - arquitectura propuesta - flujo de ingesta - estrategia de chunking - embeddings y almacenamiento - interfaz de consulta - pruebas con `docs/` - criterios de evaluacion de resultados