Skip to content

Sistema RAG (Retrieval-Augmented Generation) Full Stack para Q&A sobre documentos privados (PDF/DOCX). Backend robusto con Spring Boot y Ollama/pgvector para procesamiento 100% local y Open Source. Frontend desarrollado con Angular.

License

Notifications You must be signed in to change notification settings

eduballesteros/DocuMind-RAG-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 DocuMind: Sistema RAG Full Stack (Spring Boot + Angular + Ollama)

Build Status Backend Frontend AI/DB


🎯 Descripción del Proyecto

DocuMind es una solución Full Stack de Retrieval-Augmented Generation (RAG) diseñada para permitir a los usuarios hacer preguntas sobre documentos privados y no estructurados (manuales, contratos, etc.).

Este proyecto es una demostración de arquitectura moderna API-First que enfatiza la soberanía de datos y el costo cero al utilizar exclusivamente tecnologías Open Source para el procesamiento de IA local.

🌟 Valor Clave para el Portfolio

  • Arquitectura Monorepo: Gestión unificada de Spring Boot (Backend) y Angular (Frontend).
  • IA 100% Local: Uso de Ollama para correr modelos LLM (Llama 3) y Embeddings (nomic-embed-text) sin incurrir en costos de APIs externas.
  • Persistencia Vectorial: Integración de PostgreSQL con pgvector para la búsqueda semántica de alta eficiencia.
  • Soporte Multi-Formato: Capacidad de procesar y extraer texto de documentos PDF y DOCX (usando Apache POI).

💡 Arquitectura y Flujo RAG

El sistema se basa en el patrón RAG para asegurar que la IA responde utilizando solo la información contenida en los documentos subidos por el usuario, minimizando las "alucinaciones" (respuestas inventadas).

1. Ingesta de Documentos

El usuario sube un archivo (PDF/DOCX). El Backend lo lee, lo divide en pequeños chunks, convierte cada chunk en un vector numérico (embedding) usando Ollama, y guarda el vector en la Base de Datos pgvector junto con los metadatos.

2. Consulta (Chat)

El usuario hace una pregunta. El Backend convierte la pregunta en un vector y consulta pgvector para encontrar los chunks más relevantes. Estos chunks se inyectan como "contexto" en el prompt enviado al LLM (Llama 3), generando una respuesta precisa basada en el contenido original.


💻 Stack Tecnológico

Componente Tecnología Rol
Backend Core Spring Boot 3.5.8 & Java 21 Lógica de negocio, Seguridad (Spring Security) y API REST.
Frontend Angular & TypeScript Interfaz de usuario dinámica (SPA) para la subida de archivos y chat.
Integración IA Spring AI Capa de abstracción para la comunicación con Ollama.
Servidor IA Ollama Contenedor local para correr Llama 3 y nomic-embed-text.
Base de Datos PostgreSQL & pgvector Almacenamiento de metadatos y vectores para la búsqueda semántica.
Utilidades Apache POI Extracción de texto de documentos Word (.docx).

🚀 Despliegue Rápido (One-Click Setup)

Este proyecto está diseñado para ser levantado al 100% con Docker.

Pre-requisitos

  • Docker y Docker Compose instalados.
  • Java 21 y Maven (solo si desea compilar fuera de Docker).

About

Sistema RAG (Retrieval-Augmented Generation) Full Stack para Q&A sobre documentos privados (PDF/DOCX). Backend robusto con Spring Boot y Ollama/pgvector para procesamiento 100% local y Open Source. Frontend desarrollado con Angular.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published