Tutorial
Tutorial da OpenAI Decisions API: sua primeira chamada de decisão
Este passo a passo leva você de uma conta vazia a uma chamada de decisão funcionando no endpoint decisions-1 deste site — uma alternativa chamável à OpenAI Decisions API: uma chave, um POST, probabilidades na resposta e um limiar para o que vem a seguir.
Atualizado
Passo 1 — obtenha uma chave
Abra o playground e pressione Run uma vez — uma sessão de convidado, uma chave de API e 2 créditos grátis são criados automaticamente. Para produção, entre e crie uma chave nomeada no painel em API keys. As chaves vão no cabeçalho Authorization Bearer..
Mantenha a chave no servidor. Toda requisição que a carrega é cobrada do seu saldo, então nunca a coloque em código de navegador ou repositório público.
Passo 2 — envie a primeira requisição
Uma requisição de decisão tem três campos: model (decisions-1 ou decisions-latest), state (o contexto que o modelo lê — uma string, objeto JSON ou array de texto) e questions (um mapa de 1 a 6 ids de pergunta). Escreva a pergunta real em instructions — o id é apenas o rótulo sob o qual a resposta retorna.
Uma pergunta noul é um julgamento sim/não: o campo de resposta noul é a probabilidade de a afirmação ser verdadeira.
cURL
curl https://decisions-api.net/api/v1/decisions \
-H "Authorization: Bearer $DECISIONS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "decisions-1",
"state": "I was charged twice for my subscription this morning.",
"questions": {
"refund": {
"type": "noul",
"instructions": "Is the customer asking for money back?"
}
}
}'Passo 3 — adicione uma pergunta choice
Uma pergunta choice escolhe um rótulo da lista que você define. criteria é um objeto de 2 a 8 ids de opção, cada um com uma descrição curta — o modelo lê a descrição, então escreva-a como uma regra de roteamento.
Uma pergunta score funciona igual, mas recebe um array ordenado de 2 a 10 descrições de nível, da menor para a maior. Você pode misturar os três tipos numa chamada, até seis perguntas.
JSON
{
"team": {
"type": "choice",
"instructions": "Which team should own this ticket?",
"criteria": {
"payments": "Checkout, billing, or payment processing.",
"frontend": "Rendering or browser behavior.",
"account": "Login, permissions, or profile."
}
}
}Passo 4 — leia as probabilidades
Uma resposta bem-sucedida traz model, answers indexadas pelos seus ids de pergunta, usage e credits_used. Uma resposta noul é apenas a probabilidade. Uma resposta choice inclui o choice vencedor, uma probabilidade por opção e um valor de confiança.
O segundo lugar importa tanto quanto o vencedor. Duas opções perto de 0.5 cada não é o mesmo que 0.9 contra 0.1 — trate casos apertados como candidatos a revisão, não como escolhas confiantes.
Resposta
{
"model": "decisions-1",
"answers": {
"refund": { "type": "noul", "noul": 0.98 }
},
"credits_used": 1
}Passo 5 — defina um limiar e trate erros
Escolha um limiar de confiança com seu próprio tráfego: aceite acima dele, mande o resto para uma pessoa. Comece alto (0.7–0.8) e baixe só depois de revisar os casos que ficaram aquém.
402 significa saldo vazio; 429 ou 502 significa tentar depois — chamadas que falham não são cobradas. 422 é erro de validação do corpo e a mensagem indica o campo.
JavaScript
const res = await fetch('https://decisions-api.net/api/v1/decisions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.DECISIONS_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(body),
})
if (res.status === 402) { /* out of credits */ }
if (res.status === 429 || res.status === 502) { /* retry later */ }
const { answers } = await res.json()
const team = answers.team
if (team.type === 'choice' && team.confidence >= 0.7) {
routeTo(team.choice) // confident: auto-assign
} else {
queueForHuman(team) // low confidence or near-tie: review
}Perguntas frequentes
Isso chama a Decisions API da OpenAI?
Não. Este endpoint serve decisions-1, o modelo de decisão que este site executa. A Decisions API da OpenAI está em prévia limitada e ainda sem esquema público; o formato de requisição aqui segue o mesmo padrão de decisão.
Por que a chave da minha resposta difere da que enviei?
Não difere — answers volta indexada pelos ids exatos que você enviou no mapa questions. Se uma chave falta, aquela pergunta falhou na validação e a chamada retornou 422.
Posso receber a resposta em streaming?
Não. Uma chamada de decisão é uma única ida e volta que retorna o objeto answers completo. Este endpoint não tem modo streaming.
O que a confiança deve significar para meu limiar?
A confiança resume quão separadas estão as opções. Calibre com tráfego real: registre as probabilidades de algumas centenas de casos e posicione o corte onde aceitar automaticamente para de cometer erros que importam.
Teste no playground
Execute esta requisição no navegador — 2 chamadas grátis para novos visitantes, sem configuração.