Rotulagem de dados e triagem com a OpenAI Decisions API

Use a OpenAI Decisions API para rotulagem de dados e triagem de chamados. Veja exemplos, preços, recusas, limites e quando manter sua integração atual.

Publicado em

Rotulagem de dados e triagem com a OpenAI Decisions API

A OpenAI Decisions API permite encaminhar chamados, fazer a rotulagem de dados e avaliar ações propostas por agentes, com respostas que seu código pode usar diretamente. Se a chamada ao LLM que você usa hoje só serve para devolver uma categoria ou uma nota, vale testar. Só faça a troca depois de confirmar que a qualidade do encaminhamento se mantém e que o ganho no fluxo de trabalho justifica a migração.

Da rotulagem de dados à triagem: defina a decisão

Pense na Decisions como um serviço de triagem com destinos predefinidos. Você fornece as evidências e a pergunta; sua aplicação decide o que fazer quando a resposta chega.

Em 11 de outubro de 2026, a API está em beta público, com disponibilidade geral prevista “nas próximas semanas”. Essa é a expectativa da OpenAI, não uma data de lançamento. gpt-6-luna é o único modelo compatível, e o endpoint é POST /v1/decisions. A OpenAI afirma que a API é “cerca de 10x mais rápida que a Responses API”. Entenda isso como uma afirmação da OpenAI, não como um resultado medido na sua aplicação. Guia da Decisions da OpenAI

Escolha o formato da resposta antes de escrever o prompt:

Tipo de respostaO que retornaQuando usar
predicateprobability, de 0 a 1Verificar se uma condição se confirma, como a presença de danos visíveis em um produto
choiceUm dos valores fornecidos, mais as probabilidades das opções e confidenceEscolher uma fila predefinida, um rótulo ou uma ação candidata
scoreMédia dos índices dos níveis ordenados, ponderada pelas probabilidades, mais as probabilidades e confidenceAvaliar gravidade ou qualidade com base em critérios definidos

Em uma pontuação, os níveis começam no índice 0. O resultado pode ficar entre os níveis, pois resume a incerteza entre eles. Use uma escolha quando seu código precisar de uma única categoria. Tipos de pergunta

Infográfico em estilo arquitetônico mostra predicate como uma estimativa de condição de 0 a 1, choice como uma categoria e score como níveis ordenados.
Escolha o tipo de resposta de acordo com a decisão que sua aplicação precisa processar.

Como fazer cada uma das três requisições

Estes são os três exemplos de requisição cURL do guia, copiados com a formatação padronizada e comentários adicionados para separá-los. Defina OPENAI_API_KEY no ambiente do shell; o exemplo de predicado também precisa de um arquivo local product.png. Cada comando faz uma requisição independente. Os exemplos foram conferidos no guia público, mas não foram executados em uma conta autenticada. Exemplos originais de requisição

Os elementos em comum são input, com as evidências, e questions, com as decisões a tomar sobre elas. O campo name de cada pergunta identifica sua resposta no array answers retornado. Referência de requisição e resposta

Bash
# Predicate: inspect product.png for visible damage
IMAGE_BASE64="$(base64 < product.png | tr -d '\r\n')"

curl https://api.openai.com/v1/decisions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<JSON
{
  "model": "gpt-6-luna",
  "input": [{
    "role": "user",
    "content": [
      {"type": "input_text", "text": "Inspect the product in this photo."},
      {"type": "input_image", "image_url": "data:image/png;base64,$IMAGE_BASE64"}
    ]
  }],
  "questions": [{
    "type": "predicate",
    "name": "visible_damage",
    "instructions": "Does the product have visible damage, such as a crack, tear, or dent? Ignore shadows and damage to the packaging."
  }]
}
JSON

# Choice: route a customer complaint
curl https://api.openai.com/v1/decisions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-luna",
    "input": "I was charged twice for my order.",
    "questions": [{
      "type": "choice",
      "name": "department",
      "instructions": "Which department should handle this complaint?",
      "choices": [
        {"value": "billing", "description": "Payments, invoices, and refunds."},
        {"value": "technical", "description": "Problems using the product."},
        {"value": "shipping", "description": "Delivery and tracking."},
        {"value": "other", "description": "Requests outside these categories."}
      ]
    }]
  }'

# Score: assess issue severity
curl https://api.openai.com/v1/decisions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-luna",
    "input": "Export fails in Safari but works in Chrome.",
    "questions": [{
      "type": "score",
      "name": "severity",
      "instructions": "How severe is this issue?",
      "levels": [
        {"label": "Cosmetic", "description": "Appearance only; no lost functionality."},
        {"label": "Workaround available", "description": "A task fails, but another way works."},
        {"label": "Fully blocked", "description": "A task fails with no workaround."}
      ]
    }]
  }'

