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/jsonAutenticaçã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.
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
| Item | Este endpoint |
|---|---|
| Endpoint | POST /api/v1/decisions, chave Bearer |
| Modelo | jev-1.13 (jev-latest é um alias) |
| Perguntas por chamada | 1 a 6 |
| Opções de Choice | 2 a 8 |
| Níveis de Score | 2 a 10, o mais baixo primeiro |
| State | String, objeto JSON ou array, até 60,000 caracteres |
| Instructions | Texto, de 1 a 2,000 caracteres |
| Faturação | 1 crédito por chamada com sucesso; falhadas são grátis |
| Streaming | Nã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.