Como usar a API do Jev
O Jev expõe um único endpoint. Envias um estado e um conjunto de perguntas; ele devolve respostas tipadas com probabilidades. Aqui tens tudo o que precisas para fazer a tua primeira chamada.
1. O endpoint
Cada pedido é um POST para https://api.typesafe.ai/v1/systemone, autenticado com um token Bearer. Os SDK oficiais leem a tua chave da variável de ambiente TYPESAFE_API_KEY.
curl -X POST https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-latest",
"state": "Customer: I was charged twice and I am furious.",
"questions": {
"topic": {
"type": "choice",
"instructions": "What is the issue about?",
"criteria": { "billing": "money problems", "bug": "broken product" }
},
"urgent": {
"type": "noul",
"instructions": "Escalate to a human now?"
}
}
}'Using a JevTypeSafeAI hosted key?
Skip the TypeSafe waitlist. The same choice / score / noul API through our hosted endpoint, billed per input token from a prepaid balance — one jv_live_ key, no setup. Paste your key below and run this exact request against the live endpoint to confirm it works.
curl https://jevtypesafeai.com/api/v1/decide \
-H "Authorization: Bearer $JEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": "Customer: I was charged twice and nobody has replied for 3 days.",
"questions": {
"route": { "type": "choice", "instructions": "Where should this go?",
"criteria": { "billing": "money", "bug": "broken", "account": "login" } },
"urgency": { "type": "score", "instructions": "How urgent is this?",
"criteria": ["routine", "today", "urgent", "critical"] },
"escalate": { "type": "noul", "instructions": "Escalate to a human now?" }
}
}'2. O corpo do pedido
Três campos:
- model — jev-latest, ou fixa uma versão como jev-1.13.0 se ajustares limiares.
- state — o contexto, como string, objeto JSON ou array de texto. Até ~64k tokens combinados com as tuas perguntas.
- questions — um mapa de nomes de pergunta para objetos de pergunta. São todas avaliadas numa só ida e volta.
3. Os três tipos de pergunta
choice — escolhe uma opção
Dá um mapa de critérios de até 255 opções etiquetadas. O Jev devolve a chave vencedora, uma probabilidade por opção e uma confiança.
"topic": {
"type": "choice",
"instructions": "What is the primary issue?",
"criteria": {
"billing": "billing or payment problem",
"bug": "the product is broken",
"account": "login or access"
}
}score — posição numa escala
Dá um array ordenado de critérios com 2–10 descrições de nível. O Jev devolve um score (possivelmente fracionário) mais a distribuição completa.
"severity": {
"type": "score",
"instructions": "How urgent is this?",
"criteria": [
"routine",
"handle today",
"urgent",
"critical, about to churn"
]
}noul — sim/não calibrado
Sem critérios — apenas instruções. O Jev devolve noul, uma probabilidade de 0 a 1.
"escalate": {
"type": "noul",
"instructions": "Escalate to a human immediately?"
}4. A resposta
Recebes de volta o modelo resolvido, um mapa de answers e o uso de tokens:
{
"model": "jev-1.13.0",
"answers": {
"topic": { "type": "choice", "choice": "billing",
"confidence": 1.0,
"probabilities": { "billing": 1.0, "bug": 0.0, "account": 0.0 } },
"severity": { "type": "score", "score": 3.0, "confidence": 1.0,
"legend": { "0": "routine", "3": "critical, about to churn" },
"probabilities": { "0": 0.0, "3": 1.0 } },
"escalate": { "type": "noul", "noul": 0.8 }
},
"usage": { "input_tokens": 434, "output_tokens": 75 }
}Como os tipos são fixos, podes ramificar sobre os resultados com código simples — if (answers.escalate.noul > 0.7) — sem análise, sem regex e sem risco de uma resposta malformada.
5. Limites e boas práticas
- Limites de taxa: 250,000 tokens/second e 1,200 requests/minute.
- Contexto: até 64k tokens para o estado + todas as perguntas; 32k para o estado + uma só pergunta, a mais longa.
- Fixa versões em produção se os teus limiares importam — jev-latest pode mudar de comportamento.
- Agrupa as perguntas numa só chamada em vez de muitas; correm em paralelo e partilham o custo do estado.
- Usa a confiança para tratar automaticamente os casos fáceis e encaminhar só os incertos para uma pessoa ou um modelo maior.
Obtém acesso à API ao instante
Inicia sessão, pré-paga um saldo pequeno e obtém uma chave jv_live_ em minutos — uma chave para a Core Decision API e para cada endpoint de workflow pronto a usar. Instantâneo, em autosserviço, sem configuração.
Queres vê-lo antes de escrever código? Cada exemplo nesta página corre ao vivo no playground. Para chaves oficiais e documentação completa, consulta docs.typesafe.ai.