Autore: Mario Carboni

  • Costruire un generatore di verifiche per insegnanti con l’API di Claude

    Un docente che prepara una verifica strutturata — domande, soluzioni, punteggi, griglia di valutazione, magari in doppia fila per scoraggiare le copiature — ci mette comodamente un’ora. Il generatore di verifiche che ho costruito la produce in una trentina di secondi, partendo anche dalla dispensa del docente stesso.

    In questo articolo racconto com’è fatto dentro. Non è un tutorial passo-passo: è il resoconto delle decisioni tecniche, comprese quelle dettate dai vincoli — che come spesso accade sono state le più istruttive.

    I vincoli

    Il progetto doveva rispettare tre condizioni non negoziabili:

    1. Gratuito e senza registrazione per i docenti. Quindi l’endpoint è pubblico, e chiunque può chiamarlo.
    2. Hosting condiviso: niente Composer in deploy, niente processi persistenti, niente filesystem sopra la webroot, si carica via FTP.
    3. Niente dati conservati: i materiali dei docenti non finiscono in un database, né nei log.

    È un servizio basato su un LLM che sta in piedi su un hosting condiviso, con i costi sotto controllo e la privacy garantita dall’architettura, è un esercizio di progettazione.

    L’architettura è noiosa, di proposito

    Una singola pagina HTML (CSS e JavaScript inline, niente framework) e un endpoint PHP che fa da tramite verso la Messages API di Anthropic. Tutto qui. Niente build, niente dipendenze da aggiornare, niente database.

    Browser ──POST──▶ genera.php ──HTTPS──▶ api.anthropic.com/v1/messages
       ◀──JSON────────┘◀──────────────────────┘

    Il PHP fa cinque cose: valida l’input, applica i limiti anti-abuso, costruisce il prompt, chiama l’API con cURL, restituisce il JSON al browser. Il rendering della verifica e l’esportazione in Word avvengono lato client.

    La chiamata: PHP puro

    Su hosting condiviso senza Composer, la via più semplice è la chiamata HTTP diretta. La Messages API è un singolo endpoint POST:

    Il modello è Claude Sonnet: per un compito strutturato come questo il rapporto qualità/prezzo è il punto di equilibrio giusto — la qualità delle domande è da modello grande, il costo resta da centesimi (ci torno).

    La dispensa va dritta al modello

    La funzione più utile per i docenti è “basa le domande sulla mia dispensa”. Qui c’è la prima decisione che sorprende chi se lo immagina: il PDF non viene parsato. La Messages API accetta documenti PDF come blocco di contenuto, codificati in base64:

    Il modello legge il PDF direttamente — testo, struttura e anche le pagine scansionate, perché lo elabora anche visivamente. Zero librerie di parsing, zero casi limite da gestire, e domande che rispettano il materiale meglio di qualunque estrazione testuale che avrei potuto scrivere io.

    Per i DOCX invece un piccolo trucco che vale il prezzo del biglietto: un file Word è un archivio ZIP. Si apre con ZipArchive, si estrae word/document.xml, si spogliano i tag e si passa il testo nel prompt:

    Output strutturato: lo schema nel prompt

    La verifica deve arrivare al browser come dati, non come prosa: il frontend la impagina in vista studente e vista docente, calcola i punteggi, la esporta in Word. Quindi il prompt chiede esplicitamente un oggetto JSON secondo uno schema dichiarato — titolo, istruzioni, punteggio totale, criteri e un array di versioni (Fila A, Fila B, versione BES/DSA) ciascuna con le sue domande tipizzate: scelta multipla, vero/falso, aperta, esercizio.

    E siccome i modelli a volte incorniciano il JSON nei backtick nonostante le istruzioni, il parsing è difensivo:

    Nota per chi parte oggi: l’API ora supporta gli structured outputs nativi (output_config.format con un JSON Schema), che garantiscono output valido senza questa ginnastica. È il primo refactoring in lista.

    Endpoint pubblico e rate limit

    Una generazione costa pochi centesimi (qualche migliaio di token in ingresso, di più se c’è un PDF corposo, e 2-4 mila in uscita). Il costo unitario non è il problema. Il problema è che un endpoint pubblico che spende soldi a ogni chiamata è un invito a nozze per bot e burloni.

    La difesa è a due livelli, entrambi file-based (niente database):

    • Rate-limit per IP — un file JSON per IP in una cartella di log: 1 generazione ogni 30 secondi, massimo 10 al giorno.
    • Tetto globale giornaliero — un contatore unico condiviso da tutti gli strumenti del sito. Il rate-limit per IP non basta: chi ruota gli IP lo aggira. Il contatore globale no: raggiunto il tetto, il servizio risponde gentilmente “riprova domani” e il budget mensile ha un massimale matematico.

    Il secondo livello: la spesa giornaliera è tetto × costo massimo per generazione. Fine dell’ansia.

    La chiave API

    La chiave vive dentro la docroot, con tre difese indipendenti:

    1. sta in un file .php che non produce alcun output se richiesto via URL;
    2. la sua cartella ha un .htaccess con Require all denied;
    3. il file ha una guardia interna che risponde 404 all’accesso diretto.

    Affinché la chiave esca devono fallire tutte e tre insieme.

    La privacy è un’architettura

    I materiali dei docenti non restano da nessuna parte: nessun database, elaborazione al volo, e nei log finiscono solo data, durata e conteggio dei token:

    Niente materia, niente argomento, niente contenuti. I token servono per le statistiche interne e per tarare il tetto giornaliero. Tutto il resto evapora a fine richiesta.

    Ultimo miglio: il Word si fa nel browser

    L’export .docx è generato lato client con la libreria docx, caricata solo al click di chi esporta. Chi genera una verifica e la stampa dalla pagina non scarica un byte di JavaScript in più.

    Cosa mi porto a casa

    • I vincoli aiutano. “Deve girare su hosting condiviso” ha eliminato intere categorie di complessità: niente code, niente container, niente deploy pipeline. Il servizio è un file PHP.
    • Delegare il parsing al modello (PDF come documento allegato) è stata la singola decisione che ha semplificato di più il codice.
    • Il tetto di spesa globale è la prima cosa che rifarei identica in qualunque servizio pubblico basato su un LLM. Il rate-limit per IP da solo è una porta chiusa con la finestra aperta.

    Se vuoi vedere il risultato dal lato dei docenti, c’è il case study — con una sezione “dietro le quinte” che riassume queste scelte — e naturalmente lo strumento stesso, gratuito e senza registrazione.

    Ne avresti costruito uno diverso? Scrivimi — o passa da LinkedIn.

  • L’AI Act a scuola: cosa cambia davvero per l’istruzione

    L’intelligenza artificiale è entrata in classe prima ancora che arrivassero le regole. Correttori automatici, tutor virtuali, software che assegnano voti o selezionano gli iscritti: strumenti già in uso in molte scuole. Con l’AI Act — il Regolamento europeo 2024/1689, in vigore dal 1° agosto 2024 — l’Unione Europea prova a mettere ordine. E la scuola non è una comparsa: è uno degli ambiti che il legislatore considera più delicati.

    Perché la scuola è “sorvegliata speciale”

    L’AI Act classifica i sistemi di intelligenza artificiale in base al rischio: dal rischio minimo fino alle pratiche vietate. L’istruzione finisce spesso nella fascia alto rischio, e la ragione è semplice: un algoritmo che decide chi viene ammesso a un corso, che voto dare a un compito o a quale livello di formazione indirizzare uno studente può condizionare un’intera traiettoria di vita.

    Rientrano tra i sistemi ad alto rischio quelli pensati per determinare l’accesso o l’ammissione agli istituti, valutare i risultati di apprendimento, stabilire il livello di istruzione adeguato a una persona, oppure monitorare e individuare comportamenti vietati durante gli esami. Attenzione alla distinzione pratica: di norma è ad alto rischio solo la valutazione sommativa, quella che porta a un voto o a una qualifica; il feedback formativo e continuo durante l’apprendimento generalmente non lo è.

    Cosa è già vietato

    Alcune pratiche sono proibite a prescindere dalle scadenze. La più rilevante per la scuola è il riconoscimento delle emozioni: usare sistemi di IA per dedurre lo stato emotivo degli studenti dentro l’istituto è vietato, salvo motivi medici o di sicurezza. Il motivo è l’invasività della pratica e lo squilibrio di potere tipico del contesto educativo, dove lo studente difficilmente può rifiutarsi.

    Le scadenze (e il rinvio che ha cambiato le carte)

    Qui serve precisione, perché il quadro si è mosso da poco.

    Dal 2 febbraio 2025 sono già operativi due capitoli: il divieto delle pratiche proibite e l’obbligo di alfabetizzazione all’IA (AI literacy). Quest’ultimo riguarda direttamente il personale scolastico: chi usa sistemi di IA nel proprio lavoro deve avere un livello adeguato di competenza per comprenderli e gestirli. Tradotto: i docenti vanno formati, non solo dotati di strumenti.

    Poi è arrivato il rinvio, e adesso non è più un’ipotesi. Il Regolamento UE 2026/1744 — l’”omnibus digitale sull’IA” — è stato pubblicato in Gazzetta ufficiale dell’Unione europea il 24 luglio 2026 ed è in vigore dal 27 luglio. Gli obblighi pieni per i sistemi ad alto rischio dell’Allegato III, quelli che toccano direttamente la scuola, erano fissati al 2 agosto 2026: ora si applicano dal 2 dicembre 2027. Per l’IA incorporata in prodotti regolati dall’Allegato I si va al 2 agosto 2028. La ragione dichiarata del differimento è pratica: norme armonizzate, specifiche comuni e autorità nazionali non erano pronte.

    Attenzione però a leggerlo come un liberi tutti, perché non lo è. Il 2 agosto 2026 resta la data di applicazione generale: entrano in funzione la vigilanza delle autorità, il regime sanzionatorio e gli obblighi di trasparenza dell’articolo 50 — cioè dire chiaramente quando si sta interagendo con un sistema di IA o si utilizzano contenuti generati artificialmente. E dal 2 dicembre 2026 si aggiungono due nuovi divieti espliciti, particolarmente rilevanti per chi lavora con i minori: i sistemi che generano immagini intime non consensuali (le app di “nudification”) e quelli che producono materiale pedopornografico, anche solo parzialmente sintetico.

    L’omnibus ha ritoccato anche l’articolo 4: l’obbligo di “garantire” un livello adeguato di alfabetizzazione è diventato quello di “adottare misure per sostenerne lo sviluppo”, proporzionate al ruolo e al contesto. Non è un condono — significa che nessuno deve certificare un livello di competenza individuale, ma le misure vanno prese e documentate. Su questo l’USR Lombardia è intervenuto per smontare una lettura commerciale diffusa: non esiste un obbligo per tutto il personale scolastico di completare un corso entro il 2 agosto 2026. L’obbligo riguarda chi l’IA la usa, l’adotta o programma di adottarla.

    Cosa deve fare concretamente una scuola

    Anche con il rinvio, la direzione è tracciata e conviene muoversi per tempo:

    • Mappare gli strumenti di IA già in uso e capire in quale fascia di rischio ricadono. È il primo passo, e senza non si fa nulla del resto.
    • Formare chi li usa: l’obbligo di alfabetizzazione è attivo dal febbraio 2025, non è stato rinviato. Va calibrato sui ruoli, non distribuito a pioggia.
    • Dire che si usa l’IA: gli obblighi di trasparenza verso studenti e famiglie valgono da agosto 2026, non dal 2027.
    • Informare studenti e famiglie quando un sistema ad alto rischio interviene in decisioni che li riguardano.
    • Garantire la supervisione umana: per i sistemi ad alto rischio le persone incaricate devono avere formazione, competenza e autorità per intervenire, evitando l’”automation bias”, cioè la fiducia cieca nell’output della macchina.
    • Curare qualità dei dati e non discriminazione, per evitare effetti penalizzanti per genere, età o disabilità.

    In Italia il Ministero dell’Istruzione e del Merito ha pubblicato proprie linee guida per l’introduzione dell’IA nella scuola, da leggere insieme — non in alternativa — al GDPR, che resta pienamente applicabile ogni volta che si trattano dati degli studenti.

    In sintesi

    L’AI Act non vieta l’intelligenza artificiale a scuola: chiede di usarla con consapevolezza, trasparenza e una persona sempre responsabile delle decisioni. Il rinvio degli obblighi più gravosi al dicembre 2027 dà tempo, ma i pilastri già in vigore — niente riconoscimento delle emozioni, formazione di chi usa i sistemi, trasparenza verso studenti e famiglie — valgono da subito. Per chi lavora nella scuola, il momento di prepararsi non è il 2027: è adesso.


    Aggiornato al 1° agosto 2026. Fonti: Regolamento UE 2024/1689 (AI Act) e Regolamento UE 2026/1744 (omnibus digitale sull’IA), pubblicato in GUUE il 24 luglio 2026 e in vigore dal 27 luglio 2026; nota USR Lombardia del 2 luglio 2026 sull’alfabetizzazione IA; Linee guida MIM per l’IA nella scuola (agosto 2025).