Repository per la gestione e l'analisi dei dati del progetto Teseo (PA digitale 2026).
- Bun (per gli script TypeScript)
- Python 3.11+ (per l'anonymizer)
bun install
pip install -r scripts/anonymizer/requirements.txt
python -m spacy download it_core_news_lg
python -m spacy download en_core_web_lgAnonimizza i case di assistenza rimuovendo dati personali (PII) e filtrando contenuti non utili per la knowledge base.
Pipeline:
- Presidio - Rileva e sostituisce PII (nomi, email, CF, IBAN, telefoni, indirizzi)
- Denylist - Filtra risposte con frasi generiche (es. "attendere", "in lavorazione")
- AI (OVH) - Valida se il contenuto è utile + trova PII mancanti
Input:
scripts/anonymizer/input/case.csv
Output:
data/anonymized/case_anonymized_YYYY_MM_DD.csv # File giornaliero
data/anonymized/output_case.csv # File master (append, no duplicati)
Esecuzione:
# Processa tutto
python3 scripts/anonymizer/presidio.py
# Test con N righe
python3 scripts/anonymizer/presidio.py --test 50GitHub Action: .github/workflows/anonymizer.yml (manual trigger)
Recupera le domande dal chatbot (via Langfuse) e le classifica in categorie predefinite.
Categorie: Definite in scripts/fetch-langfuse/config.ts
Output:
data/categories_stats_YYYY_MM_DD.csv # Stats giornaliere
data/categories_stats.csv # Aggregato totale
data/uncategorized_questions.csv # Domande "Altro"
Esecuzione:
bun run scripts/fetch-langfuse/index.tsGitHub Action: .github/workflows/langfuse.yml
Come fetch-langfuse, ma l'AI genera autonomamente le categorie analizzando semanticamente le domande.
Output:
data/exp/categories_stats_YYYY_MM_DD.csv # Stats giornaliere (categorie auto-generate)
data/exp/categories_stats.csv # Top 10 categorie aggregate
Esecuzione:
bun run scripts/fetch-langfuse-exp.ts