Corso AI Developer. Modulo 2. “Stai usando l’AI… o stai solo ottenendo output?”
Introduzione: il problema che vedo sempre
Molti developer oggi usano strumenti come ChatGPT o GPT-4 in modo apparentemente efficace. Scrivono prompt, ottengono codice, risolvono problemi.
Il punto è: stanno usando qualcosa che non comprendono realmente E questo, nel momento in cui costruisci sistemi, diventa un rischio serio.
Perché finché usi l’AI per generare una funzione, puoi permetterti errori. Quando la usi dentro un prodotto, non più. Questo modulo serve a colmare proprio quel gap.
Lezione 1 — Cosa succede davvero quando fai una richiesta all’AI
Partiamo da una scena molto semplice.
Scrivi:
“Crea una funzione Python che valida un indirizzo email”
Ottieni una risposta corretta. Funziona. Tutto bene.
Ma cosa è successo davvero?
Il modello non “sa” cosa sia una email nel senso umano. Non ha una rappresentazione logica come la tua. Ha visto milioni di esempi di codice e testo e ha imparato una cosa: “dato questo input, questo output è probabilmente corretto”
È un sistema probabilistico. Ogni parola (token) che genera è la più probabile rispetto a:
- quello che hai scritto
- quello che ha già generato
Non sta ragionando. Sta predicendo.
Esempio concreto (molto importante)
Prompt:
“Crea una funzione che verifica se un numero è primo”
Il modello produce codice corretto.
Ora cambiamo leggermente:
“Crea una funzione ottimizzata per numeri fino a 10 milioni”
Qui iniziano le differenze. Alcune risposte saranno buone, altre meno efficienti.
Perché?
Perché il modello non valuta realmente la complessità computazionale.
Sta generando qualcosa che “somiglia” a una soluzione plausibile.
Questo è il punto: l’AI produce plausibilità, non garanzia
Lezione 2 — Token, contesto e perché a volte “impazzisce”
Per usare bene l’AI devi capire tre concetti chiave: token, contesto, limite. Un token non è una parola, è un’unità di testo. Può essere una parola, una parte di parola, un simbolo. Quando scrivi un prompt, il modello non “vede” una frase: vede una sequenza di token.
Questo ha implicazioni pratiche enormi.
Caso reale
Scrivi un prompt lungo, pieno di dettagli, con codice, contesto, regole. Funziona perfettamente.
Poi aggiungi altro testo. All’improvviso la qualità cala. Non è magia. È contesto.
Il modello ha una “finestra di memoria”.
Se la superi o la saturi male, alcune informazioni vengono “dimenticate” o pesano meno.
Esempio pratico
Immagina di costruire un sistema AI per analizzare contratti.
Se carichi:
- 3 documenti → risposta precisa
- 30 documenti → risposta confusa
Non è perché l’AI peggiora.
È perché non stai gestendo il contesto correttamente.
Qui nasce una competenza chiave: non basta dare informazioni, devi strutturarle
Lezione 3 — Bias e allucinazioni (la parte che i developer sottovalutano)
Qui entriamo in un punto critico.
Un modello AI può:
- inventare funzioni
- citare API inesistenti
- costruire codice perfettamente plausibile… ma sbagliato
E lo fa con sicurezza.
Caso reale da produzione
Prompt:
“Usa questa libreria JavaScript per fare X”
Il modello risponde usando funzioni che non esistono davvero nella libreria.
Il codice è pulito, credibile, ma inutilizzabile.
Perché succede?
Perché il modello ha visto pattern simili e li ricombina.
Non verifica la realtà.
Non ha accesso diretto alla verità.
Implicazione per un developer
Se prendi output AI e lo usi senza verifica:
👉 stai delegando decisioni tecniche a un sistema non affidabile
Altro esempio (più sottile)
Chiedi:
“Qual è il modo migliore per autenticare utenti?”
Il modello può suggerire soluzioni valide… ma non adatte al tuo contesto.
Magari:
- troppo complesse
- non conformi a normative
- non scalabili nel tuo sistema
Qui emerge il punto chiave: l’AI non sbaglia sempre, ma non sa quando sbaglia
Lezione 4 — Prompt vs programmazione (la differenza che cambia tutto)
Molti dicono: “il prompt è come codice”. Non è vero. È una semplificazione pericolosa.
Quando scrivi codice:
- hai controllo deterministico
- stesso input → stesso output
Quando scrivi un prompt:
- lavori con probabilità
- stesso input → output leggermente diversi
Esempio pratico
Prompt:
“Scrivi una funzione per ordinare un array”
Puoi ottenere:
- quicksort
- mergesort
- sort nativo
Tutti validi, ma diversi.
Cosa significa per te
Non stai programmando istruzioni. Stai guidando un comportamento. E questo cambia tutto.
Caso reale
Vuoi generare codice coerente in un team.
Se ogni developer scrive prompt “a caso”, ottieni:
- stili diversi
- logiche diverse
- incoerenza
Serve progettazione anche nei prompt.
Lezione 5 — Il vero errore: trattare l’AI come una funzione
Questo è l’errore più diffuso. Molti sistemi vengono progettati così: input → AI → output
Sembra semplice, ma è fragile.
Esempio reale
Sistema che genera risposte clienti.
Funziona bene all’inizio.
Poi emergono problemi:
- risposte incoerenti
- errori su casi limite
- mancanza di controllo
Perché?
Perché manca tutto ciò che sta intorno:
- contesto
- validazione
- regole
- fallback
Come cambia il modello mentale
Un sistema AI corretto è più simile a questo:
input → interpretazione → contesto → AI → validazione → output
Esempio concreto
Sistema email:
Un utente scrive:
“Vorrei sapere se posso annullare il contratto”
Un sistema banale risponde subito.
Un sistema ben progettato:
- capisce il tipo di richiesta
- recupera policy aziendali
- genera risposta
- verifica che non violi regole
Questo è AI development. Non il prompt.
Esercizio pratico guidato
Ora ti forzo a ragionare come developer evoluto.
Hai questo sistema: utente → AI → risposta
Non puoi aggiungere codice complesso.
Puoi solo progettare meglio.
Domanda:
Come lo migliori?
Risposta attesa (non unica, ma deve includere)
- introduzione di contesto
- definizione regole
- controllo output
- gestione errore
Mini test di verifica
Qui non mi interessa se “ricordi”. Mi interessa se hai capito.
Domanda 1
Se l’AI genera codice corretto ma inefficiente, il problema è:
A) del modello
B) del prompt
C) della mancanza di validazione
D) del linguaggio
Risposta: dipende, ma C è sempre coinvolta
Domanda 2
Perché due prompt identici possono dare output diversi?
Risposta attesa: natura probabilistica del modello
Domanda 3 (fondamentale)
Spiega perché questo sistema è fragile:
input → AI → output
Se non menzioni almeno:
- contesto
- validazione
- rischio
non hai ancora cambiato livello
…e per concludere
Se nel Modulo 1 hai cambiato prospettiva, qui hai acquisito una cosa ancora più importante:
consapevolezza tecnica dei limiti
Un developer che usa l’AI senza capirla è veloce.
Un developer che la capisce è pericolosamente efficace.
Nel prossimo modulo iniziamo a sporcarci le mani davvero:
prompt engineering fatto bene, non quello “da blog”.
E lì si vede subito chi ha capito e chi no.


