Il Giardino
Un assistente AI personale che gira solo sul mio Mac, con memoria, voce e note, senza mandare i dati nel cloud.
- Tutto in casa
- l'assistente lavora sul computer e i dati non escono mai
- Anche a voce
- si parla e risponde, senza servizi esterni
Il problema
Volevo un assistente che conoscesse il mio modo di lavorare, le mie note e la mia giornata. Proprio per questo non poteva mandare niente a un servizio esterno. È il problema di chiunque lavori con informazioni riservate: l’AI sarebbe utile proprio sui dati che non possono uscire.
Cosa fa
È un assistente personale con memoria, voce e note. Ci scrivo o ci parlo dal telefono e dal Mac, e lui tiene in ordine attività, diario e appunti, e risponde anche a voce. Lavora tutto sul mio computer: l’unica cosa che chiede a internet è il meteo della città.
Le scelte che contano
- I dati non escono, per costruzione. Le parti che usano l’AI rifiutano qualsiasi collegamento che non sia il computer stesso. La privacy è una regola del sistema, non una promessa.
- Quello che dico si salva, quello che l’AI deduce aspetta. Ogni deduzione finisce in un cestino di proposte, e decido io se tenerla, scartarla o rimandarla. È il modo più semplice per potersi fidare di ciò che l’AI ricava.
- Lo strumento giusto per ogni compito. Scrivere richiede un’AI grande, scegliere tra poche opzioni no. Per le scelte uso un’AI piccola, che risponde in circa 120 millisecondi invece di 8 secondi.
- I calcoli esatti li fa il programma. Quando si parla di musica l’AI sceglie, ma note e accordi li calcola il programma, che verifica anche che la progressione proposta esista davvero.
- Le note sono informazioni, mai ordini. L’assistente legge l’archivio come un insieme di dati e non esegue istruzioni trovate lì dentro. Le proposte che sembrano password, chiavi o coordinate bancarie vengono scartate.
A che punto è
Lo uso ogni giorno sul mio Mac. È un progetto personale e non un prodotto, per questo racconto come funziona ma non mostro schermate con contenuti reali.
Cosa vale anche per un’azienda
- AI sulle proprie macchine, regole dentro il sistema e l’ultima parola alle persone. Sono le stesse scelte che servono a chi ha dati riservati.
- Chiedere una cosa alla volta migliora molto i risultati. In una prova di classificazione le risposte giuste sono passate da 4 su 6 a 8 su 8.
- Con un’AI piccola le opzioni numerate funzionano meglio delle lettere o dei nomi.
Come si muove l'informazione
Il metodo che uso con i clienti, applicato a questo progetto: si segue l'informazione da dove nasce fino a come si capisce se tutto funziona.
- Da dove nasceL'uso di tutti i giorni, dal telefono e dal Mac, e un archivio di note personali.
- Come arrivaMessaggi scritti o dettati, comandi rapidi di Siri e audio, tutto trattato sul computer.
- Come viene descrittaNote in semplici file di testo e un archivio consultabile, con una memoria che ritrova le cose anche per significato, non solo per parola.
- Cosa le succedeLa voce diventa testo, un'AI grande scrive le risposte e una piccola sceglie tra poche opzioni.
- Dove restaTutto resta sul Mac, con una copia di sicurezza verificata ogni giorno.
- Chi decideSe l'AI piccola non è sicura decide quella grande, e ogni deduzione aspetta la mia approvazione.
- Cosa succede dopoSi aggiornano note e archivio, e l'assistente risponde anche a voce.
- Come capiamo se funzionaApprovo, rifiuto o correggo; un registro dice quale parte del sistema ha preso ogni decisione.
Per chi vuole i dettagli tecnici
Come è fatto, per chi lavora nel software o vuole sapere cosa c'è sotto. I numeri hanno tutti una fonte.
- Servizio FastAPI sul Mac avviato da launchd, raggiungibile solo in locale e, dal telefono, attraverso una rete privata. I client verso i modelli rifiutano ogni host non locale e ignorano i proxy di sistema.
- Scrittura con Gemma da 12 miliardi di parametri e scelte con un modello da 4 miliardi, serviti da llama.cpp. Le risposte strutturate seguono uno schema JSON applicato come grammatica.
- Per le scelte le opzioni sono numerate da 1 a 9 e si legge la probabilità di ogni cifra. Sotto una soglia decide il modello grande, e poi una tabella di parole scritta a mano.
- Memoria semantica con EmbeddingGemma, con ricerca per parole chiave se è spenta; voce con whisper.cpp e Piper; note in Markdown in un archivio Obsidian e un database SQLite con ricerca testuale.
- Web app installabile che funziona offline; accesso con PIN protetto da PBKDF2 e blocco progressivo; comandi rapidi di Siri con una chiave separata, valida su tre indirizzi.
- Dati inviati al cloud
- Nessuno, a parte il meteo per cittàfonte: guida del progetto, cap. 1
- Servizi AI locali
- 5, raggiungibili solo da questo computerfonte: controllo dell'host in src/assistente/llm.py e config.py
- Scelta tra opzioni
- circa 120 ms invece di 8 sfonte: guida del progetto, cap. 9
- Test automatici
- 811fonte: cartella tests/, conteggio del 27/09/2026
Strumenti usati: Python, FastAPI, llama.cpp, Gemma, Qwen3, EmbeddingGemma, whisper.cpp, Piper, SQLite FTS, PWA, Service Worker, Siri Shortcuts