JairoDanielMT commited on
Commit
8726650
·
verified ·
1 Parent(s): 0779850

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +232 -1
README.md CHANGED
@@ -8,4 +8,235 @@ pinned: false
8
  license: mit
9
  ---
10
 
11
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  license: mit
9
  ---
10
 
11
+ # 📚 GEN\_EDU\_IA: Sistema RAG Educativo con LLM y FAISS
12
+
13
+ **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.
14
+
15
+ ---
16
+
17
+ ## 🚀 Características Principales
18
+
19
+ * ⚡ **Pipeline RAG**: Integración de recuperación de contexto con generación automática usando LLM.
20
+ * 🤖 **Bot de Telegram**: Interfaz conversacional para docentes, soporta texto e imágenes.
21
+ * 📄 **Conversión Automática**: Generación de documentos en formato DOCX desde Markdown.
22
+ * 🗂️ **Gestión de Vectorstore**: Indexación eficiente de documentos educativos con FAISS.
23
+ * 📝 **Soporte Multimodal**: Procesamiento tanto de texto como de imágenes.
24
+
25
+ ---
26
+
27
+ ## 📂 Estructura del Proyecto
28
+
29
+ ```
30
+ GEN_EDU_IA/
31
+ ├── config/ # Configuración (.env, prompts)
32
+ ├── core/ # Lógica principal del sistema
33
+ │ ├── integrations/ # Integraciones (Bot, conversión DOCX)
34
+ │ ├── llm/ # Gestión del modelo LLM
35
+ │ ├── pipeline/ # Pipeline RAG
36
+ │ └── vectorstore/ # Gestión de FAISS
37
+ ├── database/ # Almacenamiento del índice FAISS
38
+ │ └── edullm_store/ # Índice vectorial preconstruido
39
+ ├── docs/ # Documentación y materiales educativos
40
+ ├── logs/ # Registros del sistema
41
+ ├── scripts/ # Scripts de ejecución
42
+ ├── tests/ # Pruebas unitarias
43
+ ├── Dockerfile # Configuración de Docker
44
+ ├── requirements.txt # Dependencias de Python
45
+ ├── main.py # Lanzador principal del sistema
46
+ └── README.md # Documentación del proyecto
47
+ ```
48
+
49
+ ---
50
+
51
+ ## ⚙️ Requisitos Previos
52
+
53
+ ### Opción 1: Instalación Local
54
+ * **Python 3.11+**
55
+ * **pip** instalado
56
+ * **Pandoc** instalado
57
+ * Instalación de `uv` para una gestión eficiente de dependencias:
58
+ ```bash
59
+ pip install uv
60
+ ```
61
+
62
+ ### Opción 2: Usando Docker
63
+ * **Docker** instalado
64
+ * **Docker Compose** (opcional)
65
+
66
+ ---
67
+
68
+ ## 📦 Instalación
69
+
70
+ ### Opción 1: Instalación Local
71
+
72
+ 1. Clona el repositorio:
73
+ ```bash
74
+ git clone https://github.com/tu-usuario/gen-edu-ia.git
75
+ cd gen-edu-ia
76
+ ```
77
+
78
+ 2. Instala las dependencias:
79
+ ```bash
80
+ uv sync
81
+ ```
82
+
83
+ ### Opción 2: Usando Docker
84
+
85
+ 1. Construye la imagen:
86
+ ```bash
87
+ docker build -t gen-edu-ia .
88
+ ```
89
+
90
+ 2. Ejecuta el contenedor:
91
+ ```bash
92
+ docker run -d \
93
+ --name gen-edu-ia \
94
+ -v $(pwd)/config:/app/config \
95
+ -v $(pwd)/database:/app/database \
96
+ -v $(pwd)/docs:/app/docs \
97
+ -v $(pwd)/logs:/app/logs \
98
+ gen-edu-ia
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 🚨 Configuración
104
+
105
+ 1. Copia el archivo de ejemplo y configura las variables:
106
+ ```bash
107
+ cp config/.env.example config/.env
108
+ ```
109
+
110
+ 2. Edita el archivo `config/.env` con tus credenciales:
111
+
112
+ ```dotenv
113
+ # ==========================================
114
+ # 🔑 CONFIGURACIÓN DEL BOT DE TELEGRAM
115
+ # ==========================================
116
+ TELEGRAM_TOKEN=your_telegram_bot_token
117
+
118
+ # ==========================================
119
+ # 🤖 CONFIGURACIÓN DEL MODELO LLM
120
+ # ==========================================
121
+ LLM_MODEL_NAME=gpt-3.5-turbo
122
+ LLM_API_KEY=your_openai_api_key
123
+ LLM_BASE_URL=https://api.openai.com/v1
124
+
125
+ # ==========================================
126
+ # 📚 CONFIGURACIÓN DEL VECTORSTORE
127
+ # ==========================================
128
+ VECTORSTORE_PATH=docs/
129
+ VECTORSTORE_NAME=edullm_store
130
+
131
+ # ==========================================
132
+ # 📝 CONFIGURACIÓN DE PROMPTS
133
+ # ==========================================
134
+ PATH_SYSTEM_PROMPT=config/prompt_system.txt
135
+
136
+ # ==========================================
137
+ # 🔄 CONFIGURACIÓN DE EMBEDDINGS
138
+ # ==========================================
139
+ MODEL_EMBEDDINGS=sentence-transformers/distiluse-base-multilingual-cased
140
+ ```
141
+
142
+ 3. Asegúrate de tener:
143
+ - Un token válido de Bot de Telegram (obtenido de @BotFather)
144
+ - Una API key válida para el servicio LLM
145
+ - El archivo `prompt_system.txt` en la carpeta `config/`
146
+ - Documentos en la carpeta `docs/` o un índice preconstruido en `database/edullm_store/`
147
+
148
+ ---
149
+
150
+ ## 🚀 Ejecución del Proyecto
151
+
152
+ ### Opción 1: Local
153
+ ```bash
154
+ uv run main.py
155
+ ```
156
+
157
+ ### Opción 2: Docker
158
+ ```bash
159
+ docker start gen-edu-ia
160
+ ```
161
+
162
+ El sistema iniciará:
163
+ * 🤖 **Bot de Telegram listo para recibir mensajes**
164
+
165
+ ---
166
+
167
+ ## 🎯 Uso del Bot EduLLM
168
+
169
+ 1. Abre Telegram y busca tu bot con el token configurado
170
+ 2. Envía un texto descriptivo o una imagen (puede ser una foto de una pizarra)
171
+ 3. El bot generará automáticamente un material educativo
172
+ 4. Recibirás un botón para descargar el archivo en formato **DOCX**
173
+
174
+ ### Comandos Disponibles
175
+ * `/start` - Inicia el bot y muestra el mensaje de bienvenida
176
+ * `/help` - Muestra la ayuda y los comandos disponibles
177
+ * `/about` - Muestra información sobre el sistema
178
+
179
+ ---
180
+
181
+ ## 🧪 Ejecución de Pruebas
182
+
183
+ ```bash
184
+ uv run pytest
185
+ ```
186
+
187
+ Esto mostrará un reporte detallado del estado de las pruebas y el porcentaje de cobertura.
188
+
189
+ ---
190
+
191
+ ## 📊 Tecnologías Utilizadas
192
+
193
+ * **Python 3.11**
194
+ * **Telegram Bot API**
195
+ * **LangChain & FAISS**
196
+ * **OpenAI / Groq API**
197
+ * **pypandoc** (Conversión Markdown → DOCX)
198
+ * **Loguru** (Logging avanzado)
199
+ * **Pytest** (Testing)
200
+ * **Docker** (Containerización)
201
+
202
+ ---
203
+
204
+ ## ✅ Estado del Proyecto
205
+
206
+ ✔️ Versión estable funcional
207
+ ✔️ Generación de materiales educativos validada
208
+ ✔️ Integración completa entre RAG, LLM y el Bot de Telegram
209
+ ✔️ Soporte para Docker
210
+
211
+ ---
212
+
213
+ ## 🚧 Próximas Mejoras
214
+
215
+ * Implementación de control de usuarios por roles
216
+ * Almacenamiento persistente de historial de materiales generados
217
+ * Dashboard web para administración
218
+ * Soporte para más formatos de exportación (PDF, HTML)
219
+ * Mejoras en la gestión de memoria y recursos
220
+ * Optimización del pipeline RAG
221
+
222
+ ---
223
+
224
+ ## 📝 Notas Adicionales
225
+
226
+ ### Gestión de Memoria
227
+ El sistema está optimizado para funcionar con recursos limitados, pero se recomienda:
228
+ - Mínimo 2GB de RAM para el contenedor Docker
229
+ - 1GB de espacio en disco para la base de datos vectorial
230
+ - Conexión estable a Internet para las APIs
231
+
232
+ ### Mantenimiento
233
+ * Los logs se almacenan en `logs/`
234
+ * La base de datos vectorial se mantiene en `database/edullm_store/`
235
+ * Los documentos procesados se almacenan en `docs/`
236
+
237
+ ### Solución de Problemas
238
+ Si encuentras algún error:
239
+ 1. Revisa los logs en `logs/`
240
+ 2. Verifica las variables de entorno en `config/.env`
241
+ 3. Asegúrate de que los servicios externos (Telegram, LLM API) estén disponibles
242
+ 4. Comprueba que los volúmenes Docker estén correctamente montados