Empezar
Escribir una suite
Una suite son dos archivos y un conjunto de datos. oloproof init genera ambos, y lo generado viene comentado porque en el primer recorrido de incorporación se perdieron cuatro intentos por una cadena ausente, no por una funcionalidad ausente.
El archivo del proyecto
oloproof.yaml declara qué se mide y qué realiza la medición.
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: labelsystem.callable es una ruta de importación a lo que se está probando. criterion es el nombre que una métrica, un umbral y un informe usarán para el resultado de este evaluador, así que vale la pena elegir una palabra que se reconozca en un gate.
Los tipos de evaluador
Cada type: que acepta el archivo, por familia. Un campo rechazado responde con los que ese evaluador admite, así que una suposición equivocada queda a una ejecución de la correcta.
| Familia | Tipos |
|---|---|
| Deterministas | exact_match, contains, regex, json_schema |
| Juez LLM | rubric_judge, groundedness_judge, citation_support_judge, probability_judge, cascade |
| modelo | model_classifier |
| Recuperación | 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 |
| Multiagente | agent_route, agent_tool_permissions, agent_max_handoffs |
| Predictivos | predictive_correct, predictive_precision, predictive_recall, predictive_ranking, predictive_brier, predictive_log_loss, predictive_absolute_error |
Un juez LLM en un endpoint que no es el de OpenAI necesita dos campos más: base_url: y api_key_env:. La clave se lee del entorno en el momento de la llamada y nunca se almacena.
Ejecutarla
oloproof runUna ejecución ejecuta cada caso, lo juzga con cada evaluador y almacena los resultados como registros direccionados por contenido. Volver a ejecutarla contra un sistema sin cambios y un conjunto de datos sin cambios reutiliza lo que ya tiene, y por eso una ejecución repetida no cuesta casi nada y no se mide.
oloproof plan RUN_ID --run indica lo que haría falta para resolver una regla sin decidir, con el costo calculado a partir de lo que esa ejecución gastó realmente. Si se le da un id de comparación en su lugar, no necesita ningún flag.
Réplicas
Un caso medido una vez dice lo que ocurrió una vez. replicates: mide cada caso más de una vez e informa cuántos cambiaron de veredicto entre mediciones idénticas.
Vale la pena conocer ese número antes de confiar en cualquier comparación: frente a un asistente en vivo, aproximadamente uno de cada nueve casos observados cambió de veredicto entre ejecuciones idénticas.
Siguientes pasos
- Registrar lo que hizo un sistema cubre los artefactos y las métricas de uso y
de latencia.
Clasificadores y regresores cubren los tipos de recuperación, agentes y predictivos.
- Gates en CI convierte una decisión en un código de salida.
- Jueces cubre lo que un juez LLM debe superar antes de poder actuar como gate de
una publicación.
- Conceptos básicos explica los cuatro estados de decisión y por qué importan los
denominadores.