Skip to content

Latest commit

Β 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ… Merry CRM: Il Sistema Gestionale di Babbo Natale

"Ogni anno, milioni di letterine arrivano al Polo Nord. Ma come fa Babbo Natale a gestire tutte quelle richieste, capire chi Γ¨ stato buono e chi no, e soprattutto... decidere chi merita il carbone?"

Benvenuto in Merry CRM, il sistema CRM (Customer Relationship Management) AI usato da nientemeno che Babbo Natale!!! πŸŽ„

Questo progetto nasce per risolvere un problema antico quanto il Natale stesso: trasformare montagne di letterine scritte a mano in dati analizzabili, e poi permettere a Babbo Natale di prendere decisioni basate sui dati... senza dover imparare SQL!

Il sistema Γ¨ composto da due moduli principali, ciascuno pensato per alleggerire il carico di lavoro agli instancabili Elfi del Polo Nord.


Slide.2.mp4

πŸ—οΈ Architettura del Progetto

Merry-CRM/
β”œβ”€β”€ πŸ“‚ Elf-ETL module/
β”‚   β”œβ”€β”€ πŸ“‚ logs/              # πŸ“ Log della Pipeline
β”‚   └── ...                   # πŸ”„ Pipeline ETL (Estrazione Letterine)
β”œβ”€β”€ πŸ“‚ Fake-ETL-u-make-it/    # 🎭 Simulatore Dati (per sviluppo)
β”œβ”€β”€ πŸ“‚ Santa-Analysis/        # πŸ€– Data Analysis (Agenti AI)
β”œβ”€β”€ πŸ“„ docker-compose.yml     # 🐳 Orchestrazione servizi
β”œβ”€β”€ πŸ“„ requirements.txt       # πŸ“¦ Dipendenze Python
└── πŸ“„ .env.example           # πŸ” Template variabili d'ambiente

πŸ“¬ Modulo 1: Elf-ETL (Estrazione Letterine)

Stato: 🚧 In Sviluppo (Attualmente simulato da "Fake-ETL-u-make-it")

Il Problema

Immagina di essere un Elfo postino al Polo Nord. Ogni giorno arrivano milioni e milioni di letterine. E tu cosa devi fare?

  1. Leggere ogni singola letterina scritta a mano (alcune illeggibili, altre con disegni di renne ovunque)
  2. Filtrare quelle false β€” sΓ¬, perchΓ© il perfido Grinch πŸ’š invia ogni anno migliaia di letterine fasulle per sabotare il Natale!
  3. Estrarre le informazioni: nome del bambino, etΓ , paese, lista regali richiesti
  4. Valutare se il bambino Γ¨ stato buono o cattivo (e assegnare un punteggio di "buonitΓ ")
  5. Inserire tutto a mano nel CRM

Questo lavoro richiede settimane di straordinari notturni per gli Elfi. E diciamocelo: anche un Elfo puΓ² stancarsi.

La Soluzione: Una Pipeline ETL Intelligente

Elf-ETL automatizza l'intero processo con una pipeline che combina strumenti tradizionali e intelligenza artificiale:

Step Cosa fa Tecnologia
πŸ›‘οΈ Filtro Anti-Grinch Identifica e scarta le letterine false Regole deterministiche (no AI)
πŸ“– Lettura & Estrazione Legge il contenuto e lo converte in dati strutturati LLM (Google Gemini)
βš–οΈ Valutazione BontΓ  Assegna un punteggio basato su indicatori nel testo LLM con Structured Output
πŸ’Ύ Caricamento CRM Inserisce tutto nel database PostgreSQL SQLDatabase

Componenti DataPizza-AI utilizzate

Componente PerchΓ© Γ¨ stata scelta
Pipeline Orchestrazione del flusso ETL step-by-step, con gestione errori e retry automatici.
GoogleClient Connessione a Google Gemini per l'estrazione intelligente del testo.
StructuredOutput Parsing del testo libero in oggetti Pydantic/SQLModel con schema definito.
SQLDatabase Persistenza diretta dei dati estratti su PostgreSQL.

Nota

Attualmente il modulo Elf-ETL module Γ¨ in fase di sviluppo. Per permettere i test end-to-end, il suo funzionamento viene simulato dal modulo Fake-ETL-u-make-it, che genera dati sintetici realistici di bambini e letterine.


πŸ€– Modulo 2: Data-Analysis (Analisi Dati per Babbo Natale)

Stato: βœ… Funzionante

Il Problema

Ok, le letterine sono state processate. Ora Babbo Natale ha un bel database con milioni di record. Fantastico, no?

Beh, non proprio. PerchΓ© Babbo:

  • Non sa scrivere query SQL
  • Non ha idea di cosa sia un JOIN
  • Per ogni minima domanda deve chiamare l'Elfo Data Scientist (che Γ¨ giΓ  sommerso di lavoro)

"Quanti bambini italiani hanno chiesto una bicicletta?" β€” E l'Elfo deve mollare tutto, scrivere una query, eseguirla, e riportare il risultato. Per ogni. Singola. Domanda.

La Soluzione: Intelligenza Artificiale al Servizio di Babbo Natale

Il modulo Data-Analysis offre a Babbo Natale due superpoteri:


2.1 πŸ’¬ Chat con il Database (SQL Agent)

Babbo apre la chat e scrive semplicemente: "Quanti bambini italiani hanno scritto una letterina?"

