🧠 DocOps Intelligence: Analiza documentos con IA usando Rust + Python (búsqueda semántica, chat y dashboards)
🧩 Este proyecto es una plataforma web tipo “producto real” para subir PDF/Word/Excel y convertirlos en información útil: resúmenes, extracción de datos, chat con citas, búsqueda semántica y dashboards. La gracia es combinar Rust (rendimiento + concurrencia) con Python (NLP/IA) en una arquitectura moderna.🚀 ¿Qué hace exactamente?
- Subes un documento y el sistema lo procesa automáticamente (texto, tablas y metadatos).
- Genera un resumen y puntos clave en segundos.
- Extrae entidades (fechas, importes, empresas, personas) y campos relevantes.
- Permite chat “pregúntale al documento” con referencias a la fuente (página/párrafo).
- Incluye búsqueda semántica (por significado, no solo keywords).
- Dashboards con KPIs, tendencias y analítica por documento/proyecto.
- Modo estudio: test y flashcards para documentación académica.
🎯 ¿Por qué este proyecto deja boquiabierto?
- End-to-end: front + backend + BD + colas + workers + despliegue.
- Rust con sentido: ingesta segura, streaming de archivos grandes, concurrencia (Tokio).
- Python donde brilla: embeddings, clasificación, extracción, generación de preguntas.
- Arquitectura real: microservicios, colas, almacenamiento, observabilidad.
- Trazabilidad: respuestas explicables con citas de origen.
🧩 Arquitectura (visión general)
El proyecto se divide en servicios para que sea escalable y profesional:- API Core (Rust): autenticación, proyectos, subida de archivos, validación, auditoría.
- Workers: pipeline de extracción (texto/tablas) y procesado asíncrono.
- IA (Python): embeddings, clasificación, entidades, Q&A, tests/flashcards.
- Datos: PostgreSQL + vector DB (pgvector/Qdrant) + object storage (MinIO/S3).
- Observabilidad: logs, métricas y trazas (modo pro).
🧠 Flujo del sistema (paso a paso)
El “camino” del documento desde que lo subes hasta que se vuelve consultable:- Subida del documento → se guarda y se calcula un hash para deduplicación.
- Se lanza el job a una cola (procesamiento asíncrono).
- Worker extrae texto/tablas → normaliza y crea chunks.
- Servicio Python crea embeddings → se indexa en vector DB.
- Ya puedes buscar por significado o preguntar por chat con citas.
🔧 Stack tecnológico
- Rust: Axum / Actix-Web + Tokio + tracing
- Python: FastAPI + workers (RQ/Celery)
- PostgreSQL: datos de usuarios, proyectos, auditoría
- Vector DB: pgvector o Qdrant
- Object Storage: MinIO (local) / S3 (producción)
- Cola: Redis (MVP)
- Observabilidad: Prometheus + Grafana + OpenTelemetry (opcional pro)
⚙️ Estructura del repositorio (orientativa)
docops-intelligence/
├─ services/
│ ├─ api-rust/ # API core + ingesta
│ ├─ ai-python/ # embeddings, clasificación, Q&A
│ ├─ worker/ # pipeline asíncrono
├─ infra/
│ ├─ docker-compose.yml # Postgres, Redis, MinIO, Qdrant/pgvector
│ ├─ nginx/ # reverse proxy (opcional)
├─ web/
│ ├─ frontend/ # UI (Next.js / React) o panel simple
└─ README.md
🧪 Demo “WOW” (lo que enseñaría en 20 segundos)
- Subo un PDF → sale resumen + entidades + alertas.
- Hago una pregunta en el chat → responde y muestra citas del documento.
- Busco “por significado” → devuelve documentos relacionados aunque no tengan las mismas palabras.
- Abro dashboards → temas frecuentes, importes, fechas límite, distribución por tipo de documento.
📦 Código y documentación
Para que esta entrada no se vuelva eterna, todo el código, instalación y despliegue va en GitHub (con README, capturas y Docker Compose):Repositorio: https://github.com/SergioGD9/DocOps-Intelligence
✅ Roadmap
- MVP: subida + extracción + embeddings + búsqueda semántica + chat básico + dashboard simple.
- PRO: multi-tenant, roles, alertas configurables, feedback loop, observabilidad completa, autoescalado.