Volver a Proyectos

🤖 Bot-IA

Asistente de estudio: detecta tareas pendientes con Selenium y redacta borradores con IA local para revisar

Modo estudio seguro Ollama local Selenium

Escala del Proyecto

4Opciones de menú
3Archivos
789Líneas

Descripción General

Bot-IA automatiza la parte mecánica de estudiar: entra en el portal educativo con Selenium, detecta qué tareas están pendientes, lee el enunciado de cada una y redacta un borrador de respuesta con un modelo de lenguaje local vía Ollama. El borrador se guarda en Markdown.

La clave del diseño es lo que no hace por defecto. La configuración viene con MODO_ESTUDIO_SEGURO = True y AUTO_ENVIAR = False: el bot genera el borrador y ahí se detiene. Cada fichero de respuesta incluye una lista de comprobación de revisión manual que hay que recorrer antes de entregar nada.

Para que el borrador sea utilizable, el bot no escribe en el vacío: se le proporciona un fichero Markdown de resúmenes por asignatura con el estilo y el contenido que debe seguir. Sin ese contexto la respuesta es genérica; con él, se parece a los apuntes de la asignatura.

Tecnologías Utilizadas


Python 3.10+

Selenium

Google Chrome

Ollama

qwen2.5-coder:3b

Markdown

Tests

Estructura y Menú

🖥️ main.py

Script principal con el menú interactivo de cuatro opciones.

⚙️ config.py

Toda la configuración: acceso, carpetas, modelo de Ollama, banderas de seguridad y selectores del DOM.

📚 resumenes/

Un fichero Markdown por asignatura con el contexto y el estilo que debe seguir el bot.

📝 respuestas/

Los borradores generados, uno por actividad.

🧪 tests/

Pruebas básicas del proyecto.

1️⃣ Automatización completa

Recorre las tareas pendientes y genera los borradores.

2️⃣ Salir

Cierre del programa.

3️⃣ Diagnóstico de Ollama

Verifica que el servicio y el modelo estén disponibles antes de intentar generar.

4️⃣ Contar tareas pendientes

Muestra cuántas tareas hay por asignatura, sin generar nada.

Arquitectura

Proyecto pequeño y muy configurable. Toda la fragilidad del scraping está aislada en config.py, en forma de selectores del DOM y expresiones XPath: si el portal cambia su estructura, se arregla editando la configuración en lugar de tocando el código.

Bot-IA/
└── V0.1-inicio/
    ├── main.py             # menú y flujo principal
    ├── config.py           # configuración completa
    ├── requirements.txt
    ├── resumenes/           # contexto por asignatura (.md)
    ├── respuestas/          # borradores generados
    └── tests/

Integraciones Externas

Selenium + Chrome

Navegación automatizada del portal educativo. Puede ejecutarse en modo headless o con la ventana visible para depurar.

Ollama

Generación del borrador con un modelo local — qwen2.5-coder:3b por defecto — sin enviar los enunciados a ningún servicio externo.

Modo de prueba

OLLAMA_MODO_PRUEBA permite ejecutar todo el flujo sin generación real, para probar la navegación sin gastar cómputo.

Flujo Recomendado

  1. Diagnóstico: opción 3 del menú: se comprueba que Ollama esté activo y el modelo descargado.
  2. Recuento: opción 4: se ve cuántas tareas pendientes hay por asignatura, sin generar nada.
  3. Configurar seguridad: se verifica que MODO_ESTUDIO_SEGURO esté activo y AUTO_ENVIAR desactivado.
  4. Generar borradores: opción 1: el bot navega, detecta las tareas, lee los enunciados y escribe los ficheros Markdown.
  5. Revisar: cada borrador se corrige a mano recorriendo su lista de comprobación.
  6. Decidir: solo cuando todo está validado se plantea activar el envío automático.

Formato de Cada Borrador

  • Título de la actividad.
  • Fecha y asignatura.
  • Bloque ## Enunciado con el texto original de la tarea.
  • Bloque ## Respuesta con el borrador generado.
  • Lista de comprobación de revisión manual que hay que recorrer antes de entregar.

Retos Técnicos y Decisiones de Diseño

Diseñar la herramienta para que no se use mal

Un bot que entrega tareas automáticamente es un problema académico, no un proyecto. Las banderas por defecto — MODO_ESTUDIO_SEGURO = True y AUTO_ENVIAR = False — y la lista de comprobación en cada borrador están ahí para que el camino fácil sea el correcto. El README lo dice de forma explícita: la responsabilidad del contenido es de quien entrega.

El contexto es lo que hace útil la generación

Sin los resúmenes por asignatura, el modelo produce texto genérico que no sirve. Alimentarle un Markdown con el estilo y el contenido de la materia es lo que convierte la salida en un punto de partida real. La calidad del borrador depende más del contexto que del tamaño del modelo.

Aislar la parte que se va a romper

Cualquier automatización sobre una web ajena se rompe cuando esa web cambia. Todos los selectores CSS y XPath están en config.py, con su sección de solución de problemas en el README: qué ajustar si no detecta tareas, si no encuentra el enunciado o si no consigue pegar la respuesta.

Un modo de prueba para no gastar cómputo

Depurar la navegación con Selenium requiere muchas ejecuciones, y generar con un modelo local en cada una es lento. OLLAMA_MODO_PRUEBA desacopla ambas cosas: se prueba el scraping sin invocar el modelo.

Mi Rol

Desarrollador — autor único.

Automatización con Selenium, integración con Ollama, sistema de contexto por asignatura, generación del Markdown con su lista de comprobación y el diseño de las salvaguardas por defecto.

Estado del Proyecto

Versión V0.1-inicio funcional. Requiere Python 3.10+, Chrome y Ollama corriendo en local. Orientado a apoyo del estudio con revisión manual obligatoria.

Código y Enlaces

El repositorio no incluye datos de acceso: el DNI y la URL del portal se configuran en config.py.