O exemplo de escolha já oferece um bom ponto de partida para o negócio: uma reclamação de cobrança duplicada precisa ir para uma das filas predefinidas. O exemplo de pontuação responde a outra pergunta: qual é o impacto de uma falha quando outro navegador ainda funciona? Separe a definição da equipe responsável da avaliação de gravidade. Assim, um problema de cobrança pode ser urgente sem virar um chamado técnico.

Trate a recusa antes de ler o valor. Os exemplos de SDK do guia verificam answer.type == "refusal" antes de acessar probability, choice ou score. Uma recusa é um resultado à parte: não equivale a uma resposta com baixa confiança nem à categoria other. Comportamento das recusas

Use a escolha para fazer a triagem de chamados

Na primeira versão, concentre-se na definição da fila. Uma equipe de suporte poderia enviar o assunto do chamado e a mensagem relevante do cliente, receber a escolha do departamento e deixar que o código convencional da aplicação aplique as regras de encaminhamento.

Parta das definições de fila do guia e substitua-as pelos limites reais de responsabilidade das suas equipes. Mantenha uma opção other para solicitações que não se encaixam nos departamentos listados. Um pedido de reembolso pertence à equipe de cobrança; isso não autoriza o reembolso.

Este pequeno adaptador ilustra as regras da aplicação após interpretar uma resposta JSON bem-sucedida e selecionar a resposta department. O parâmetro thresholds precisa conter os limites que você definiu a partir de chamados rotulados; se não houver um limite, o chamado fica para revisão.

Python
QUEUES = {
    "billing": "billing",
    "technical": "technical",
    "shipping": "shipping",
}

def queue_for(answer, thresholds):
    if answer.get("type") == "refusal":
        return "manual_review"
    if answer.get("type") != "choice":
        return "manual_review"
    department = answer.get("choice")
    if department not in QUEUES:  # Includes the guide's "other" choice.
        return "manual_review"
    cutoff = thresholds.get(department)
    confidence = answer.get("confidence")
    if cutoff is None or confidence is None or confidence < cutoff:
        return "manual_review"
    return QUEUES[department]

No fluxo proposto, erros de API, timeouts e respostas ausentes também deixam os chamados para revisão manual. Registre a versão da pergunta, a fila sugerida, a confiança, a fila final e eventuais correções da equipe. Garanta que a atualização da fila possa ser repetida com segurança, para que uma nova tentativa da requisição não duplique a atribuição.

Perguntas independentes sobre o mesmo chamado podem ir na mesma requisição. Se uma pergunta posterior depende de uma resposta anterior para fazer sentido, ela deve ir em outra requisição. Orientações para múltiplas perguntas

Um chamado passa por uma etapa de escolha e uma verificação separada de regras, que encaminha os casos aceitos para Cobrança, Suporte técnico ou Entregas, e os incertos ou recusados para Revisão.
Regra de encaminhamento proposta: o modelo sugere uma fila; sua aplicação aceita a sugestão ou envia o chamado para revisão.

Defina os limites com dados rotulados

Escolha os limites medindo quais erros seu negócio pode tolerar. A OpenAI não publica números de calibração no guia e orienta os desenvolvedores a usar dados rotulados da própria aplicação. Um valor de confiança não garante que a resposta estará correta naquela proporção nos seus chamados. Como interpretar as respostas

Comece com chamados antigos cujo destino correto tenha sido conferido por uma pessoa responsável pelo suporte. Inclua solicitações curtas, problemas misturados, falta de contexto e reclamações que contenham instruções direcionadas ao modelo. Separe os exemplos usados para ajustar perguntas e limites de um conjunto reservado exclusivamente para a comparação final.

Meça os encaminhamentos para filas erradas, a proporção enviada para revisão e o tempo que a equipe gasta corrigindo as atribuições. Avalie cada fila separadamente. Confundir entregas com cobrança pode ter um custo operacional diferente de deixar passar um relato de comprometimento de conta.

Primeiro, execute a solução candidata em paralelo ao classificador atual, sem alterar os encaminhamentos em produção. Só a adote quando os resultados atenderem a uma regra de aceitação documentada. Mantenha o caminho anterior disponível para reverter a mudança. Estas são etapas de implantação propostas, não resultados de um teste desta API.

Seis aplicações que valem um teste, em ordem de prioridade

