Spaces:
Running
Running
File size: 6,828 Bytes
e6f506f 8726650 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 |
---
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
|