Skip to content

Inizia

Scrivere una suite

Una suite è composta da due file e un dataset. oloproof init genera entrambi i file, e lo scaffold è commentato perché il primo percorso di onboarding ha perso quattro tentativi per una stringa mancante anziché per una funzionalità mancante.

Il file di progetto

oloproof.yaml dichiara che cosa viene misurato e che cosa effettua la misura.

version: 1
project: example
dataset: data/example.jsonl
system:
  name: example-support-bot
  version: "1"
  callable: app:answer
  config: {}
evaluators:
  - type: exact_match
    criterion: exact_label
    field: label

system.callable è un percorso di import verso ciò che è sotto test. criterion è il nome che una metrica, una soglia e un report useranno tutti per il risultato di questo valutatore, quindi conviene scegliere una parola che riconoscerai in un gate.

I tipi di valutatore

Ogni type: accettato dal file, per famiglia. Un campo rifiutato risponde con quelli che il valutatore accetta, quindi un tentativo sbagliato è a un'esecuzione di distanza da quello giusto.

FamigliaTipi
Deterministiciexact_match, contains, regex, json_schema
Giudice LLMrubric_judge, groundedness_judge, citation_support_judge, probability_judge, cascade
modellomodel_classifier
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 LLM su un endpoint che non è quello di OpenAI richiede due campi in più: base_url: e api_key_env:. La chiave viene letta dall'ambiente al momento della chiamata e non viene mai memorizzata.

Eseguirla

oloproof run

Un'esecuzione esegue ogni caso, giudica ciascuno con ogni valutatore e memorizza i risultati come record indirizzati per contenuto. Eseguirla di nuovo su un sistema invariato e un dataset invariato riutilizza ciò che già possiede, ed è per questo che un'esecuzione ripetuta non costa quasi nulla e non viene conteggiata.

oloproof plan RUN_ID --run riporta ciò che servirebbe per risolvere una regola non decisa, stimato in base a ciò che quell'esecuzione ha effettivamente speso. Se riceve invece l'id di un confronto, non richiede alcun flag.

Repliche

Un caso misurato una volta ti dice che cosa è successo una volta. replicates: misura ogni caso più di una volta e riporta quanti casi hanno cambiato verdetto tra misure identiche.

Conviene conoscere quel numero prima di fidarti di qualsiasi confronto: su un assistente in produzione, circa un caso osservato su nove ha cambiato verdetto tra esecuzioni identiche.

Dove andare dopo

metriche di latenza.

Classificatori e regressori trattano i tipi di recupero, agente e predittivi.

  • Gating in CI trasforma una decisione in un codice di uscita.
  • Giudici tratta ciò che un giudice LLM deve superare prima di poter fare da gate

a un rilascio.

denominatori contano.