Este proyecto implementa un sistema RAG (Retrieval-Augmented Generation) utilizando SmolaGents y BM25Retriever para procesamiento y consulta de documentos locales. Es una implementación educativa que demuestra cómo construir un sistema RAG utilizando búsqueda basada en términos.
- Procesamiento de múltiples formatos de documentos (PDF, TXT, DOCX, MD)
- Búsqueda eficiente con BM25Retriever
- Integración con modelos de OpenAI mediante SmolaGents
- Chat interactivo con documentos
- Manejo robusto de errores
- Crear y activar el entorno virtual:
python -m venv .venv
# En Windows:
.venv\Scripts\activate
# En Unix o MacOS:
source .venv/bin/activate- Instalar dependencias:
pip install -r requirements.txt- Configurar variables de entorno:
Crear un archivo
.envcon:
OPENAI_API_KEY=your_openai_api_key
OPENAI_MODEL=gpt-4-0125-preview # o el modelo que prefieras- Ejecutar el script principal:
python rag_agent.py- Seguir las instrucciones en consola para interactuar con los documentos.
El sistema soporta los siguientes formatos:
- Archivos PDF (
.pdf) - Archivos de texto (
.txt) - Documentos Word (
.doc,.docx) - Archivos Markdown (
.md)
- Utiliza SmolaGents para interacciones basadas en agentes
- BM25Retriever para búsqueda eficiente de términos
- División de documentos en chunks para mejor recuperación
- Configurable para despliegues locales
- Utiliza modelos de OpenAI (configurable via variables de entorno)
- Soporta múltiples formatos de documentos
- Los documentos se dividen automáticamente en chunks para mejor recuperación
- El tamaño predeterminado de chunk es 500 tokens con 50 tokens de superposición
- El sistema recupera los 10 chunks más relevantes para cada consulta
- El modelo de OpenAI se puede configurar mediante la variable OPENAI_MODEL
- Implementar caché de resultados
- Añadir soporte para más formatos de documentos
- Mejorar la interfaz de usuario
- Implementar evaluación de calidad de respuestas