Este proyecto implementa un sistema RAG (Generación Aumentada por Recuperación) que te permite cargar documentos, procesarlos y realizar consultas sobre ellos utilizando lenguaje natural a través de una interfaz web interactiva.
El sistema utiliza técnicas de procesamiento de lenguaje natural (PLN) para extraer información relevante de los documentos cargados y un modelo de lenguaje grande (LLM) para generar respuestas coherentes y contextualizadas a las preguntas del usuario, basadas en la información recuperada de dichos documentos.
- Carga y procesamiento de múltiples tipos de documentos (ej. PDF, TXT, DOCX - especificar si aplica).
- Extracción y vectorización de texto para búsqueda semántica eficiente.
- Interfaz de chat para realizar preguntas en lenguaje natural sobre los documentos.
- Generación de respuestas basadas en la información extraída y potenciadas por un LLM.
- Interfaz web construida con React y FastAPI para el backend.
backend/: Contiene la API de Python (FastAPI), la lógica de procesamiento de documentos, la interacción con la base de datos vectorial y el modelo de lenguaje.frontend/: Contiene la aplicación frontend construida con React y TypeScript.
- FastAPI (Framework web de Python)
- [Librería de Embeddings/Vector DB - ej. Langchain, LlamaIndex, ChromaDB, FAISS]
- [Librería de OCR/Extracción de Texto - ej. PyMuPDF, python-docx, Tesseract OCR]
- [Modelo de Lenguaje - ej. OpenAI API, Hugging Face Transformers]
- Python 3.8+
- React 19
- TypeScript
- Tailwind CSS
- API Fetch / Axios
- Python 3.8+
- Node.js 18+ y npm (o yarn/pnpm)
- Dependencias Externas Cruciales: Este proyecto requiere la instalación de dependencias adicionales específicas que NO se gestionan únicamente con
pip. Por favor, consulta OBLIGATORIAMENTE el archivoinstall-dependencies.mdpara obtener las instrucciones detalladas de instalación de herramientas como Tesseract OCR y otras librerías necesarias para el correcto funcionamiento del procesamiento de documentos. ¡Omitir este paso impedirá que el sistema funcione! - Claves API (si aplica): Necesitarás configurar las claves API para los servicios externos utilizados (ej. OpenAI, modelos de Hugging Face, etc.).
-
Clona el repositorio:
git clone https://github.com/tuusuario/tu-repo-rag.git cd tu-repo-rag(Reemplaza
tuusuario/tu-repo-ragcon la URL real) -
Instala Dependencias Externas:
- SIGUE LAS INSTRUCCIONES DETALLADAS EN
install-dependencies.md. Este paso es fundamental.
- SIGUE LAS INSTRUCCIONES DETALLADAS EN
-
Configuración del Backend (FastAPI):
- Navega al directorio
backend:cd backend - Crea y activa un entorno virtual:
python -m venv venv # Windows: venv\Scripts\activate # macOS/Linux: source venv/bin/activate
- Instala las dependencias de Python:
pip install -r requirements.txt
- Configura las variables de entorno: Renombra el archivo
.env.examplea.envy completa TODAS las variables requeridas con tus propias credenciales y configuraciones (claves API, rutas, configuraciones de base de datos vectorial, etc.). Consulta los comentarios dentro de.env.examplepara obtener orientación.
- Navega al directorio
-
Configuración del Frontend React:
- Navega al directorio
frontend:# Desde backend/: cd ../frontend # Desde la raíz: cd frontend cd ../frontend
- Instala las dependencias de Node.js:
npm install
- Configura las variables de entorno: Renombra el archivo
.env.examplea.env.local(o simplemente.env) y completa TODAS las variables requeridas, especialmente la URL para conectarse a tu API backend. Consulta los comentarios dentro de.env.examplepara obtener orientación.
- Navega al directorio
-
Iniciar el Backend:
- Desde el directorio
backend(con el entorno virtual activado):(Ajustauvicorn main:app --reload --port 8000
main:appy el puerto si es necesario)
- Desde el directorio
-
Iniciar el Frontend:
- Desde el directorio
frontend:npm run dev
- Desde el directorio
-
Acceso:
- Abre tu navegador y visita la URL (usualmente
http://localhost:3000).
- Abre tu navegador y visita la URL (usualmente
- Dependencias Externas: La correcta instalación de las dependencias listadas en
install-dependencies.mdes crucial. - Variables de Entorno: Asegúrate de configurar correctamente todos los archivos
.envtanto en el backend como en el frontend, siguiendo las indicaciones de los archivos.env.example. Un error aquí es una causa común de problemas. - Procesamiento Inicial: Dependiendo de la implementación, puede que necesites ejecutar algún script inicial para procesar documentos de ejemplo o configurar la base de datos vectorial la primera vez. Consulta la documentación adicional si existe.