Os melhores usos iniciais têm categorias estáveis, erros observáveis e alguém que já cuida das exceções. A ordem abaixo reflete uma avaliação de implementação, não um ranking de precisão.

PrioridadeQuem poderia usarFluxo proposto em detalhePossível retorno
1. Encaminhamento de chamadosUma liderança de suporte com equipes de cobrança, produto e entregas já estabelecidasEscolher uma fila, aplicar um limite definido com medições e registrar correçõesReduzir repasses sucessivos e o trabalho de distribuição de chamados
2. Rotulagem de dadosUma equipe de pesquisa que categoriza feedback de clientesEscolher entre temas definidos e enviar registros ambíguos para revisãoConcentrar o tempo dos revisores nos registros difíceis
3. Priorização de incidentesUm profissional de engenharia de suporte de uma equipe de softwarePontuar relatos com base em níveis concretos de impacto e disponibilidade de alternativasFazer as falhas de maior impacto avançarem na fila
4. Filtragem de trechos recuperadosUm desenvolvedor que reúne evidências para um assistentePerguntar se cada trecho candidato responde à pergunta do usuárioEvitar que material irrelevante ocupe o prompt final
5. Triagem de devoluçõesUma pessoa responsável por uma operação de e-commerce que analisa fotos de produtosEstimar danos visíveis e encaminhar casos inconclusivos para inspeçãoConcentrar o esforço de inspeção sem tratar a pontuação de uma foto como aprovação de reembolso
6. Revisão de ações de agentesUma equipe de plataforma que supervisiona um assistenteAvaliar uma ação proposta segundo uma política restrita e encaminhar exceçõesReduzir a triagem rotineira feita por revisores e manter as permissões controladas pelo código

Na rotulagem, defina se cada registro pode ter mais de um tema. Uma escolha única seleciona uma categoria; perguntas separadas podem ser mais adequadas quando os rótulos se sobrepõem. Para a gravidade dos incidentes, descreva o impacto em termos operacionais, como perda de funcionalidade e disponibilidade de alternativas. Palavras como “grave” deixam margem demais para a interpretação do modelo.

O que o preço muda na prática

O preço informado no guia é de $0.10 por 1M de tokens de entrada no gpt-6-luna, sem cobrança por saída, leitura ou gravação de cache. Podem ser aplicados adicionais por processamento regional e multiplicadores de entrada para contextos longos. Essas são as tarifas da Decisions; não aplique essa regra de cobrança a chamadas convencionais do mesmo modelo. Preços da Decisions

O exemplo abaixo é um cálculo para um lote, não uma medição de uso nem um preço fixo por decisão. Considere 100,000 chamadas de classificação, cada uma com 1,000 tokens de entrada sem cache, incluindo instruções e opções. Para a chamada atual à Responses, considere também um total de 50 tokens de saída faturados por chamada. O cálculo usa os preços-base padrão para contexto curto, sem gravações de cache, adicionais regionais, novas tentativas ou outras cobranças.

Mesma carga de trabalho hipotéticaCálculoCusto-base dos tokens
Chamadas convencionais ao gpt-6-luna100M tokens de entrada × $0.10/1M + 5M tokens de saída × $0.50/1M$12.50
Chamadas à Decisions100M tokens de entrada × $0.10/1M$10.00

As tarifas convencionais do modelo vêm da tabela de preços padrão da OpenAI. Neste exemplo, eliminar a cobrança por saída economiza $2.50 no lote inteiro. Esse valor, por si só, dificilmente justifica reescrever uma integração que funciona.

O argumento mais forte é operacional: menos espera em um fluxo sequencial, menos código para tratar respostas ou menos triagem manual, mantendo a mesma taxa de erro. Compare com sua fatura real e com a carga de revisão. Um modelo atual mais caro ou respostas geradas mais longas mudam a conta; descontos de cache já existentes também. O tempo de engenharia e os chamados encaminhados incorretamente continuam fazendo parte do orçamento da migração.

Duas ideias de produto que vale a pena desenvolver

Primeira opção: encaminhamento de chamados com revisão e histórico de correções

Uma liderança de operações de suporte poderia pagar por um conector que sugere filas predefinidas, retém casos incertos e transforma as correções da equipe em dados de avaliação. O produto útil é o fluxo completo de encaminhamento, incluindo sua manutenção.

A DataForSEO estima 170 buscas mensais no Google dos EUA por “ticket triage”, em consulta feita em 11 de outubro de 2026. É um sinal restrito de demanda informacional, não uma contagem de compradores. Produtos de helpdesk existentes também atendem a essa necessidade: o Zendesk oferece classificações de triagem inteligente e exige o complemento Copilot para usá-las em fluxos de trabalho. Guia de triagem do Zendesk