Dietro le quinte, un Agente AI converte la domanda in una query SQL, la esegue sul database, e restituisce la risposta in linguaggio naturale.

Ma ehi, non è una black-box! Per trasparenza, la query SQL eseguita viene mostrata in un menu a tendina espandibile. Così se qualcosa nella risposta non convince Babbo, può sempre chiamare l'Elfo Data Scientist per un controllo manuale.

Componente DataPizza-AI PerchΓ© Γ¨ stata scelta
Agent Orchestrazione del ragionamento multi-step con planning automatico.
GoogleClient LLM Gemini per la comprensione del linguaggio naturale e generazione SQL.
SQLDatabase Tool get_table_schema e run_sql_query per interagire con il DB in modo sicuro (solo SELECT).

2.2 πŸ“Š Creazione Report & Dashboard (Metabase Agent)

Quando Babbo ha bisogno di qualcosa di piΓΉ elaborato β€” un report, un grafico, una dashboard β€” gli basta chiedere:

"Crea una dashboard con la distribuzione geografica dei bambini buoni"

E boom! Un secondo agente si connette tramite MCP (Model Context Protocol) a Metabase, una piattaforma di Business Intelligence, e crea il report grafico richiesto in pochi secondi.

Non è incredibile? ✨

PerchΓ© Metabase?

  • È open source β€” nessun vendor lock-in
  • È incluso direttamente in questo progetto via Docker
  • Se un domani Babbo volesse passare a Power BI, Looker, o altro? Basta connettere l'agente a un diverso server MCP. PiΓΉ semplice di cosΓ¬...
Componente DataPizza-AI PerchΓ© Γ¨ stata scelta
Agent Gestione autonoma del workflow: listare database, creare dashboard, creare card, aggiungere card alla dashboard.
GoogleClient LLM per interpretare la richiesta e decidere tipo di grafico e query SQL appropriate.
MCPClient Connessione al server MCP mcp/metabase che espone le API di Metabase come tool invocabili dall'agente.

Interfaccia Utente

L'interfaccia chat Γ¨ realizzata con Chainlit, che fornisce:

  • πŸ’¬ Chat in tempo reale con feedback visivo
  • πŸ“‹ Step espandibili per mostrare le query SQL eseguite
  • πŸ”— Supporto per elementi multimediali (link alle dashboard)

🎭 Bonus: Fake-ETL-u-make-it (Simulatore Dati)

Genera dati fittizi ma realistici per popolare il database durante lo sviluppo e i test:

  • child: Anagrafica bambini (nome, etΓ , cittΓ , paese, genere)
  • letter: Letterine con punteggio di buonitΓ , richieste regali, data ricezione

Permette di sviluppare e testare Data-Analysis senza attendere il completamento della pipeline ETL reale.


πŸš€ Guida Rapida

Requisiti

  • Python 3.10+
  • Docker & Docker Compose
  • API Key Google Gemini (o altro LLM supportato)

1. Configurazione Ambiente

Copia il file .env.example in .env e compila con i tuoi valori:

cp .env.example .env

Vedi il file .env.example per la lista completa delle variabili richieste.

2. Avvio Servizi Docker

docker-compose up -d

3. Installazione Dipendenze

python -m venv venv
.\venv\Scripts\Activate  # Windows
pip install -r requirements.txt

4. Avvio Chatbot

chainlit run Santa-Analysis/bot.py -w

Apri il browser su http://localhost:8000 e inizia a chattare con Babbo Natale! πŸŽ…


πŸŽ„ Esempi di Utilizzo

Domande Dati (SQL Agent)

  • "Quanti bambini hanno scritto quest'anno?"
  • "Qual Γ¨ l'etΓ  media dei bambini buoni?"
  • "Elenca i 5 paesi con piΓΉ letterine"

Richieste Dashboard (Metabase Agent)

  • "Crea una dashboard con un grafico a torta per l'etΓ  dei bambini"
  • "Genera un report con la distribuzione geografica"
  • "Fai un grafico a barre del punteggio medio per paese"

πŸ”§ Stack Tecnologico

Tecnologia Utilizzo
DataPizza-AI Framework per agenti AI e orchestrazione LLM
Google Gemini Modello linguistico per comprensione e generazione
PostgreSQL Database relazionale per i dati strutturati
Metabase Business Intelligence e visualizzazione dati
MCP (Model Context Protocol) Protocollo per esporre API esterne come tool per agenti
Chainlit Framework per interfacce chat conversazionali
Docker Containerizzazione dei servizi

πŸ“ Note per gli Sviluppatori

  • Il modulo Elf-ETL module Γ¨ mantenuto nel repository ma attualmente non attivo. SarΓ  completato in una fase successiva per sostituire il simulatore.
  • L'agente Metabase si connette tramite un container Docker effimero che funge da bridge MCP.
  • Le credenziali del database nel .env devono corrispondere a quelle nel docker-compose.yml.

Progetto sviluppato con ❀️ per rendere il Natale piΓΉ data-driven. *~ Gli Elfi della Divisione Analisi Dati, Polo Nord πŸŽ„*

About

πŸŽ„ Il CRM di Babbo Natale: Pipeline ETL intelligente, Agenti AI e dashboard automatiche per gestire milioni di letterine. Built with datapizza-ai. πŸ•

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages