Intelligenza artificiale. Curiosità artigianale.

Intelligenza artificiale

Ho chiesto all’AI di costruirmi una dashboard per le spese. Spoiler: ci è voluto qualche giorno, ma funziona.

Non so programmare. O meglio — so leggere il codice abbastanza da capire cosa fa, ma scriverlo da zero è un’altra storia. Eppure da qualche settimana ho una dashboard Python che carica i movimenti della mia PostePay, li categorizza, mi dice dove finiscono i soldi ogni mese e mi proietta il saldo a fine mese. L’ho costruita io. Con l’aiuto di Google AI Studio.

Questo è il racconto di com’è andata — inclusi i momenti in cui pensavo di aver rotto tutto.

L’idea di partenza

Il problema era banale: avevo degli script Python abozzati in giro, nessuno funzionava bene, e continuavo a non avere un quadro chiaro delle mie spese. Volevo qualcosa di preciso — non un foglio Excel fatto a mano, non un’app generica che non si connette alla mia banca. Una dashboard mia, con i miei dati, che funzionasse come volevo io.

Ho aperto Google AI Studio e ho iniziato a costruire per pezzi. Questa è la prima cosa che ho imparato: non chiedere tutto in una volta. Il primo prompt è stato semplice: “creami un file bat che mi crei cartelle, sottocartelle e file”. Niente di più. Da lì, un pezzo alla volta.

Il bug che mi ha fatto venire un mezzo infarto

Tutto andava bene finché non ho caricato i miei dati veri. Il file Excel della PostePay aveva 2100 righe di movimenti storici. La dashboard ne mostrava 629.

Sparite. Così. Senza un messaggio di errore decente.

Ero frustrato — nel senso che sembrava che stesse andando tutto storto proprio sul pezzo più importante. Ho chiesto all’AI di diagnosticare il problema, e dopo un po’ di analisi è venuto fuori il colpevole: i formati delle date. I file più vecchi avevano gli anni a due cifre (“17/03/23”), quelli nuovi a quattro (“17/03/2024”). Pandas cercava di interpretarli con un formato fisso, andava in errore su quelli non compatibili e… le scartava in silenzio.

La soluzione è stata una riga: pd.to_datetime(format='mixed'). Una riga per recuperare 1500 righe di dati storici.

Come funziona la dashboard, in pratica

Una volta risolto il parser, ho costruito il resto per fasi. L’AI ha scritto il codice, io ho testato, ho descritto i problemi, e siamo andati avanti.

Il motore degli esercenti usa le Regex per pulire le descrizioni bancarie — quelle scritte in modo incomprensibile tipo “POS 00123 CONAD VIA ROMA ***” — e isola il nome dell’attività. Risultato: posso vedere che ho speso X euro da Conad questo mese, Y da Amazon, Z in benzina. I “Top Spender” di un colpo solo.

Il sistema di upload permette di trascinare il nuovo file della banca ogni mese. L’app lo legge, lo confronta con lo storico e aggiunge solo le righe nuove — senza doppioni, usando come chiave la combinazione di data, importo e descrizione.

La correzione manuale delle categorie è quella che uso di più. L’algoritmo categorizza automaticamente i movimenti, ma sbaglia. Quando sbaglia, clicco sulla cella, scelgo la categoria giusta dal menu a tendina, e la modifica viene salvata su Excel istantaneamente. Semplice, ma è quello che rende la dashboard “viva” invece di una fotografia passiva.

La dashboard è nata per la PostePay, ma il motore è adattabile. Se la tua banca esporta i movimenti in CSV o Excel, il parser può essere modificato per leggere il tuo formato. Ne parlo meglio più avanti.

Il forecast: dove l’automazione ha perso

Questa è la parte che mi ha sorpreso di più — nel senso che non mi aspettavo quanto fosse difficile fare previsioni decenti.

Il primo tentativo era un burn rate lineare: guarda quanto hai speso negli ultimi giorni, proietta fino a fine mese. Troppo semplice, ma funzionava abbastanza. Poi ho voluto fare di più: un algoritmo ibrido che riconoscesse le entrate ricorrenti (tipo lo stipendio) e le includesse nel calcolo automaticamente.

Risultato? Forecast da +10.000 euro al mese.

Il problema era sottile: ogni mese il codice bancario dell’accredito dello stipendio cambia leggermente. L’algoritmo non riconosceva che era sempre lo stesso stipendio — lo leggeva come una nuova entrata ogni volta. E sommava tutto.

La soluzione è stata disarmante nella sua semplicità: ho inserito il valore medio dello stipendio a mano in un file di configurazione. L’app controlla se lo stipendio è già arrivato quel mese; se manca, lo aggiunge al calcolo. Fine.

Nessun machine learning. Nessun riconoscimento automatico. Un numero fisso inserito dall’utente. E funziona meglio di tutto il resto.

Il progetto è disponibile — con qualche avvertenza

Ho deciso di condividere il codice. Prima di farlo ho fatto un giro di controlli per assicurarmi che non ci fossero dati personali nel repository e che il progetto fosse navigabile anche da chi non ha seguito tutto il processo dall’inizio.

Una cosa che tengo a dire: questa dashboard è nata sui file della PostePay, ma non è limitata a loro. Se la tua banca ti permette di esportare i movimenti in CSV o Excel — e quasi tutte lo fanno — puoi adattarla al tuo caso. Basta descrivere a un’AI com’è fatto il tuo file e chiederle di modificare il parser di conseguenza. Lo stesso metodo che ho usato io per costruirla funziona benissimo anche per adattarla.

Trovi tutto su GitHub: [https://github.com/AlvioInsights/Postepay_Dashboard]

Nel repository c’è anche un file README con le istruzioni per partire. Se hai dubbi o ti blocchi su qualcosa, scrivimi nei commenti.

Cosa ho imparato

La cosa più utile di questo progetto non è la dashboard in sé — è il metodo. Chiedere a un’AI di costruire qualcosa di complesso per pezzi piccoli funziona molto meglio che descrivere il progetto intero e sperare. Ogni fase testata, ogni errore descritto con precisione, ogni vicolo cieco abbandonato senza drammi.

Il forecast automatico non funzionava? Cambiamo approccio, senza buttare via tutto il resto.

Uso la dashboard ogni mese. Ci carico il nuovo estratto conto, sistemo le categorie sbagliate, guardo i grafici. Non ho scritto una riga di codice — nel senso che non avrei saputo da dove iniziare. Ma so esattamente come funziona ogni pezzo, perché l’ho costruito un prompt alla volta.

A volte il valore inserito dall’utente batte l’algoritmo più sofisticato. Vale per il forecast. Vale probabilmente per molte altre cose.