-
Notifications
You must be signed in to change notification settings - Fork 1
Configurazione
Riferimento completo per tutte le impostazioni disponibili nella pagina ⚙️ Impostazioni. Le impostazioni sono persistite nel database (
ledger.db) e si applicano immediatamente al prossimo salvataggio.
- Prima configurazione obbligatoria
- Conti bancari
- Titolari del conto
- Formato visualizzazione
- Lingua delle descrizioni
- Modalità Giroconti
- Contesti di vita
- Modalità test importazione
- Backend LLM
| Ordine | Cosa configurare | Dove | Perché è obbligatorio |
|---|---|---|---|
| 1 | Nomi titolari | Impostazioni → Titolari | Necessari per il rilevamento giroconti e la sanitizzazione PII |
| 2 | Almeno un conto bancario | Impostazioni → Conti bancari | Raccomandato per deduplicazione stabile tra sessioni |
Se i nomi titolari non sono configurati, la pagina Import mostra un errore e blocca l'elaborazione.
Percorso: Impostazioni → 🏦 Conti bancari
Definisce i conti correnti, carte e depositi che possiedi. Ogni conto ha:
| Campo | Obbligatorio | Descrizione |
|---|---|---|
| Nome conto | ✅ Sì | Identificativo univoco (es. Conto corrente BPER, Carta Visa BNL) |
| Banca | No | Nome della banca per riferimento (non influenza l'elaborazione) |
- Nella pagina Import puoi associare ogni file a un conto specifico invece di affidarti al rilevamento automatico.
- Il nome del conto viene salvato con ogni transazione (
account_label) ed è la chiave usata per la Check List (pivot mese × conto). - Migliora la deduplicazione: transazioni dello stesso conto importate in sessioni diverse vengono riconosciute correttamente.
- Puoi importare senza conti definiti, ma il rilevamento automatico potrebbe assegnare nomi diversi allo stesso conto in importazioni successive.
- Elimina un conto solo se non ha transazioni associate, altrimenti le transazioni esistenti manterranno il vecchio
account_label.
Percorso: Impostazioni → 👤 Titolari del conto
Lista di nomi dei titolari dei conti, separati da virgola.
Mario Rossi, Anna Bianchi
Utilizzi:
-
Sanitizzazione PII — I nomi vengono sostituiti con alias fittizi (es.
Carlo Brambilla) prima di inviare qualsiasi testo a backend LLM remoti (OpenAI, Claude). Il dato originale nel database non viene mai modificato. -
Rilevamento giroconti — Se attivi il toggle Usa nomi titolari per identificare giroconti, le transazioni la cui descrizione contiene un nome titolare vengono marcate automaticamente come giroconto (🔄).
| Stato | Comportamento |
|---|---|
| Attivo | Bonifici con il tuo nome in descrizione → marcati 🔄 giroconto |
| Disattivo | Rilevamento giroconti solo per importo/data/conto (RF-04 Fase 1) |
Consiglio: Inserisci anche le varianti del nome usate dalle banche (cognome-nome, maiuscolo, senza accenti). Esempio:
Mario Rossi, ROSSI MARIO, Rossi M.
Percorso: Impostazioni → Formato visualizzazione
Controlla come date e importi vengono mostrati nel Ledger, Analytics e Review. Non influenza il database (che usa sempre ISO 8601 e Numeric).
| Opzione | Esempio | Note |
|---|---|---|
dd/mm/yyyy |
31/12/2025 | Default — standard italiano |
yyyy-mm-dd |
2025-12-31 | ISO 8601, adatto a export/CSV |
mm/dd/yyyy |
12/31/2025 | Standard US |
| Impostazione | Opzioni | Default |
|---|---|---|
| Separatore decimali |
, (italiano/europeo) · . (inglese/US) |
, |
| Separatore migliaia |
. (italiano) · , (inglese) · (francese) · nessuno |
. |
La pagina mostra un'anteprima in tempo reale (es. 1.234,56 €) prima di salvare.
Percorso: Impostazioni → Lingua delle descrizioni
| Opzione | Codice |
|---|---|
| Italiano | it |
| English | en |
| Français | fr |
| Deutsch | de |
Viene passata al prompt del categorizzatore LLM per aiutarlo a interpretare correttamente le descrizioni delle transazioni. Se le tue rendicontazioni sono in italiano, lascia it (default).
Esempio: Una descrizione come
"PAGAMENTO POS CONAD"viene interpretata diversamente da un modello istruito in italiano rispetto a uno istruito in inglese.
Percorso: Impostazioni → 🔄 Modalità Giroconti
| Modalità | Comportamento nel Ledger | Comportamento in Analytics |
|---|---|---|
| Mostra (neutral) | Le righe 🔄 sono visibili (grigie/neutre) | Escluse dai totali entrate/uscite |
| Escludi dal registro | Le righe 🔄 non compaiono | Escluse |
La modalità si applica globalmente. Puoi sovrascriverla per singola vista usando il checkbox Nascondi giroconti nel Ledger.
Percorso: Impostazioni → 🌍 Contesti di vita
Lista libera di etichette per segmentare le spese per contesto (es. Quotidianità, Lavoro, Vacanza).
- Aggiungi/rimuovi contesti liberamente
- Assegna un contesto a ogni transazione dal Ledger (colonna Contesto)
- Usa il filtro Contesto in Analytics per confrontare i periodi (es. "quanto ho speso in vacanza vs quotidianità?")
Default: Quotidianità, Lavoro, Vacanza
Percorso: Impostazioni → 📥 Importazione
| Toggle | Comportamento |
|---|---|
| Disattivo (default) | Elabora tutte le righe del file |
| Attivo | Elabora solo le prime 20 righe per file |
Utile per:
- Verificare che il formato del file venga riconosciuto correttamente prima di un import completo
- Testare la classificazione LLM su un campione senza attendere l'elaborazione completa
- Debug di nuovi formati bancari
⚠️ Ricordati di disattivarlo prima dell'import definitivo.
Percorso: Impostazioni → 🤖 Configurazione LLM
Il backend LLM viene usato per:
- Classificazione categorie — assegna categoria/sottocategoria a ogni transazione
- Estrazione controparte — normalizza la descrizione grezza della banca
| Backend | Privacy | Costo | Velocità | Qualità |
|---|---|---|---|---|
| Ollama (locale) | ✅ Totale | ✅ Gratuito | ⚡ Dipende dall'hardware | Buona (con gemma3:12b) |
| OpenAI | 💰 Pay-per-use | ⚡⚡ Alta | Alta | |
| Claude (Anthropic) | 💰 Pay-per-use | ⚡⚡ Alta | Alta | |
| OpenAI-compatible | Varia | Varia | Varia |
Circuit breaker: Se il backend configurato non risponde, Spendify fa fallback automatico su Ollama locale. Se anche Ollama è offline, la transazione viene importata con to_review=True e descrizione grezza.
La scelta migliore per la privacy totale: nessun dato lascia il tuo computer.
Installazione (una tantum):
# macOS
brew install ollama
# Linux
curl -fsSL https://ollama.ai/install.sh | sh
# Windows
# Scarica l'installer da https://ollama.ai/downloadScaricare il modello:
ollama pull gemma3:12b # consigliato (~8 GB)
ollama pull llama3.2:3b # leggero (~2 GB), qualità inferioreVerificare che funzioni:
ollama list # mostra i modelli scaricati
curl http://localhost:11434 # deve rispondere "Ollama is running"| Campo | Default | Descrizione |
|---|---|---|
| URL server Ollama | http://localhost:11434 |
Cambia solo se Ollama gira su un altro host o in Docker |
| Modello | gemma3:12b |
Deve corrispondere esattamente all'output di ollama list
|
Ollama su Docker (esempio):
# docker-compose.yml
services:
ollama:
image: ollama/ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollamaIn questo caso imposta URL: http://localhost:11434 (o l'IP del container se Spendify è a sua volta in Docker).
Modelli consigliati per qualità categorizzazione:
| Modello | RAM richiesta | Note |
|---|---|---|
gemma3:12b |
~8 GB | ✅ Consigliato — ottimo per italiano, veloce su Apple Silicon |
qwen2.5:14b |
~10 GB | Ottima qualità multilingua, più lento |
mistral:7b |
~5 GB | Alternativa solida, multilingua |
llama3.2:3b |
~3 GB | Velocissimo, qualità sufficiente per categorie semplici |
Tip Apple Silicon: I modelli girano sulla GPU integrata (Metal) — gemma3:12b elabora ~15-20 transazioni al secondo su M2/M3.
Dove registrarsi: https://platform.openai.com
Come ottenere la API Key:
- Accedi su https://platform.openai.com
- Menu in alto a destra → API keys
- Clicca + Create new secret key
- Dai un nome (es.
Spendify) e copia la chiave — mostrata una sola volta - Assicurati di avere credito nel tuo account (sezione Billing)
Configurazione in Spendify:
Backend LLM: OpenAI
API Key: sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Modello: gpt-4o-mini
Modelli disponibili e costi indicativi (marzo 2026):
| Modello | Input ($/1M token) | Output ($/1M token) | Note |
|---|---|---|---|
gpt-4o-mini |
$0.15 | $0.60 | ✅ Consigliato — ottimo rapporto qualità/prezzo |
gpt-4o |
$2.50 | $10.00 | Alta qualità, costo ~15× superiore |
gpt-4.1-mini |
$0.40 | $1.60 | Alternativa economica più recente |
Stima costi: 1000 transazioni ≈ ~100k token totali ≈ $0.015 con gpt-4o-mini.
Privacy: IBAN, numeri carta, codice fiscale e nomi titolari vengono sostituiti con placeholder prima dell'invio. Il testo inviato a OpenAI non contiene mai dati identificativi.
Dove registrarsi: https://console.anthropic.com
Come ottenere la API Key:
- Accedi su https://console.anthropic.com
- Sezione API Keys (menu laterale)
- Clicca Create Key
- Dai un nome (es.
Spendify) e copia la chiave - Aggiungi credito in Billing → Add Credits (minimo $5)
Configurazione in Spendify:
Backend LLM: Claude (Anthropic)
API Key: sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Modello: claude-3-5-haiku-20241022
Modelli disponibili:
| Modello | Velocità | Qualità | Note |
|---|---|---|---|
claude-3-5-haiku-20241022 |
⚡⚡⚡ | ⭐⭐⭐⭐ | ✅ Consigliato — veloce, economico, ottima qualità |
claude-3-5-sonnet-20241022 |
⚡⚡ | ⭐⭐⭐⭐⭐ | Qualità superiore per descrizioni ambigue |
claude-opus-4-5 |
⚡ | ⭐⭐⭐⭐⭐ | Massima qualità, costo elevato |
Privacy: stesse garanzie di OpenAI — PII redatte prima dell'invio.
Compatibile con qualsiasi API che esponga l'endpoint /v1/chat/completions nel formato OpenAI.
| Campo | Esempio | Descrizione |
|---|---|---|
| Base URL | https://api.groq.com/openai/v1 |
URL base del provider (senza /chat/completions) |
| API Key | gsk_... |
Chiave del provider |
| Modello | gemma2-9b-it |
Nome modello esatto come richiesto dal provider |
Dove registrarsi: https://console.groq.com
Come ottenere la API Key:
- Registrati su https://console.groq.com (gratuito)
- Menu laterale → API Keys → Create API Key
- Copia la chiave (prefisso
gsk_)
Configurazione:
Backend LLM: OpenAI-compatible
Base URL: https://api.groq.com/openai/v1
API Key: gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Modello: gemma2-9b-it
Modelli Groq utili per Spendify:
| Modello | Note |
|---|---|
gemma2-9b-it |
✅ Consigliato — ottimo per italiano, molto veloce |
llama-3.3-70b-versatile |
Alta qualità, leggermente più lento |
llama-3.1-8b-instant |
Velocissimo, qualità buona |
Tier gratuito: ~14.400 richieste/giorno, sufficiente per uso personale. Limite di 6000 token/minuto.
Dove registrarsi: https://api.together.ai
Come ottenere la API Key:
- Registrati e accedi su https://api.together.ai
- Vai su Settings → API Keys
- Crea una nuova chiave
Configurazione:
Backend LLM: OpenAI-compatible
Base URL: https://api.together.xyz/v1
API Key: <tua_api_key>
Modello: meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo
Dove registrarsi: https://aistudio.google.com
Come ottenere la API Key:
- Vai su https://aistudio.google.com
- Clicca Get API key in alto a destra
- Create API key → seleziona o crea un progetto Google Cloud
Configurazione:
Backend LLM: OpenAI-compatible
Base URL: https://generativelanguage.googleapis.com/v1beta/openai
API Key: AIza...
Modello: gemini-2.0-flash
Modelli Gemini:
| Modello | Note |
|---|---|
gemini-2.0-flash |
✅ Consigliato — veloce, alta qualità, tier gratuito generoso |
gemini-1.5-flash |
Alternativa economica |
Tier gratuito: 1500 richieste/giorno con gemini-2.0-flash — più che sufficiente per uso personale.
LM Studio è un'app desktop (macOS, Windows, Linux) per eseguire modelli localmente con interfaccia grafica.
Download: https://lmstudio.ai
Configurazione:
- Scarica e installa LM Studio
- Scarica un modello dalla sezione Discover
- Avvia il server locale: Local Server → Start Server
- In Spendify:
Backend LLM: OpenAI-compatible
Base URL: http://localhost:1234/v1
API Key: lm-studio (qualsiasi stringa, non verificata)
Modello: (copia il nome esatto dal pannello di LM Studio)
Alla prima installazione il database viene inizializzato con questi valori:
| Chiave | Default | Descrizione |
|---|---|---|
date_display_format |
%d/%m/%Y |
Formato italiano dd/mm/yyyy
|
amount_decimal_sep |
, |
Separatore decimali italiano |
amount_thousands_sep |
. |
Separatore migliaia italiano |
description_language |
it |
Italiano |
giroconto_mode |
neutral |
Giroconti visibili ma neutri |
llm_backend |
local_ollama |
Ollama locale |
ollama_base_url |
http://localhost:11434 |
Porta default Ollama |
ollama_model |
gemma3:12b |
Modello raccomandato |
openai_model |
gpt-4o-mini |
Modello OpenAI economico |
anthropic_model |
claude-3-5-haiku-20241022 |
Modello Claude economico |
import_test_mode |
false |
Import completo |
owner_names |
(vuoto) | Da configurare prima del primo import |
contexts |
["Quotidianità","Lavoro","Vacanza"] |
Contesti predefiniti |
[ ] 1. Vai in ⚙️ Impostazioni
[ ] 2. Compila "Nomi titolari" con il tuo nome (e varianti)
[ ] 3. Aggiungi i tuoi conti bancari (almeno i principali)
[ ] 4. Scegli il backend LLM e configura URL/API key se necessario
[ ] 5. Clicca "💾 Salva impostazioni"
[ ] 6. Torna in 📥 Import e carica il primo estratto conto