Siamo in una nuova era: quella dell'AI, al punto che è praticamente diventata una moda. Tra imprenditori e clienti generici è la prima cosa che viene richiesta quando si sta parlando di un nuovo progetto; come se un progetto che non la integra fosse automaticamente classificabile come un progetto di serie B.
Non interpretate male il messaggio... Io sono il primo fautore dell'intelligenza artificiale! Ma sono al contempo e forse in modo ancor più marcato fautore della logica applicativa.
Per quanto mi riguarda, ma sono sicuro di parlare anche a nome di tutti gli sviluppatori degni di essere catalogati come tali, l'AI non va integrata quando "fa figo", va integrata quando il contesto lo richiede, ovvero quando siamo in presenza, per lo più, di problemi che abbiano a che fare con il concetto di comprensione semantica.

Quando non integrare AI: un caso pratico
Un caso di non-uso.
Usereste l'AI per la validazione di un codice fiscale?
Ovviamente la risposta è no!
In un caso del genere l'utilizzo dell'AI non è solo inutile, ma renderebbe un processo di risoluzione veloce per mezzo di un semplice algoritmo deterministico, un processo lento, macchinoso e costoso in termini economici.
Ecco perché quando mi trovo a parlare di questi concetti con i clienti che mi richiedono di integrare AI anche laddove non serve, gli parlo immediatamente dei costi. Il costo sembra essere la parola magica da utilizzare quando si richiede l'attenzione degli imprenditori.
Cosa serve per validare un codice fiscale?
Verificare che la lunghezza sia corretta: 16 caratteri
Verificare la posizione delle lettere all'interno della stringa
Controllare l'omocodia

Controllare il carattere di controllo (checksum)
Verificare il pattern dei numeri
Perché dunque in questo caso deve essere applicato un algoritmo deterministico? Perché stiamo scrivendo quel blocco di codice che integra 5 funzioni essenziali in cui le regole sono fisse e note, il risultato che devono tornare è di tipo booleano, non esiste un'interpretazione soggettiva (il codice fiscale può essere solo valido o non valido), non è richiesta una probabilità ma c'è certezza assoluta di match/mismatch.
Verificare questi 5 punti anche con un linguaggio poco performante permetterebbe di processarne probabilmente centinaia di migliaia al secondo.
Perché usare AI sarebbe un errore
Un modello AI è sicuramente più lento perché dovrei scrivere un prompt in cui devo spiegare al modello cosa fare. Il prompt deve essere convertito in token, inviato al modello, attendere la risposta (tempo di inferenza spesso superiore al secondo), processare la risposta, tipicamente in JSON per valutare la risposta del modello. In questo caso probabilmente non riuscirei a processarne più di 1 al secondo.
Inoltre tutta questa solfa, a meno di non avere un server ottimizzato per l'AI in ufficio, avviene tramite servizi a pagamento che hanno un costo a consumo.
Se dovessi vagliare la validità di un milione di codici fiscali con AI questa operazione richiederebbe nel migliore dei casi circa 12 giorni lasciando lo script in esecuzione 24 ore su 24. Con un algoritmo deterministico scritto in un linguaggio compilato come il C, probabilmente l'elaborazione richiederebbe meno di un secondo, con linguaggi ad alto livello (Python, PHP), il tempo salirebbe ad un paio di secondi.
Nel caso in cui utilizzassimo AI al di là del tempo dovremmo considerare almeno 10 token di input e 20 di output per richiesta. Su un milione di codici fiscali avremmo 10 milioni di token di input e 20 milioni di token di output che scegliendo anche il modello meno costoso (gpt-4o-mini) genererebbe un costo totale di circa 14 dollari per l'elaborazione contro il costo 0 per l'algoritmo deterministico.
Capite bene che in un contesto come questo AI non è solo inutile, è più lenta e più dispendiosa.
Quando integrare AI: casi d'uso efficaci
Immaginiamo di avere un sito che vende prodotti. Gli utenti lasciano delle recensioni sui prodotti e voglio interpretare il sentiment al di là del numero di stelle che l'utente può lasciare.
Comprendere il sentiment di una recensione non può essere fatto con un algoritmo deterministico.
Perchè? Perché parliamo di linguaggio naturale, un dominio in cui l'ironia può significare l'esatto opposto della frase esposta, un aggettivo positivo può convivere con un giudizio negativo, il contesto modifica completamente il significato, oppure gli utenti scrivono male abbreviando, storpiando o saltando punteggiatura o ancora quando il linguaggio umano è intrinsecamente ambiguo e soggettivo.
Prodotto fantastico... Se vi piace buttare via i soldi"
Integrare una valutazione del sentiment attraverso un algoritmo deterministico dovrebbe essere basato su un dizionario di termini positivi e negativi. In una frase come quella qui sopra l'algoritmo interpreterebbe "fantastico" come positivo e "buttare soldi" pertanto il risultato finale dell'analisi sarebbe non determinabile.
Un modello di AI addestrato sui pattern linguistici comprende il sarcasmo, riconosce la struttura della frase e identifica l'intento reale. Il risultato sarà sentiment negativo con confidenza elevata. Questo è un tipo di comprensione impossibile da modellare con regole statiche.

Ecco che in casi come questo l'AI non è un vezzo: è l'unico strumenti tecnicamente valido e integrabile per la valutazione del sentiment di un recensore.
Pertanto l'AI è sicuramente un grande alleato a patto che venga utilizzato dove è realmente indicato. Deve produrre un beneficio non una limitazione o un costo aggiuntivo.