A menor versão útil poderia integrar um helpdesk, importar chamados antigos, mostrar uma prévia das atribuições de fila e oferecer uma caixa de entrada para revisão com possibilidade de correção manual. A evidência de venda mais forte seria a redução dos repasses evitáveis no cliente. A dificuldade está no que a solução existente já cobre: se o helpdesk já distribui bem os chamados, outro sistema de encaminhamento aumenta a manutenção. O diferencial precisa resolver um problema específico de responsabilidade ou de repasse entre sistemas.

Segunda opção: uma ferramenta de revisão para rótulos predefinidos

Uma equipe de pesquisa ou dados poderia pagar por uma ferramenta que sugere rótulos, coleta correções e mostra quais categorias geram divergências recorrentes. A DataForSEO estima 90 buscas mensais no Google dos EUA por “automated data labeling”, na mesma consulta. Isso indica interesse na tarefa, não disposição comprovada para comprar essa implementação.

Uma primeira versão poderia receber um CSV, aplicar um conjunto versionado de rótulos, apresentar as linhas incertas para revisão e exportar os resultados corrigidos. Mantenha um conjunto de avaliação separado para comparar mudanças nos rótulos de forma justa. A dificuldade é que um modelo pode reproduzir uma taxonomia mal definida a baixo custo. O produto precisa de boas ferramentas de revisão e gestão de categorias; uma interface em torno de uma chamada de API é fácil de copiar.

O sistema de encaminhamento de chamados é a melhor opção para começar. Com equipes responsáveis por cada fila, o erro fica visível, há alguém capaz de corrigi-lo e o fluxo se repete, permitindo demonstrar valor. Converse com essa pessoa antes de criar uma plataforma genérica de decisões.

Quando manter a solução atual

Mantenha a Responses API quando precisar extrair campos para um esquema JSON próprio, obter uma explicação por escrito ou receber uma chamada de ferramenta solicitada pelo modelo, com argumentos. A Decisions atende aos tipos de resposta mais restritos descritos acima. Orientações da OpenAI para escolher a interface

Mantenha regras determinísticas quando a resposta já estiver em um campo da conta ou em uma política explícita. Um modelo acrescenta pouco a “encaminhe os clientes desta região para esta equipe”. Preserve a autorização humana e as verificações de permissão da aplicação para ações com consequências relevantes. Uma decisão de encaminhamento pode orientar um fluxo de reembolso; ela não comprova o direito do cliente nem a autoridade de quem opera o sistema.

Confira estas restrições de integração antes de agendar a migração:

  • Imagens: o guia permite apenas URLs de dados em base64 incluídas diretamente na requisição, ou seja, os bytes da imagem ficam codificados no próprio envio. Pelas instruções do guia, não há suporte a URLs HTTP ou HTTPS de imagens hospedadas nem a file_id, o identificador de um arquivo enviado anteriormente. Requisitos de entrada de imagens
  • Controles de dados: o guia informa suporte a Zero Data Retention, ou ZDR, e ao uso sob HIPAA para clientes elegíveis. Há suporte a residência de dados e processamento regional nos EUA e na Europa, especificamente no EEE + Suíça. Aplicam-se requisitos de elegibilidade, acordos, configurações e limitações; esses recursos não vêm automaticamente ativados nas contas. Disponibilidade da Decisions, Controles de dados da OpenAI
  • Maturidade do lançamento: o beta público é motivo para manter um caminho de reversão. Se o classificador atual cumpre suas metas e a troca não traz benefício mensurável, mantenha-o.

Alternativas: Jev, Clef e Microsoft-Decision-1

Compare os candidatos com o mesmo conjunto de dados rotulados antes de trocar de fornecedor. O Jev, da TypeSafe, recebe o estado e perguntas tipadas pela System One API. O Cloudflare Clef oferece decisões tipadas no Workers AI. O Microsoft-Decision-1 está disponível no Microsoft Foundry para tarefas como classificação, encaminhamento e priorização. Guia de início rápido da TypeSafe, Documentação do Cloudflare Clef, Anúncio da Microsoft

Integrações existentes, requisitos de hospedagem, resultados de avaliação e tratamento de exceções devem orientar a seleção. Nosso guia de encaminhamento de chamados com Jev explica esse modelo de encaminhamento; O Jev Router é gratuito? esclarece a diferença entre o software de roteamento e a inferência hospedada. Trate separadamente o formato de requisição e o comportamento da confiança de cada fornecedor.

