Skip to content

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 check

La superficie pubblica Python è:

from oloproof import evaluate, system, current_case
from oloproof.evaluators import ExactMatch, Contains, JsonSchema, Regex, RubricJudge, evaluator

Tutto 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 run

Valutatori

I valori di type: accettati da oloproof.yaml:

deterministiciexact_match, contains, regex, json_schema
giudice LLMrubric_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
modellomodel_classifier: un classificatore addestrato o un modello NLI su un server TEI, valutato rispetto a una soglia
recuperohit_rate, recall, mrr, ndcg, citation_validity
agenteagent_max_steps, agent_tool_called, agent_no_tool_loop, agent_tool_sequence, agent_no_undeclared_tool, agent_constraints_satisfied
multi-agenteagent_route, agent_tool_permissions, agent_max_handoffs
predittivipredictive_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.yaml

Esamina i fallimenti e un singolo caso:

oloproof inspect RUN_ID --failures
oloproof inspect RUN_ID --case refund_00

Esporta 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 dev

Il 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).