Progetto sperimentale open source: "PickONE Library AI" un sistema di gestione della libreria che consiglia agli utenti, in base al loro profilo, i libri più compatibili.
Motore di raccomandazione locale, dinamico e trasparente progettato per offrire proposte di lettura personalizzate tramite AI. Utilizza embedding multipli, feedback utente, validazione LLM e moderne tecniche di ranking e diversificazione.
- Funzionalità Principali
- Installazione
- Come Funziona il Calcolo della Compatibilità
- Flusso di Raccomandazione Intelligente
- Gestione del Feedback e Validazione
- Tecniche di Ranking e Diversificazione
- Cold Start e Adattività
- Requisiti Tecnici
- Nota sulla Privacy
- Calcolo compatibilità avanzato: analisi multi-dimensionale tra utente e libro usando embedding del profilo ideale di lettura, stile di scrittura e caratteristiche extra (mood, complessità, trame-temi).
- Recensioni pesate: ogni rating dell’utente influisce dinamicamente sulle raccomandazioni future grazie a una funzione che valorizza il feedback negativo e bilancia la forza di quello positivo.
- Validazione LLM e human-in-the-loop: AI generativa per audit casuali delle compatibilità proposte; raccolta di feedback manuale dagli utenti.
- Diversificazione e serendipity: raccomandazioni mai ripetitive, sempre almeno una sorpresa!
- A/B testing e contextual bandit: strategie di ranking testate in parallelo per ottimizzare precisione e soddisfazione utente (parametri e pesi adattati automaticamente).
- Explainability: spiegazione dettagliata per ogni suggerimento.
- Gestione cold start: questionario iniziale per raccogliere preferenze e avviare il profilo utente.
- Temporal dynamics: il sistema adatta progressivamente raccomandazioni ai cambi di gusti nel tempo.
- Installa Ollama:
ollama serve
- Scarica il modello embedding:
ollama pull embeddingemma o ollama pull qwen3embedding:4b
- Esegui il sistema:
python3 PickONE_Library_AI.py
- Embedding Multipli
- Ogni utente e libro sono descritti da 3 vettori:
- Profilo di lettura ideale (temi, target, mood)
- Stile di scrittura (linguaggio, ritmo, complessità)
- Caratteristiche extra (mood, ambientazione, lessico tematico)
- Pesatura dinamica
- Recensioni negative penalizzano fortemente libri simili, positive danno un boost limitato (mai 100%).
- Calcolo matematico
- Compatibilità attraverso la media pesata delle similarità del coseno tra i vari embedding.
- Raccolta embedding utente (profilo/stile/features)
- Pre-filtraggio veloce
- Calcolo compatibilità + penalità e bonus dinamici
- Multi-stage filtering: diversificazione e serendipity
- A/B testing su parametri di ranking
- Contextual bandits per adattamento continuo
- Re-ranking finale con preferenze temporali, popolarità e novità
- Validazione LLM: audit periodici (es. 10%) con AI generativa che verifica coerenza della raccomandazione.
- Human feedback: ogni utente può votare se la compatibilità è corretta (operatore umano può correggere embedding e sistema).
- Log centrale: tutto tracciato per auditing e miglioramento.
- Evita “filter bubble” con controllo della similitudine interna fra libri raccomandati
- Sempre almeno una raccomandazione “sorpresa”
- Bilanciamento tra compatibilità, feedback, popolarità, novità
- Questionario iniziale di 3-5 domande per nuovi utenti (mood, ambientazione, ritmo, ecc.)
- Profilo utente aggiornato progressivamente in base alle letture e voti
- Python 3.8+
requests,numpy- Ollama con modello embedding compatibile (
embeddinggemmao simili) - Consigliato hardware con almeno 8GB RAM
Tutti i dati e le elaborazioni restano in locale: nessuna informazione utente o embedding lascia il tuo computer.
Per suggerimenti, miglioramenti o bug apri una issue o crea una pull request!