Configuratore per Corsi e Chatbot Personalizzati
Progetto di tesi svolto in collaborazione con Social Thingum. Un sistema per permettere ai docenti di creare il loro corso online con associato un chatbot personalizzato sui documenti caricati e sulle modalità di apprendimento dello studente.


Chatbot educativi generici e mancanza di strumenti per i docenti per personalizzare i chatbot
I Large Language Models generici soffrono di allucinazioni: generano contenuti plausibili ma non ancorati ai materiali didattici effettivi del corso. In ambito educativo, questo è inaccettabile.
Inoltre online non esistono soluzione sempli che permettano ai docenti di configurare autonomamente chatbot verticali, basati esclusivamente sui propri materiali, senza richiedere competenze tecniche in AI o prompt engineering.
Infine gli studenti hanno metodologie e ritmi di apprendimento differenti, e non esiste un sistema che permetta di personalizzare le spiegazioni in base ai loro bisogni.

Configurare e Chatbot RAG
Ho progettato e integrato un Configuratore AI che consente ai docenti di creare il proprio corso con annesso un chatbot educativo ancorato esclusivamente ai propri materiali didattici.
Il sistema processa i documenti caricati, li suddivide in chunk semantici, genera embeddings vettoriali e li indicizza. Durante l'interazione, il chatbot recupera solo i frammenti rilevanti dal corpus del corso, riducendo drasticamente il rischio di allucinazioni.
Le risposte generate dal chatbot vengono inoltre personalizzate in base allo stile di apprendimento selezionato dallo studente. Verranno quindi trasformare in audio, diagrammi, descrizioni con esercizi ed esempi caso d'uso reali. Questo basandosi sul modello pedagogico VARK.
Contributo tecnico:Ho sviluppato l'intero frontend del configuratore in React, progettato il flusso UX a tre step, e implementato l'integrazione con il backend Python e con Moodle tramite plugin PHP custom. Il chatbot era infatti già stato sviluppato, ma limitato ad una base di conoscenza fissa. Ho integrato il chatbot nel flusso di configurazione del corso e riprogettato la User Experience e User Interface per adattarlo al contesto didattico di WhoTeach.
Progettazione User-Centered: ridurre il carico cognitivo
Il configuratore è stato progettato seguendo le euristiche di Nielsen e i principi della Gestalt, con l'obiettivo di nascondere la complessità tecnica dietro un'interfaccia intuitiva.
Di seguito vengono presentati i 3 step del configuratore:
Impostazioni iniziali e anteprima
Il docente definisce le informazioni principali del corso e del chatbot e osservando un'anteprima della visualizzazione del chatbot. Può inoltre aiutarsi nella compilazione con i pulsanti di AI, che generano dei testi di esempio adatti al suo contesto.
Principi HCI:
- •Riconoscimento > Memorizzazione
- •Prossimità e continuità visiva
- •Validazione progressiva

Argomenti del corso e materiali
Il docente può creare le sezioni del corso visualizzate come delle card. Per ognuna può aggiungere il nome e caricare i materiali di riferimento, che potranno essere visionati dagli studenti e utilizzati dal chatbot per creare le risposte.
Principi HCI:
- •Feedback visivo immediato
- •Validazione progressiva
- •Legge di Prossimità

Programma del corso
Il docente può personalizzare il programma del corso, decidendo quali lezioni pubblicare nei giorni del corso e quindi presentarle agli studenti.
Principi HCI:
- •Controllo e libertà dell'utente
- •Direct manipulation
- •Flessibilità ed efficienza d'uso

Riprogettazione Chatbot
Il chatbot era già stato sviluppato dal team di Social Thingum, ma presentava una base di conoscenza fissa e un'interfaccia generica non ottimizzata per il contesto educativo.
Ho riprogettato completamente l'interfaccia utente del chatbot per integrarla nell'ecosistema visivo di WhoTeach, la piattaforma LMS basata su Moodle. L'obiettivo era creare un'esperienza coerente e familiare per studenti e docenti.
La prima versione grafica del chatbot.

Versione finale del chatbot integrato nel corso creato dal professore.

Il risultato è un chatbot che non appare come uno strumento esterno, ma come una funzionalità nativa della piattaforma, riducendo la curva di apprendimento e aumentando l'adozione da parte degli utenti.
Stack tecnologico e integrazione
Il configuratore AI è composto da un frontend React e un backend in Node.js. Il chatbot è stato sviluppato in Python con pipeline RAG, e un'integrazione diretta con Moodle tramite plugin PHP. I file caricati vengono processati e indicizzati su Google Cloud Storage e ChromaDB.
⚡ Frontend
Sviluppato in React con gestione dello stato tramite Redux per sincronizzare upload asincroni con l'interfaccia. WebSocket per feedback real-time durante il processamento.
- • React.js con TypeScript
- • Redux per state management
- • WebSocket per real-time updates
- • Tailwind CSS
🧠 Backend e AI
Pipeline RAG basata su LangChain. I documenti vengono processati, vettorializzati tramite embeddings e salvati in ChromaDB. Le query recuperano solo il contesto rilevante prima della generazione.
- • Python / FastAPI
- • LangChain per RAG pipeline
- • ChromaDB (vector database)
- • OpenAI API (GPT-4)
🔌 Integrazione Moodle
Plugin PHP custom per Moodle che espone API REST sicure. Gestisce autenticazione JWT e sincronizzazione bidirezionale tra il configuratore React e il database Moodle.
- • PHP Moodle Plugin
- • REST API custom endpoints
- • JWT authentication
- • MySQL database sync
Impatto misurabile sul processo di configurazione
Il configuratore permette ad un docente di creare il proprio corso e attivare un chatbot immeddiamente disposnibili per i suoi studenti in meno di 10 minuti.
~70%
Riduzione tempo di configurazione corso
24/7
Disponibilità assistente virtuale per studenti
Il sistema RAG garantisce che le risposte del chatbot siano ancorate esclusivamente ai materiali caricati dal docente, riducendo significativamente il rischio di allucinazioni rispetto a LLM generici.
Vincoli attuali e roadmap di sviluppo
Il sistema è attualmente in versione development e presenta alcuni vincoli tecnici e progettuali:
Limitazioni attuali:
- Personalizzazione limitata del comportamento del chatbot
- Supporto file limitato a PDF (no video, audio, o formati interattivi)
- Mancanza di analytics dettagliate sulle interazioni studente-chatbot
Sviluppi futuri pianificati:
- Editing incrementale dei contenuti senza re-processing completo
- Dashboard analytics per monitorare efficacia del chatbot
- Supporto multimodale (video, audio, immagini)
- Schermata di personalizzazione del comportamento del chatbot