Spaces:
Paused
Paused
| title: Edullm | |
| emoji: ⚡ | |
| colorFrom: indigo | |
| colorTo: green | |
| sdk: docker | |
| pinned: false | |
| license: mit | |
| # 📚 GEN\_EDU\_IA: Sistema RAG Educativo con LLM y FAISS | |
| **GEN\_EDU\_IA** es una solución integral que combina un pipeline RAG (Retrieval-Augmented Generation) con modelos LLM, gestión de vectores mediante FAISS y un bot de Telegram interactivo. Este sistema permite generar automáticamente materiales pedagógicos a partir de texto o imágenes, entregando el resultado en formato DOCX listo para ser utilizado por docentes. | |
| --- | |
| ## 🚀 Características Principales | |
| * ⚡ **Pipeline RAG**: Integración de recuperación de contexto con generación automática usando LLM. | |
| * 🤖 **Bot de Telegram**: Interfaz conversacional para docentes, soporta texto e imágenes. | |
| * 📄 **Conversión Automática**: Generación de documentos en formato DOCX desde Markdown. | |
| * 🗂️ **Gestión de Vectorstore**: Indexación eficiente de documentos educativos con FAISS. | |
| * 📝 **Soporte Multimodal**: Procesamiento tanto de texto como de imágenes. | |
| --- | |
| ## 📂 Estructura del Proyecto | |
| ``` | |
| GEN_EDU_IA/ | |
| ├── config/ # Configuración (.env, prompts) | |
| ├── core/ # Lógica principal del sistema | |
| │ ├── integrations/ # Integraciones (Bot, conversión DOCX) | |
| │ ├── llm/ # Gestión del modelo LLM | |
| │ ├── pipeline/ # Pipeline RAG | |
| │ └── vectorstore/ # Gestión de FAISS | |
| ├── database/ # Almacenamiento del índice FAISS | |
| │ └── edullm_store/ # Índice vectorial preconstruido | |
| ├── docs/ # Documentación y materiales educativos | |
| ├── logs/ # Registros del sistema | |
| ├── scripts/ # Scripts de ejecución | |
| ├── tests/ # Pruebas unitarias | |
| ├── Dockerfile # Configuración de Docker | |
| ├── requirements.txt # Dependencias de Python | |
| ├── main.py # Lanzador principal del sistema | |
| └── README.md # Documentación del proyecto | |
| ``` | |
| --- | |
| ## ⚙️ Requisitos Previos | |
| ### Opción 1: Instalación Local | |
| * **Python 3.11+** | |
| * **pip** instalado | |
| * **Pandoc** instalado | |
| * Instalación de `uv` para una gestión eficiente de dependencias: | |
| ```bash | |
| pip install uv | |
| ``` | |
| ### Opción 2: Usando Docker | |
| * **Docker** instalado | |
| * **Docker Compose** (opcional) | |
| --- | |
| ## 📦 Instalación | |
| ### Opción 1: Instalación Local | |
| 1. Clona el repositorio: | |
| ```bash | |
| git clone https://github.com/tu-usuario/gen-edu-ia.git | |
| cd gen-edu-ia | |
| ``` | |
| 2. Instala las dependencias: | |
| ```bash | |
| uv sync | |
| ``` | |
| ### Opción 2: Usando Docker | |
| 1. Construye la imagen: | |
| ```bash | |
| docker build -t gen-edu-ia . | |
| ``` | |
| 2. Ejecuta el contenedor: | |
| ```bash | |
| docker run -d \ | |
| --name gen-edu-ia \ | |
| -v $(pwd)/config:/app/config \ | |
| -v $(pwd)/database:/app/database \ | |
| -v $(pwd)/docs:/app/docs \ | |
| -v $(pwd)/logs:/app/logs \ | |
| gen-edu-ia | |
| ``` | |
| --- | |
| ## 🚨 Configuración | |
| 1. Copia el archivo de ejemplo y configura las variables: | |
| ```bash | |
| cp config/.env.example config/.env | |
| ``` | |
| 2. Edita el archivo `config/.env` con tus credenciales: | |
| ```dotenv | |
| # ========================================== | |
| # 🔑 CONFIGURACIÓN DEL BOT DE TELEGRAM | |
| # ========================================== | |
| TELEGRAM_TOKEN=your_telegram_bot_token | |
| # ========================================== | |
| # 🤖 CONFIGURACIÓN DEL MODELO LLM | |
| # ========================================== | |
| LLM_MODEL_NAME=gpt-3.5-turbo | |
| LLM_API_KEY=your_openai_api_key | |
| LLM_BASE_URL=https://api.openai.com/v1 | |
| # ========================================== | |
| # 📚 CONFIGURACIÓN DEL VECTORSTORE | |
| # ========================================== | |
| VECTORSTORE_PATH=docs/ | |
| VECTORSTORE_NAME=edullm_store | |
| # ========================================== | |
| # 📝 CONFIGURACIÓN DE PROMPTS | |
| # ========================================== | |
| PATH_SYSTEM_PROMPT=config/prompt_system.txt | |
| # ========================================== | |
| # 🔄 CONFIGURACIÓN DE EMBEDDINGS | |
| # ========================================== | |
| MODEL_EMBEDDINGS=sentence-transformers/distiluse-base-multilingual-cased | |
| ``` | |
| 3. Asegúrate de tener: | |
| - Un token válido de Bot de Telegram (obtenido de @BotFather) | |
| - Una API key válida para el servicio LLM | |
| - El archivo `prompt_system.txt` en la carpeta `config/` | |
| - Documentos en la carpeta `docs/` o un índice preconstruido en `database/edullm_store/` | |
| --- | |
| ## 🚀 Ejecución del Proyecto | |
| ### Opción 1: Local | |
| ```bash | |
| uv run main.py | |
| ``` | |
| ### Opción 2: Docker | |
| ```bash | |
| docker start gen-edu-ia | |
| ``` | |
| El sistema iniciará: | |
| * 🤖 **Bot de Telegram listo para recibir mensajes** | |
| --- | |
| ## 🎯 Uso del Bot EduLLM | |
| 1. Abre Telegram y busca tu bot con el token configurado | |
| 2. Envía un texto descriptivo o una imagen (puede ser una foto de una pizarra) | |
| 3. El bot generará automáticamente un material educativo | |
| 4. Recibirás un botón para descargar el archivo en formato **DOCX** | |
| ### Comandos Disponibles | |
| * `/start` - Inicia el bot y muestra el mensaje de bienvenida | |
| * `/help` - Muestra la ayuda y los comandos disponibles | |
| * `/about` - Muestra información sobre el sistema | |
| --- | |
| ## 🧪 Ejecución de Pruebas | |
| ```bash | |
| uv run pytest | |
| ``` | |
| Esto mostrará un reporte detallado del estado de las pruebas y el porcentaje de cobertura. | |
| --- | |
| ## 📊 Tecnologías Utilizadas | |
| * **Python 3.11** | |
| * **Telegram Bot API** | |
| * **LangChain & FAISS** | |
| * **OpenAI / Groq API** | |
| * **pypandoc** (Conversión Markdown → DOCX) | |
| * **Loguru** (Logging avanzado) | |
| * **Pytest** (Testing) | |
| * **Docker** (Containerización) | |
| --- | |
| ## ✅ Estado del Proyecto | |
| ✔️ Versión estable funcional | |
| ✔️ Generación de materiales educativos validada | |
| ✔️ Integración completa entre RAG, LLM y el Bot de Telegram | |
| ✔️ Soporte para Docker | |
| --- | |
| ## 🚧 Próximas Mejoras | |
| * Implementación de control de usuarios por roles | |
| * Almacenamiento persistente de historial de materiales generados | |
| * Dashboard web para administración | |
| * Soporte para más formatos de exportación (PDF, HTML) | |
| * Mejoras en la gestión de memoria y recursos | |
| * Optimización del pipeline RAG | |
| --- | |
| ## 📝 Notas Adicionales | |
| ### Gestión de Memoria | |
| El sistema está optimizado para funcionar con recursos limitados, pero se recomienda: | |
| - Mínimo 2GB de RAM para el contenedor Docker | |
| - 1GB de espacio en disco para la base de datos vectorial | |
| - Conexión estable a Internet para las APIs | |
| ### Mantenimiento | |
| * Los logs se almacenan en `logs/` | |
| * La base de datos vectorial se mantiene en `database/edullm_store/` | |
| * Los documentos procesados se almacenan en `docs/` | |
| ### Solución de Problemas | |
| Si encuentras algún error: | |
| 1. Revisa los logs en `logs/` | |
| 2. Verifica las variables de entorno en `config/.env` | |
| 3. Asegúrate de que los servicios externos (Telegram, LLM API) estén disponibles | |
| 4. Comprueba que los volúmenes Docker estén correctamente montados | |