Envía las etiquetas que ya usa tu proceso
Una solicitud incluye text (3–6.000 caracteres), instructions (3–1.500), de 2 a 12 etiquetas únicas de hasta 60 caracteres en una línea y un threshold entre 0,5 y 1 que por defecto es 0,85. Las etiquetas son el dominio de respuesta: una respuesta con otro nombre se rechaza como error del proveedor en lugar de llegar a tu proceso.
Dos etiquetas que siempre llevan a la misma acción son una sola. Añade una opción de otros o de caso dudoso cuando un mensaje pueda quedar fuera de tus categorías, para que el texto que no encaja tenga un destino honesto.
curl https://jevapi.pro/api/v1/decisions \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: doc-8841-v1' \
-d '{
"text": "La factura INV-2291 sigue sin pagarse. Envíen una copia con el desglose de impuestos.",
"instructions": "Elige el documento que solicita este mensaje.",
"labels": ["factura", "contrato", "recibo", "otros"],
"threshold": 0.85
}'Contrato de solicitud · Prueba la misma solicitud en el área de pruebas
Una solicitud puede plantear hasta cuatro preguntas tipadas
El mismo endpoint acepta preguntas tipadas en lugar de una lista de etiquetas: de una a cuatro, cada una con id, tipo y criterios. Una pregunta choice admite 2–12 criterios, una noul exige criterios true y false, y una score admite 2–7 niveles ordenados. Un cuerpo con questions e instructions o labels se rechaza con 400 ambiguous_input, porque una solicitud no puede ser dos.
Cada respuesta vuelve con el id que enviaste: choice con su etiqueta y probabilidades, noul con una probabilidad entre 0 y 1, score con su posición en tu escala. Los campos choice, confidence y probabilities de nivel superior reflejan la primera pregunta, y needsReview es true cuando alguna respuesta requiere revisión. Una solicitud cuesta un crédito, pida una etiqueta o cuatro preguntas; los fallos de cuentas registradas se devuelven y repetir la misma clave de idempotencia no vuelve a cobrar.
{
"text": "La página de pago se queda en blanco al pulsar Pagar. Probé dos navegadores.",
"questions": [
{"id": "team", "type": "choice", "instructions": "¿Qué equipo debería atender este ticket?", "criteria": {"facturacion": "Cobros o reembolsos.", "tecnico": "Errores o fallos.", "cuenta": "Acceso, permisos o perfil."}},
{"id": "is_bug", "type": "noul", "instructions": "¿Quien escribe informa de un defecto?", "criteria": {"true": "Describe un comportamiento roto.", "false": "Hace una pregunta o pide una función."}},
{"id": "urgency", "type": "score", "instructions": "¿Con qué urgencia necesita respuesta?", "criteria": ["Puede esperar", "Esta semana", "Bloquea su trabajo"]}
],
"threshold": 0.85
}El LLM como juez: reglas tipadas auditables · Clasificación por lotes y exportación
Lee la respuesta como evidencia, no como certeza
Las probabilidades solo se validan por dominio y límites. La API no promete que sumen uno ni que la mayor coincida con la respuesta elegida, y una tabla ausente se devuelve vacía en lugar de completarse. confidence es null cuando el modelo la omite y entonces needsReview es true.
Un fallo del modelo es una respuesta de error, nunca una etiqueta por defecto: un 502 o un 503 devuelve el crédito y no deja decisión. Prueba negaciones, texto citado, varias peticiones en un mensaje e instrucciones escritas dentro del texto: el mensaje es evidencia, no una tarea. Después cuenta errores con un conjunto reservado etiquetado por tu equipo, porque un resultado público del proveedor no dice nada de tus datos.
Evalúa la clasificación antes de automatizar · Códigos de error y reintentos acotados