Spaces:
Running
Running
metadata
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:
pip install uv
Opción 2: Usando Docker
- Docker instalado
- Docker Compose (opcional)
📦 Instalación
Opción 1: Instalación Local
- Clona el repositorio:
git clone https://github.com/tu-usuario/gen-edu-ia.git
cd gen-edu-ia
- Instala las dependencias:
uv sync
Opción 2: Usando Docker
- Construye la imagen:
docker build -t gen-edu-ia .
- Ejecuta el contenedor:
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
- Copia el archivo de ejemplo y configura las variables:
cp config/.env.example config/.env
- Edita el archivo
config/.env
con tus credenciales:
# ==========================================
# 🔑 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
- 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 carpetaconfig/
- Documentos en la carpeta
docs/
o un índice preconstruido endatabase/edullm_store/
🚀 Ejecución del Proyecto
Opción 1: Local
uv run main.py
Opción 2: Docker
docker start gen-edu-ia
El sistema iniciará:
- 🤖 Bot de Telegram listo para recibir mensajes
🎯 Uso del Bot EduLLM
- Abre Telegram y busca tu bot con el token configurado
- Envía un texto descriptivo o una imagen (puede ser una foto de una pizarra)
- El bot generará automáticamente un material educativo
- 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
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:
- Revisa los logs en
logs/
- Verifica las variables de entorno en
config/.env
- Asegúrate de que los servicios externos (Telegram, LLM API) estén disponibles
- Comprueba que los volúmenes Docker estén correctamente montados