Vale substituir minha chamada de classificação atual pela Decisions?

Teste quando a saída for uma categoria predefinida, uma estimativa de condição ou uma pontuação baseada em critérios. Compare erros de encaminhamento, carga de revisão manual, custo e tempo usando os mesmos exemplos rotulados. Mantenha a chamada atual se a melhoria não justificar a migração.

O que a aplicação deve fazer quando uma decisão é recusada?

Verifique o tipo de resposta antes de ler seu valor. Em um sistema de encaminhamento de chamados, envie as recusas para revisão manual e preserve contexto suficiente para a equipe lidar com o caso. Não interprete a recusa como permissão para escolher uma ação padrão.

Qual limite de confiança devo usar?

Defina-o com dados rotulados do seu próprio fluxo. Meça os erros e o volume de revisão para cada limite candidato, de preferência por fila. Este artigo não fornece um limite universal, e o guia da OpenAI não traz uma tabela de calibração.

Posso enviar a URL de uma imagem hospedada ou o ID de um arquivo já enviado?

Siga o formato de URL de dados em base64 incluída diretamente na requisição, conforme o guia. Ele exclui explicitamente URLs de imagens hospedadas e entradas file_id para este endpoint. A requisição de predicado acima mostra o formato aceito pelo guia.

Por onde começar na segunda-feira

Escolha a chamada de classificação que encaminha chamados para um conjunto de filas já estabelecido. Peça à pessoa responsável que confira uma amostra representativa e rotulada, documente as taxas aceitáveis de erro e revisão e compare a Decisions em paralelo à chamada atual, sem alterar as atribuições. Só faça a troca depois que ela demonstrar que merece esse lugar no fluxo.

Se você precisa de um fluxo de encaminhamento integrado às ferramentas que já usa, criamos sistemas de IA para produção.

Publicado
Categoria
Build
Artigos relacionados
Alternativas ao Jev em 2026: qual modelo de decisão escolher?

Alternativas ao Jev em 2026: qual modelo de decisão escolher?

Compare alternativas ao Jev por preço em USD, licença e implantação: Perplexity, Cloudflare, Microsoft, OpenAI, Liquid e Strands. Saiba qual avaliar primeiro.11 de out. de 2026Build
Claude Code Remote Control: continue programando pelo celular

Claude Code Remote Control: continue programando pelo celular

Acesse o Claude Code pelo celular ou navegador com Remote Control. Veja como conectar sessões do terminal, VS Code e Desktop e resolver falhas de acesso.9 de out. de 2026Build
Programar pelo celular: use o Cursor no iPhone

Programar pelo celular: use o Cursor no iPhone

Veja como usar o Cursor no iPhone para acompanhar agentes locais, enviar instruções e manter o notebook acessível, com os requisitos e preços do serviço.9 de out. de 2026Build
Preço do Firecrawl: planos e custo por página em 2026

Preço do Firecrawl: planos e custo por página em 2026

Veja o preço do Firecrawl, os planos e a cobrança por créditos. Compare coletas simples, extração em JSON e crawls semanais para calcular sua conta em USD.9 de out. de 2026Build
Claude Code: preço e comparação com GitHub Copilot em 2026

Claude Code: preço e comparação com GitHub Copilot em 2026

Compare Claude Code e GitHub Copilot: preços em USD, limites de uso, modelos e custos para uma ou dez pessoas. Veja quando escolher cada um ou usar ambos.8 de out. de 2026Build
Agentes de IA em produção: quando usar LangGraph ou CrewAI

Agentes de IA em produção: quando usar LangGraph ou CrewAI

Compare LangGraph e CrewAI para agentes de IA em produção: estado, memória, revisão humana, MCP e custos de hospedagem no mesmo fluxo de aprovação.7 de out. de 2026Build
Servidor MCP em Python: da consulta local ao HTTP autenticado

Servidor MCP em Python: da consulta local ao HTTP autenticado

Crie um servidor MCP em Python para consultar pedidos, teste no Inspector, conecte Claude Code e Cursor e configure autenticação e hospedagem HTTP.7 de out. de 2026Build
Automação com IA: quando escolher Gumloop ou n8n

Automação com IA: quando escolher Gumloop ou n8n

Compare Gumloop e n8n para automação com IA: preços em USD, créditos, execuções, agentes e hospedagem própria para escolher quem vai cuidar do fluxo.7 de out. de 2026Build
Newsletter

Uma carta, todo domingo.Sistemas que funcionam, não hot takes.

Semanal. Sem spam. Cancele quando quiser.