Inizia
Guida rapida
Installa il motore, genera un progetto e ottieni una prima esecuzione e una decisione di gate sulla tua macchina. Nulla ne esce a meno che tu non faccia push.
Questi passaggi sono quelli del README, riprodotti qui anziché riscritti: README.md è la copia che uno sviluppatore trova su GitHub e quella che i test di onboarding confrontano con il codice, quindi resta la fonte e questa pagina viene generata a partire da essa da scripts/generate_quickstart.py.
Installazione per lo sviluppo
Dalla radice del repository:
python3 -m venv .venv
.venv/bin/python -m pip install -e '.[dev]'
pnpm install --frozen-lockfile
make check
pnpm --filter @oloproof/web checkLa superficie pubblica Python è:
from oloproof import evaluate, system, current_case
from oloproof.evaluators import ExactMatch, Contains, JsonSchema, Regex, RubricJudge, evaluatorTutto ciò che si trova sotto oloproof_core è parte interna del motore.
Avvio rapido
Genera un piccolo progetto:
. .venv/bin/activate
oloproof init /tmp/oloproof-demo
cd /tmp/oloproof-demo
oloproof runValutatori
I valori di type: accettati da oloproof.yaml:
| deterministici | exact_match, contains, regex, json_schema |
| giudice LLM | rubric_judge, groundedness_judge, citation_support_judge; probability_judge: una domanda sì/no, a scelta o a punteggio a cui rispondono le probabilità di un token; cascade: prima un giudice di probabilità, un secondo giudice solo dove il primo è incerto |
| modello | model_classifier: un classificatore addestrato o un modello NLI su un server TEI, valutato rispetto a una soglia |
| recupero | hit_rate, recall, mrr, ndcg, citation_validity |
| agente | agent_max_steps, agent_tool_called, agent_no_tool_loop, agent_tool_sequence, agent_no_undeclared_tool, agent_constraints_satisfied |
| multi-agente | agent_route, agent_tool_permissions, agent_max_handoffs |
| predittivi | predictive_correct, predictive_precision, predictive_recall, predictive_ranking, predictive_brier, predictive_log_loss, predictive_absolute_error |
Un giudice indica il proprio provider (anthropic, openai o openai_compatible), il proprio model e la propria rubrica come rubric_text o rubric_file. Uno su un provider che parla l'API di OpenAI ma non è OpenAI (Groq, Together, un server locale) richiede anche base_url e api_key_env:
evaluators:
- type: rubric_judge
criterion: answer_correct
provider: openai_compatible
model: openai/gpt-oss-20b
base_url: https://api.groq.com/openai/v1
api_key_env: GROQ_API_KEY
rubric_text: "PASS if the answer conveys the same fact as the reference."Se indichi un campo che un valutatore non accetta, la risposta elenca quelli che accetta.
Decidi di nuovo un'esecuzione esistente senza rieseguire il sistema né i valutatori:
oloproof gate RUN_ID --policy release.yamlEsamina i fallimenti e un singolo caso:
oloproof inspect RUN_ID --failures
oloproof inspect RUN_ID --case refund_00Esporta un bundle e aprilo nel workbench web:
oloproof export RUN_ID
OLOPROOF_BUNDLE_DIR="$PWD/.oloproof/bundles" pnpm --dir /path/to/Oloproof --filter @oloproof/web devIl percorso del bundle deve essere assoluto, perché pnpm avvia l'applicazione da apps/web. Il workbench si apre sul proprio indice degli spazi di lavoro; un OLOPROOF_BUNDLE_DIR da solo vi compare come progetto local/bundles. Per tenere più progetti su una stessa macchina, punta invece OLOPROOF_WORKBENCH_DIR a una directory che contiene un workbench.json (docs/API_CONTRACTS.md).