Guias principais
Decisões
Obtenha probabilidades, escolhas e pontuações tipadas de um modelo de decisão
POST /v1/systemone avalia um state em relação a perguntas nomeadas e retorna uma resposta tipada por pergunta. A resposta é um JSON síncrono: uma probabilidade, um nome de opção ou uma pontuação que seu código pode comparar e usar para ramificação. Ele não retorna texto gerado.
Decisões ou chat
| Use decisões quando | Use chat quando |
|---|---|
| Seu código precisa de um número ou um rótulo para agir | Uma pessoa ou outro modelo lê a resposta |
| Você roteia, classifica ou filtra uma solicitação: reembolso ou não, qual equipe, quão urgente | Você precisa de explicações, resumos ou rascunhos de texto |
| Você faz várias perguntas fixas sobre a mesma entrada em uma única chamada | Você precisa de ferramentas, streaming, imagens ou mensagens de múltiplos turnos |
O endpoint de decisão não aceita messages, tools, stream ou outros controles de chat, e não está disponível em Batch. Mantenha seu modelo de chat principal configurado separadamente.
Escolha um modelo
curl "https://api.tokenlab.sh/v1/models?recommended_for=decision" \
-H "Authorization: Bearer sk-your-api-key"Você também pode filtrar com category=decision. Leia GET /v1/models/{model} para o modelo selecionado antes de enviar solicitações e envie o ID do modelo explicitamente. Os exemplos nesta página usam jev-1.13.
Formato da solicitação
| Campo | Tipo | Notas |
|---|---|---|
model | string | ID do modelo de decisão |
state | string, objeto JSON ou array JSON | A entrada a ser avaliada, como um ticket, uma transcrição ou um registro |
questions | object | Pelo menos uma pergunta. Cada chave é o nome da sua pergunta; cada valor possui type, instructions e criteria |
instructions e cada critério também aceitam uma string, objeto JSON ou array JSON. A solicitação rejeita campos desconhecidos.
type | criteria | Resposta |
|---|---|---|
noul | Opcional. Um objeto com orientações para true e false | noul: uma probabilidade de 0 a 1 de que a afirmação seja verdadeira |
choice | Obrigatório. Um objeto de 1 a 255 nomes de opções, cada um mapeado para orientação ou null | choice: um dos nomes das suas opções. Pode incluir probabilities e confidence |
score | Obrigatório. Um array ordenado de 2 a 10 descrições de nível | score: um número de 0 até o último índice do array; pode ser fracionário. Pode incluir legend, probabilities e confidence |
Avalie um ticket
curl https://api.tokenlab.sh/v1/systemone \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-1.13",
"state": "I was charged twice. Please refund the duplicate payment.",
"questions": {
"refund_requested": {"type": "noul", "instructions": "Is a refund requested?"},
"department": {
"type": "choice", "instructions": "Which team should handle this?",
"criteria": {"refunds": "Charges and refunds", "technical": "Software bugs"}
},
"urgency": {
"type": "score", "instructions": "Rate urgency",
"criteria": ["Routine enquiry", "Money affected", "Safety emergency"]
}
}
}'A resposta mantém os nomes das suas perguntas em answers. Os valores abaixo são ilustrativos:
{
"model": "jev-1.13",
"answers": {
"refund_requested": {"type": "noul", "noul": 0.97},
"department": {"type": "choice", "choice": "refunds"},
"urgency": {"type": "score", "score": 1}
},
"usage": {"input_tokens": 96, "output_tokens": 12}
}Use as respostas
- Cada pergunta recebe uma resposta do mesmo
type, sob o mesmo nome. - Uma resposta
noulé uma probabilidade, não um booleano. Escolha seu próprio limite para cada ação. - Uma resposta
choiceé sempre um dos nomes das opções que você enviou. - Uma resposta
scoreindexa seu arraycriteria:1acima significa "Money affected". - Teste as decisões contra seus próprios casos rotulados antes que elas acionem reembolsos, escalonamentos ou outras ações.
Use a partir do MCP
O servidor MCP do TokenLab expõe evaluate_decisions nos perfis core e full. Chame list_models com {"category":"decision"} e get_model primeiro, depois passe o mesmo model, state e questions como argumentos da ferramenta. Leia structuredContent.answers e structuredContent.usage do resultado. A ferramenta retorna um resultado síncrono e não usa polling de tarefas assíncronas.
Use a partir dos SDKs
O SDK JavaScript do TokenLab 0.1.2+ fornece evaluateDecisions(body); o SDK Python 0.1.2+ fornece evaluate_decisions(body). O corpo é o mesmo JSON da solicitação HTTP. Ambos preservam as respostas tipadas e o uso e não repetem automaticamente uma solicitação falha. Veja SDKs.
Custo e novas tentativas
- As decisões são cobradas por tokens, a partir de
usage.input_tokenseusage.output_tokensna resposta, aos preços atuais de token do modelo. - Os preços podem mudar. Leia os detalhes de preços do modelo ou a API de Preços em vez de codificar um preço fixo.
- Um modelo pode relatar tokens de saída mesmo quando seu preço de saída é zero.
- As solicitações seguem sua opção de entrega. Veja Faturamento e preços.
- Um timeout deixa o resultado incerto. Verifique a solicitação em seus logs ou no Console antes de enviar uma solicitação paga novamente.
Erros comuns
| Sintoma | Causa provável | Correção |
|---|---|---|
400 em um campo como messages ou stream | Campos de chat não fazem parte deste endpoint | Envie apenas model, state e questions |
400 em criteria | Uma choice tem 0 ou mais de 255 opções, um score tem menos de 2 ou mais de 10 níveis, ou um objeto noul carece de true ou false | Corrija a definição da pergunta |
| Ações são disparadas em sinais fracos | Uma probabilidade noul foi tratada como verdadeira ou falsa | Compare com um limite que você testou |
Referência da API
| Tópico | Referência |
|---|---|
| Avaliar Decisões | Avaliar Decisões |
| Listar Modelos | Listar Modelos |
| Preços | API de Preços |
| Faturamento e Preços | Faturamento e Preços |