Diseño y desarrollo de un chatbot para la asistencia de alumnos de nuevo ingreso en la plataforma Moodle
Year: 2026
Type: dissertation
Abstract: El proyecto consiste en el diseño, desarrollo e implementación de un chatbot integrado en la plataforma “Moodle”, surge de la necesidad de simplicidad y facilidad en esta plataforma como usuario recurrente de la misma, aunque Moodle es una herramienta robusta y muy utilizada en el ámbito universitario, su interfaz y estructura de navegación tienden a dificultar el acceso rápido, directo y sencillo a la información, tareas sencillas como consultar una fecha de entrega, puede encontrarse en un archivo específico dentro de una jerarquía de carpetas o recordar el temario de un examen requieren múltiples clicks y navegación por varios menús. El objetivo de este trabajo ha sido simplificar esa interacción con Moodle mediante un chatbot capaz de dialogar con el usuario en lenguaje natural y responder con todos los datos que se encuentren dentro de cualquier recurso de Moodle, tanto de los archivos, como de las entregas incluidas en la plataforma. Para este desarrollo, se ha optado por una arquitectura moderna basada en microservicios. El núcleo del sistema es un servidor backend desarrollado en Python utilizando el framework Flask. Se eligió Python por su versatilidad y sus potentes librerías para el manejo de peticiones HTTP y procesamiento de texto. Este servidor actúa como intermediario entre tres componentes principales: el usuario (a través de una interfaz web), la base de datos de la universidad (a través de la API de Moodle) y el motor de inteligencia artificial. La conexión con Moodle se realiza mediante su API REST oficial, a diferencia de otros chatbots que simplemente contienen información estática precargada, este sistema opera de forma dinámica, de tal forma que mediante el uso de tokens de autenticación personal, el bot accede al perfil del alumno para consultar sus cursos matriculados, el calendario de eventos y los contenidos de las asignaturas. Esto permite que las respuestas sean totalmente personalizadas, si dos alumnos diferentes preguntan "¿Cuándo es mi próximo examen?", el sistema dará respuestas distintas basándose en la información de la que cada alumno disponga. En este TFG es fundamental la decisión de utilizar Inteligencia Artificial Generativa en local, de esta forma en lugar de depender de servicios de terceros o en la nube, como la API de OpenAI(ChatGPT), que conllevan costes por uso y posibles problemas de privacidad al enviar datos académicos personales a servidores externos, se ha implementado el uso de Ollama ejecutando el modelo Llama 3 de forma local, esto nos permite que el procesamiento del lenguaje se realice en el propio servidor de la institución, garantizando la privacidad de los datos y la sostenibilidad del proyecto a largo plazo sin necesidad de costes recurrentes. Durante el desarrollo del proyecto, uno de los mayores desafíos fue la gestión de la información y como el chatbot analizaba la misma para ejecutar respuestas correctas y precisas. Los modelos LLM tienen un límite en la cantidad de texto que pueden procesar simultáneamente, y más en este caso al estar ejecutando en local sin ningún gasto adicional. En un curso con decenas de archivos PDF, presentaciones, documentos Word, etc , es imposible enviar todo el contenido al modelo de una sola vez sin saturar y/o provocar alucinaciones en las respuestas. Para solucionar esto, se implementó una lógica de recuperación de información optimizada. El sistema no lee todos los archivos por defecto, en su lugar, indexa los nombres y tipos de recursos disponibles y solo cuando el usuario solicita explícitamente información que se encuentra en un documento (por ejemplo, "Hazme un resumen del Tema 1" o "¿Que día son los exámenes según el fichero Dudas?"), es cuando el sistema descarga el o los archivos en tiempo real, extrae el texto, limpia el formato y selecciona los fragmentos relevantes que contienen información sobre la pregunta, para enviarlos al modelo y que este no se sature, provocando alucinaciones. Adicionalmente, se ha agregado al asistente una "memoria de conversación" a corto plazo. Esto permite mantener un diálogo fluido donde el usuario puede hacer preguntas de seguimiento sin tener que repetir el contexto en cada mensaje. Otro punto relevante fue la gestión de errores, ya que que los archivos subidos por los profesores pueden tener formatos diversos o estar dentro de carpetas anidadas, es por eso que se usan algoritmos de búsqueda que ignoran mayúsculas o extensiones de archivo para entender la intención del usuario aunque no escriba el nombre exacto del documento. En conclusión, este proyecto demuestra la posibilidad de integrar modelos de lenguaje en entornos educativos locales. El resultado es una herramienta funcional que mejora significativamente la experiencia de usuario en Moodle, gracias al chatbot, transformando una base de datos estática en un asistente proactivo que ayuda al alumno a organizar su estudio y acceder a sus recursos docentes de manera mucho más eficiente, natural y sencilla. ABSTRACT The project involves designing, developing, and implementing a chatbot integrated into the "Moodle" platform. It comes from a need for simplicity and ease of use, based on my own experience as a frequent user. Although Moodle is a powerful tool widely used in universities, its interface and navigation often make it difficult to access information quickly and directly. Simple tasks, like checking a deadline or finding an exam syllabus, can require clicking through many menus or searching inside specific folders. The goal of this work was to simplify this interaction using a chatbot that can talk in natural language and answer using data found in any Moodle resource, including files and assignments. To build this, I chose a modern architecture based on microservices, the core of the system is a backend server developed in Python using the Flask framework. Python was chosen for its versatility and its strong libraries for handling HTTP requests and text processing. This server acts as a bridge between three main parts: the user (via a web interface), the university database (via the Moodle API), and the artificial intelligence engine. The connection with Moodle uses its official REST API. Unlike other chatbots that just have static, pre-loaded information, this system works dynamically. By using personal authentication tokens, the bot accesses the student's profile to check their enrolled courses, calendar events, and subject content. This allows the answers to be totally personalized. If two different students ask, "When is my next exam?", the system will give different answers based on the information each student has. One of the key pillars of this Final Degree Project is the decision to use local Generative AI. Instead of relying on third-party services like the OpenAI API (ChatGPT), which costs money and has potential privacy issues when sending personal academic data to external servers, I implemented Ollama running the Llama 3 model locally. This allows language processing to happen right on the institution's server, guaranteeing data privacy and the project's long-term sustainability without recurring costs. During development, one of the biggest challenges was managing information and how the chatbot analyzed it to give correct answers. LLM models have a limit on how much text they can process at once, especially when running locally without extra costs. In a course with dozens of PDFs, presentations, and Word documents, it is impossible to send all that content to the model at the same time without overloading it or causing it to give wrong answers. To solve this, I implemented an optimized information retrieval logic. The system doesn't read all files by default. Instead, it lists the names and types of available resources. It only downloads the files in real-time when the user explicitly asks for information inside a document (for example, "Summarize Topic 1" or "What date are the exams?"). Then, it extracts the text, cleans the format, and selects only the relevant parts to send to the model so it doesn't get overwhelmed. Additionally, the assistant has a short-term "conversation memory." This allows for a fluid dialogue where the user can ask follow-up questions without repeating the context in every message. Another important point was error handling. Since files uploaded by teachers can have different formats or be inside nested folders, robust search algorithms are used. These ignore capital letters or file extensions to understand what the user wants, even if they don't type the exact name of the document. In conclusion, this project shows that it is possible to integrate advanced language models into local educational environments. The result is a functional tool that significantly improves the user experience in Moodle. Thanks to the chatbot, a static database is transformed into a proactive assistant that helps students organize their studies and access learning materials in a much more efficient, natural, and simple way.
Author: Sanz Pérez, Gonzalo
Language: Spanish
Topic: AI in Service Interactions
Subfield: Marketing
Domain: Social Sciences
SDG: Quality education
Open Access status: green
OpenAlex ID: W7140348245
