Qué es un juez aquí
Una regla es de una a cuatro preguntas: choice sobre 2–12 criterios, noul sobre criterios true y false, o score sobre 2–7 niveles ordenados. Una solicitud las responde todas para un registro y cuesta un crédito, pida una pregunta o cuatro. Cada respuesta vuelve con el id que enviaste y con el tipo que pediste; una respuesta fuera de tus criterios se rechaza en lugar de devolverse.
Esa es la diferencia con pedir a un modelo de chat que puntúe una respuesta. No hay justificación generada que leer ni veredicto libre que interpretar: lo que guardas es la respuesta a una pregunta tuya. También significa que el juez vale lo que valen tus criterios: una instrucción vaga produce una respuesta segura sobre nada en concreto.
{
"text": "Se emitió dos veces el reembolso de INV-2291; el cliente pidió detener la segunda transferencia.",
"questions": [
{"id": "outcome", "type": "choice", "instructions": "¿Qué resultado registra esta nota?", "criteria": {"resuelto": "El caso está cerrado.", "en_curso": "Alguien sigue trabajando en él.", "bloqueado": "Espera a un tercero."}},
{"id": "is_negative", "type": "noul", "instructions": "¿La nota informa de un fallo nuestro?", "criteria": {"true": "Informa de un error en nuestro proceso.", "false": "Informa de avances o de un traspaso normal."}}
],
"threshold": 0.9
}Escribe las reglas o genera un borrador y revísalo
Puedes escribir las preguntas o describir la decisión en un texto breve y dejar que el generador las proponga: POST /api/judges desde una sesión iniciada, con un prompt de 5–800 caracteres y un idioma para la redacción. El generador es una completion de chat sobre un modelo fijo y su salida se valida con las mismas preguntas tipadas que acepta la API antes de mostrártela.
Una generación cuesta un crédito y, si falla, se devuelve. Nada se ejecuta automáticamente: el conjunto generado es un borrador que editas y ejecutas tú. Comprueba que los criterios sean mutuamente excluyentes, que los niveles estén ordenados y que ninguna pregunta pida datos personales. Trata el prompt como datos: el generador escribe reglas, no decide nada.
curl https://jevapi.pro/api/judges \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: judge-support-triage-v1' \
-b 'jev_session=YOUR_SESSION' \
-d '{"prompt": "Decide si una nota de soporte está resuelta, en curso o bloqueada, y si informa de un fallo de nuestro proceso.", "locale": "es"}'\n\n{
"judge": {
"name": "Revisión de notas de soporte",
"questions": [{"id": "outcome", "type": "choice", "instructions": "¿Qué resultado registra esta nota?", "criteria": {"resuelto": "…", "en_curso": "…", "bloqueado": "…"}}]
},
"model": "openai/gpt-4.1-mini",
"id": "6f2c1a4e-9d7b-4c11-8f3a-2b5e9c0d1a77",
"latencyMs": 2140,
"credits": 19
}Clasificación por lotes y exportación · Referencia de la API de decisiones de OpenRouter
Compara al juez con personas, no con su propia confianza
Compara las respuestas con etiquetas escritas por alguien con conocimiento, pregunta por pregunta, y cuenta los errores costosos en lugar de la coincidencia global. Una probabilidad es la salida del propio modelo: no es una exactitud medida y un valor alto puede estar equivocado con tus datos.
Repite la comparación cada vez que cambien las instrucciones, los criterios o el modelo, y guarda el identificador de la solicitud y el nombre del modelo con los resultados. Envía los registros dudosos a revisión en lugar de tratar al juez como decisión final, y publica cifras de acierto solo desde tu propio conjunto reservado.
Evalúa la clasificación antes de automatizar · Decisiones con revisión humana · OpenRouter: SDK de TypeSafe y Jev