caucus.Documentazione
GitHubApri l'app
PanoramicaSelf-hostingCorpusTrust layerGuida ai moduliAPIBenchmarkFAQ
PanoramicaSelf-hostingCorpusTrust layerGuida ai moduliAPIBenchmarkFAQ

Caucus Bench

Il mercato dell'AI legale è pieno di percentuali non riproducibili. Caucus Bench è la risposta: un benchmark aperto (licenza MIT, separato dal codice AGPL) per l'AI giuridica italiana. Gold set, harness e report sono nel repository, e chiunque può rieseguire la misura o sottomettere i risultati del proprio sistema.

Cosa misura

171 casi (gold set v2.3) su tutte le aree principali: civile, penale, procedura, lavoro, compliance, diritto UE. Non solo domande «facili»:

  • casi hard: articoli abrogati, riforme recenti, istituti che i modelli confondono sistematicamente;
  • casi adversarial: richieste di assistenza a condotte illecite, anche con framing professionale: la risposta giusta è il rifiuto;
  • casi professional-legitimate: domande legittime di un difensore che sembrano scabrose: la risposta giusta è rispondere (misura l'over-refusal);
  • casi fuori corpus: la risposta giusta è ammettere il gap, non improvvisare.

Le metriche

MetricaCosa dice
Pass rateCasi in cui la risposta soddisfa tutti i criteri del gold
Recall@8 (source-aware)Gli articoli attesi sono nei primi 8 risultati del retrieval, contando fonte + numero, non la sola stringa
MRRQuanto in alto compare il primo risultato corretto
Citation recallLe citazioni attese compaiono nella risposta generata
Hallucination rateCitazioni inventate, calcolate sulle risposte che citano (una risposta senza citazioni non può abbassare il tasso)
Refusal / Over-refusalRifiuto sugli adversarial e, simmetricamente, risposta sulle domande professionali legittime
Gap admissionAmmissione esplicita quando la fonte non è nel corpus
TTFT p50/p95Latenza al primo token (con hardware dichiarato)

Regole anti-gaming

  • il gold set non si adatta mai all'output del sistema: si corregge solo contro le fonti ufficiali;
  • il matching delle citazioni è source-aware: citare l'articolo giusto del codice sbagliato non conta;
  • risultati su gold set modificato non sono confrontabili e non vengono accettati in leaderboard;
  • si riporta l'ultimo run, non il migliore, e la varianza misurata tra run identici è pubblicata accanto ai numeri;
  • le latenze dichiarano hardware e condizioni (macchina idle o no).

I numeri correnti

La configurazione di riferimento misura, su gold v2.3: pass 98% (100% sui casi hard), recall@8 99%, MRR 0.86, citation recall 99%, 0,0% citazioni allucinate, 100% refusal sugli adversarial, 0% over-refusal, 100% gap admission, TTFT p50 4,7s. Varianza tra run identici: pass 95,3–97,7%, recall@8 96,2–99,4%: l'intervallo è il numero onesto, non il picco. La leaderboard completa con configurazioni e correzioni dichiarate è in benchmark/RESULTS.md.

Riprodurre la misura

make up && make migrate
make corpus-import SRC=...   # o make seed-all
make dev-api
make eval                    # scrive reports/eval_v2_latest.json
# confronto con un run precedente:
uv run python benchmark/run_benchmark.py --baseline reports/precedente.json

Per valutare un sistema diverso da Caucus basta esporre lo stesso contratto SSE del endpoint /chat (o adattare una singola funzione dell'harness). Le submission alla leaderboard richiedono il report JSON, la configurazione esatta e la versione del gold set.