145 lines
6.3 KiB
Markdown
145 lines
6.3 KiB
Markdown
# 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
|