Referência

Jev API Docs

Referência do endpoint de decisão Jev neste site. Jev é o modelo System One da TypeSafe AI; este site é um serviço de API independente que aloja o acesso a ele. Envie um estado e um mapa de perguntas e receba uma resposta tipada para cada uma.

Atualizado

Endpoint

Envie POST /api/v1/decisions neste host. Não há caminho chat-completions nem resposta em streaming. GET /api/v1/models lista o id do modelo.

POST https://jev-api.org/api/v1/decisions
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Autenticação

Coloque a chave do painel em Authorization: Bearer. Uma chave ausente ou rejeitada devolve 401. O playground cria uma chave da conta ao executar.

Início rápido

Defina JEV_API_KEY com uma chave do seu painel e envie o pedido abaixo. Contas novas recebem 2 créditos, suficiente para 2 chamadas com sucesso.

curl https://jev-api.org/api/v1/decisions \
  -H "Authorization: Bearer $JEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "jev-1.13",
  "state": "Thanks for the refund. Still annoyed it took three emails.",
  "questions": {
    "sentiment": {
      "type": "choice",
      "instructions": "What is the overall sentiment of this message?",
      "criteria": {
        "positive": "Satisfied or thankful overall.",
        "mixed": "Both satisfied and unhappy.",
        "negative": "Unhappy overall."
      }
    },
    "needs_follow_up": {
      "type": "noul",
      "instructions": "Should a person reply to this message?"
    }
  }
}'

Usar com ferramentas de código com IA

Copie um prompt com o contrato de requisição completo e cole-o no Cursor, Claude Code ou ChatGPT junto com a sua tarefa. A mesma referência está em /llms.txt.

/llms.txt

Corpo do pedido

model é jev-1.13 ou jev-latest. state é uma string, objeto JSON ou array de texto, até 60,000 caracteres. questions é um mapa de 1 a 6 ids snake_case. O id é apenas o rótulo sob o qual a sua resposta volta, não uma pergunta. A pergunta real vai em instructions, como texto de 1 a 2,000 caracteres.

{
  "model": "jev-1.13",
  "state": "Thanks for the refund. Still annoyed it took three emails.",
  "questions": {
    "sentiment": {
      "type": "choice",
      "instructions": "What is the overall sentiment of this message?",
      "criteria": {
        "positive": "Satisfied or thankful overall.",
        "mixed": "Both satisfied and unhappy.",
        "negative": "Unhappy overall."
      }
    },
    "needs_follow_up": {
      "type": "noul",
      "instructions": "Should a person reply to this message?"
    }
  }
}

Tipos de pergunta

Noul

type noul só precisa de instructions. O campo noul é a probabilidade de 0 a 1 de a afirmação ser verdadeira. Não há um campo confidence separado. Se enviar criteria numa pergunta noul, este endpoint ignora-a.

Choice

type choice precisa de instructions e criteria: um objeto de 2 a 8 ids snake_case mapeados para descrições de até 300 caracteres. A resposta inclui choice, probabilities de cada opção e confidence.

Score

type score precisa de instructions e criteria como um array ordenado de 2 a 10 níveis, o mais baixo primeiro. A resposta inclui score, legend, probabilities e confidence.

Resposta

Um corpo bem-sucedido tem model, answers indexadas pelos seus ids de pergunta, usage com input_tokens e output_tokens, e credits_used. model informa jev-1.13 mesmo se enviar jev-latest. Abaixo está uma resposta de exemplo ao pedido do início rápido, com usage omitido.

{
  "model": "jev-1.13",
  "answers": {
    "sentiment": {
      "type": "choice",
      "choice": "mixed",
      "probabilities": { "mixed": 0.79, "negative": 0.2, "positive": 0.01 },
      "confidence": 0.61
    },
    "needs_follow_up": { "type": "noul", "noul": 0.83 }
  },
  "credits_used": 1
}

Como ler probabilidades e confidence

Noul é a probabilidade de a afirmação em instructions ser verdadeira. Choice e Score devolvem uma probabilidade por opção ou nível, mais confidence.

O segundo lugar é o sinal para passar a uma pessoa. Quando confidence for baixo ou duas opções estiverem perto, envie o caso a uma pessoa ou faça mais uma pergunta concreta. Não baixe o limiar antes de olhar esses casos apertados.

Limites

ItemEste endpoint
EndpointPOST /api/v1/decisions, chave Bearer
Modelojev-1.13 (jev-latest é um alias)
Perguntas por chamada1 a 6
Opções de Choice2 a 8
Níveis de Score2 a 10, o mais baixo primeiro
StateString, objeto JSON ou array, até 60,000 caracteres
InstructionsTexto, de 1 a 2,000 caracteres
Faturação1 crédito por chamada com sucesso; falhadas são grátis
StreamingNão suportado

Diferenças da API da TypeSafe

A TypeSafe AI serve o Jev em POST https://api.typesafe.ai/v1/systemone com uma chave TypeSafe e cobra por token de entrada. O corpo do pedido aqui tem a mesma forma: model, state e questions do tipo noul, choice ou score. O que muda:

  • Caminho e chave: POST /api/v1/decisions em jev-api.org, com uma chave do painel deste site. Chaves da TypeSafe não funcionam aqui, e chaves deste site não funcionam na TypeSafe.
  • Id do modelo: envie jev-1.13 ou jev-latest. Um id versionado como jev-1.13.0 devolve 422.
  • Limites: 1 a 6 perguntas por chamada e 2 a 8 opções de Choice. A TypeSafe documenta até 255 opções de Choice.
  • Campos: instructions deve ser texto e cada opção de Choice precisa de uma descrição. A TypeSafe também aceita instructions como objeto ou array e descrições de opção null.
  • Faturação: 1 crédito por chamada com sucesso, qualquer que seja a contagem de tokens.

Erros

  • 401 — chave ausente ou rejeitada.
  • 402 — a chave é válida e o saldo não cobre a chamada. Uma falha upstream não usa crédito.
  • 422 — o corpo falhou a validação. A mensagem nomeia o campo.
  • 429 — o serviço de decisão está limitado. Tente mais tarde.
  • 502 — o serviço não devolveu respostas. Não se usa crédito.

Id do modelo

Esta API serve jev-1.13. Envie esse id se um limiar depender de uma distribuição. Nesta API, jev-latest é um alias do mesmo id.