API de decisões

Jev API

Um POST envia um estado e as suas perguntas. A resposta é Noul, Choice ou Score, cada uma com uma probabilidade.

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?"
    }
  }
}

Exemplos

Oito decisões que você pode executar

Passe o cursor para ver o pedido. Copie ou abra no playground.

Encaminhar um checkout em branco

Choice devolve a equipe e a probabilidade de cada uma.

{
  "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 no playground

É um pedido de reembolso?

Noul devolve a probabilidade de sim, não um parágrafo.

{
  "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 no playground

Qual a urgência da falha de pagamento

Score posiciona na sua escala e devolve a distribuição.

{
  "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 no playground

Pedido de credenciais numa mensagem

A probabilidade Noul é a porta antes da revisão 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 no playground

Qualificar uma nota de entrada

Choice separa uma janela de compra de um mero interesse.

{
  "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 no playground

Anúncio de retorno garantido

Noul responde à pergunta de política que você escreveu.

{
  "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 no playground

Risco de renovação numa nota

Score usa os seus três níveis, de improvável a provável cancelamento.

{
  "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 no playground

Qual exceção de fatura

Choice pode marcar acima do pedido, uma linha inesperada ou 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 no playground

Resposta

Respostas com as quais o código pode ramificar

Jev não escreve um parágrafo para analisar. Devolve a decisão pedida e a probabilidade.

Cada opção mantém a probabilidade

Choice nomeia o vencedor e ainda devolve a probabilidade de cada opção.

Noul, Choice e Score numa chamada

Um sim/não, uma escolha rotulada e um ponto na escala podem partilhar o estado.

As perguntas correm juntas

Perguntas extra sobre o mesmo estado ficam nesse pedido.

Fixe o modelo se o limiar importa

Envie jev-1.13 ao ajustar um limiar. jev-latest segue a versão que esta API serve.

Como usar

Como chamar a Jev API

  1. 01

    Crie uma chave

    Entre e copie uma chave do painel. O playground pode criar uma para a conta.

  2. 02

    POST com estado e perguntas

    O corpo tem model, state e um mapa de perguntas. Os ids são rótulos; o texto vai em instructions.

  3. 03

    Ramifique na resposta tipada

    Leia noul, choice ou score. Em Choice e Score, confidence mostra se as opções estão próximas.

Casos de uso

Onde uma decisão tipada substitui um prompt

Encaminhamento de suporte

Envie o ticket e as filas que realmente atende. Ramifique pela equipe vencedora ou passe a uma pessoa se estiverem perto.

Confiança e moderação

Faça a pergunta de política específica. Noul alto retém, baixo passa, o meio vai para revisão.

Qualificação de inbound

Separe uma nota com fluxo e janela de compra de uma que só mostra interesse.

Exceções de fatura

Use os tipos de exceção que o contas a pagar já usa.

Depois das primeiras chamadas

O que muda quando a resposta é tipada

Paramos de analisar um parágrafo para ver se o ticket era reembolso. O valor noul é o ramo.
Líder de suporte
Quando duas equipes ficaram perto, confidence mandou uma pessoa ver o ticket.
Engenheiro de confiança
Os níveis são as nossas palavras, então a legenda combina com a rubrica que já usamos.
Operações de faturamento

Perguntas sobre o pedido e a resposta

Qual é a diferença entre Noul, Choice e Score?

Noul é um sim/não com probabilidade. Choice escolhe uma opção sua e devolve a probabilidade de cada uma. Score coloca o estado na sua escala, do mais baixo ao mais alto.

Por que ainda vejo a probabilidade das opções que não venceram?

O segundo lugar é o sinal para passar a uma pessoa. Se duas opções estão perto, não trate o vencedor como certo.

Envio jev-1.13 ou jev-latest?

Fixe jev-1.13 se um limiar depende da forma das probabilidades. Esta API aceita jev-latest e hoje resolve para o mesmo modelo.

O que posso pôr em state?

Uma string, um objeto JSON ou um array de texto. Coloque os factos que as perguntas precisam, não a resposta que espera.

O que faço se confidence for baixo?

Trate como incerto. Passe a uma pessoa ou faça mais uma pergunta concreta. Não baixe o limiar antes de ver esses casos.

O que significa um 422?

O corpo falhou a validação. A mensagem nomeia o campo: instructions em falta, Choice com menos de duas opções, níveis de Score fora de ordem ou um id que não é snake_case.

Envie a primeira decisão

Abra o playground com um exemplo, ou siga Jev Docs e chame o endpoint com a sua chave.