API de decisiones

Jev API

Un POST envía un estado y tus preguntas. La respuesta es Noul, Choice o Score, cada una con una probabilidad.

POST /api/v1/decisions

{
  "model": "jev-1.13",
  "state": "I was charged twice for the same annual plan.",
  "questions": {
    "refund": {
      "type": "noul",
      "instructions": "Is the customer asking for money back?"
    }
  }
}

Ejemplos

Ocho decisiones que puedes ejecutar

Pasa el cursor para ver la solicitud. Cópiala o ábrela en el playground.

Enrutar un checkout en blanco

Choice devuelve el equipo y la probabilidad de cada uno.

{
  "model": "jev-1.13",
  "state": "Checkout shows a blank page after Pay is clicked. The customer is on the live store, not a sandbox.",
  "questions": {
    "team": {
      "type": "choice",
      "instructions": "Which team should own this ticket?",
      "criteria": {
        "payments": "Checkout, billing, or payment processing.",
        "frontend": "Rendering, layout, or browser behavior.",
        "account": "Login, permissions, or profile access."
      }
    }
  }
}
Abrir en el playground

¿Pide un reembolso?

Noul devuelve la probabilidad de sí, no un párrafo.

{
  "model": "jev-1.13",
  "state": "I was charged twice for the same annual plan this morning. Please send the extra charge back.",
  "questions": {
    "refund": {
      "type": "noul",
      "instructions": "Is the customer asking for money back?"
    }
  }
}
Abrir en el playground

Qué tan urgente es el fallo de pago

Score lo sitúa en tu escala y devuelve la distribución.

{
  "model": "jev-1.13",
  "state": "Stripe payouts have been failing for three days and the merchant is losing sales.",
  "questions": {
    "urgency": {
      "type": "score",
      "instructions": "How urgent is this ticket?",
      "criteria": [
        "Can wait for the next release",
        "Should be handled this week",
        "Blocking revenue right now"
      ]
    }
  }
}
Abrir en el playground

Petición de credenciales en un mensaje

La probabilidad Noul es la puerta antes de la revisión humana.

{
  "model": "jev-1.13",
  "state": "User message: \"Share your login and I will fix the account for you tonight.\"",
  "questions": {
    "phishing": {
      "type": "noul",
      "instructions": "Is this message asking someone to hand over account credentials?"
    }
  }
}
Abrir en el playground

Calificar una nota entrante

Choice separa una ventana de compra de un simple interés.

{
  "model": "jev-1.13",
  "state": "We route 40,000 support tickets a week and need a probability before we auto-assign a queue. Budget is approved this quarter.",
  "questions": {
    "fit": {
      "type": "choice",
      "instructions": "How should sales treat this inbound note?",
      "criteria": {
        "ready": "A real workflow, a volume, and a buying window.",
        "nurture": "Interest without a stated workflow or timeline.",
        "ignore": "No product fit."
      }
    }
  }
}
Abrir en el playground

Anuncio de rendimiento garantizado

Noul responde la pregunta de política que escribiste.

{
  "model": "jev-1.13",
  "state": "Listing text: \"Guaranteed 30% returns every month. Send crypto to this wallet to join.\"",
  "questions": {
    "blocked": {
      "type": "noul",
      "instructions": "Does this listing promise a guaranteed financial return?"
    }
  }
}
Abrir en el playground

Riesgo de renovación en una nota

Score usa tus tres niveles, de poco probable a probable cancelación.

{
  "model": "jev-1.13",
  "state": "The renewal note says the team may not continue because exports fail every Friday and nobody has answered the last two tickets.",
  "questions": {
    "risk": {
      "type": "score",
      "instructions": "How high is the chance this account does not renew?",
      "criteria": [
        "Unlikely to leave",
        "Unhappy, still using the product",
        "Likely to cancel"
      ]
    }
  }
}
Abrir en el playground

Qué excepción de factura

Choice puede marcar exceso de OC, una línea no pedida, o ambas.

