Documentazione
Caucus è un assistente legale open source per il diritto italiano: retrieval-augmented generation su un corpus di testi normativi consolidati e giurisprudenza integrale, con un trust layer che verifica ogni citazione dopo la generazione e un benchmark pubblico (Caucus Bench) che chiunque può rieseguire. Codice AGPL-3.0, benchmark MIT.
Questa documentazione copre l'uso del prodotto, il self-hosting completo (incluso il pacchetto corpus già indicizzato, per partire in minuti senza rifare l'ingestione) e il funzionamento interno del sistema.
Da dove cominciare
Il sistema in breve
Il monorepo contiene quattro componenti principali, con una separazione netta: rag-core è l'unica libreria che parla con LLM e vector store, ingestion normalizza fonti eterogenee in un modello canonico unico, e l'API li consuma.
apps/web Next.js 15: chat SSE, pannello fonti, pagina /norma
apps/api FastAPI: /chat (SSE), /search, /norma, auth, export
services/rag-core retriever ibrido, reranker, query expansion,
fusione RRF pesata, schemi Pydantic
services/ingestion parser Normattiva AKN + EUR-Lex + SentenzeWeb,
chunker contestuale, loader idempotenti
benchmark/ Caucus Bench (MIT): gold set + harness di valutazioneI tre principi
- Trust layer prima di tutto. Ogni citazione normativa generata è validata contro il database: esistenza, fonte, vigenza temporale, abrogazione. Il sistema preferisce ammettere un gap che inventare una norma. Dettagli in Trust layer.
- Il benchmark è l'arbitro. Ogni modifica di qualità si misura su Caucus Bench, mai su impressioni. I numeri pubblicati riportano l'intervallo misurato tra run, non il picco.
- Determinismo dove possibile. Il lookup per estremi espliciti («art. 2043 c.c.») batte sempre il retrieval probabilistico; i segnali deterministici correggono i punteggi neurali, mai il contrario.
Cosa Caucus non è
Caucus non è un avvocato e le sue risposte non sono pareri legali: è uno strumento di ricerca e supporto alla redazione, pensato per professionisti che verificano le fonti. Ogni risposta espone le fonti consultate e segnala esplicitamente le citazioni che non è riuscito a verificare, ma la responsabilità professionale resta di chi firma l'atto.