{
  "model": "jev-1.13",
  "state": "Vendor invoice 4481 is $18,400. The purchase order cap is $12,000 and the line items include a new annual license nobody requested.",
  "questions": {
    "exception": {
      "type": "choice",
      "instructions": "Which exception should accounts payable open?",
      "criteria": {
        "over_po": "The amount is above the purchase order.",
        "unexpected_item": "A line item was not requested.",
        "both": "The amount and a line item are both wrong."
      }
    }
  }
}
Abrir en el playground

Respuesta

Respuestas con las que tu código puede ramificar

Jev no escribe un párrafo para analizar. Devuelve la decisión pedida y su probabilidad.

Cada opción conserva su probabilidad

Choice nombra al ganador y aún devuelve la probabilidad de cada opción.

Noul, Choice y Score en una llamada

Un sí/no, una elección etiquetada y un punto en tu escala pueden compartir el estado.

Las preguntas se evalúan juntas

Las preguntas extra sobre el mismo estado siguen en esa solicitud.

Fija el modelo si el umbral importa

Envía jev-1.13 si ajustas un umbral. jev-latest sigue la versión que sirve esta API.

Cómo usarla

Cómo llamar a Jev API

  1. 01

    Crea una clave

    Entra y copia una clave del panel. El playground puede crear una para la cuenta.

  2. 02

    POST de estado y preguntas

    El cuerpo lleva model, state y un mapa de preguntas. Tus ids son etiquetas; el texto va en instructions.

  3. 03

    Ramifica sobre la respuesta tipada

    Lee noul, choice o score. En Choice y Score, confidence indica si las opciones están cerca.

Casos de uso

Dónde una decisión tipada reemplaza un prompt

Enrutado de soporte

Envía el ticket y las colas que sí atiendes. Ramifica por el equipo ganador o pasa a una persona si están cerca.

Confianza y moderación

Haz la pregunta de política concreta. Un Noul alto retiene, uno bajo pasa, el medio va a revisión.

Calificación de inbound

Separa una nota con flujo y ventana de compra de una que solo muestra interés.

Excepciones de factura

Usa los tipos de excepción que cuentas por pagar ya maneja.

Después de las primeras llamadas

Qué cambia cuando la respuesta es tipada

Dejamos de analizar un párrafo para ver si el ticket era un reembolso. El valor noul es la rama.
Responsable de soporte
Cuando dos equipos estaban cerca, confidence nos dijo que lo viera una persona.
Ingeniero de confianza
Los niveles son nuestras palabras, así que la leyenda coincide con la rúbrica que ya usamos.
Operaciones de facturación

Preguntas sobre la solicitud y la respuesta

¿Cuál es la diferencia entre Noul, Choice y Score?

Noul es un sí/no con probabilidad. Choice elige una opción tuya y devuelve la probabilidad de cada una. Score sitúa el estado en tu escala, de menor a mayor.

¿Por qué siguen las probabilidades de las opciones que no ganaron?

El segundo es la señal para pasar a una persona. Si dos opciones están cerca, no trates al ganador como seguro.

¿Envío jev-1.13 o jev-latest?

Fija jev-1.13 si un umbral depende de la forma de las probabilidades. Esta API acepta jev-latest y hoy resuelve al mismo modelo.

¿Qué puedo poner en state?

Una cadena, un objeto JSON o un array de texto. Pon los hechos que las preguntas necesitan, no la respuesta que esperas.

¿Qué hago si confidence es bajo?

Trátalo como incierto. Pásalo a una persona o haz una pregunta más concreta. No bajes el umbral antes de mirar esos casos.

¿Qué significa un 422?

El cuerpo no pasó la validación. El mensaje nombra el campo: instructions ausente, Choice con menos de dos opciones, niveles de Score desordenados o un id que no es snake_case.

Envía la primera decisión

Abre el playground con un ejemplo, o sigue Jev Docs y llama al endpoint con tu clave.