//Primitivas

Noul ou Choice de sim e não: qual usar

Noul 0,22 e Choice com 0,99 no não, na mesma pergunta e no mesmo texto. Nenhum dos dois está errado — eles respondem coisas diferentes.

“O cliente está pedindo reembolso?” é uma pergunta de sim ou não. Ela pode ser escrita como um Noul ou como um Choice com as opções yes e no. Parecem equivalentes, e não são — nem nos números que devolvem, nem no que significam.

A página oficial de limites do jev-1.13 trata esse assunto sob o título de invariantes estruturais, e é um dos nove modos de falha declarados.

O exemplo que resolve a discussão

Mesmo ticket: “I’m not happy with the fit. What are my options here?”. Mesma pergunta, nas duas primitivas.

Noul noulChoice yesChoice noChoice confidence
0,220,010,990,97

Os números comparáveis são noul e probabilities["yes"] — e mesmo esses ficam a uma distância enorme: 0,22 contra 0,01. A documentação vai além e avisa que não é óbvio como interpretar a confiança de um Choice aplicada a uma pergunta Noul, nem o contrário.

A consequência prática é imediata: um limiar ajustado em cima de um Noul não vale para o Choice equivalente. Se você calibrou “acima de 0,6 age” sobre um Noul e depois trocou a pergunta por um Choice de sim e não, o corte mudou de significado sem que ninguém tocasse nele.

A segunda armadilha: a negação

Outro ticket: “I was charged twice for the same order. Can someone look into this?”. Duas perguntas Noul, uma a negação da outra.

refundnot_refundSoma
0,720,471,19

A soma passa de 1, e isso não é bug. A documentação explica o motivo estrutural em uma frase que vale decorar: um Choice é relativo — resolve qual opção vence — e cada Noul é absoluto, podendo ser baixo para todas ao mesmo tempo.

Ou seja: P(noul) e 1 - P(not noul) não são comparáveis, e a orientação oficial é não depender de identidades aritméticas entre perguntas separadas.

O critério de escolha

Com a mecânica entendida, a decisão fica simples.

Use Noul quando:

  • a pergunta é uma condição binária que dispara uma regra no seu código (“menciona risco à saúde”, “afirma já ter pago”, “pede falar com atendente”);
  • várias condições podem ser verdadeiras ao mesmo tempo, e você quer saber de cada uma;
  • a condição é independente das outras e faz sentido sozinha;
  • nenhuma das condições pode ser verdadeira, e você precisa que a resposta reflita isso.

Use Choice quando:

  • você precisa de exatamente um destino entre alternativas que se excluem;
  • quer a confiança da escolha para gatilho de revisão;
  • quer ver a distribuição entre as opções para saber se a disputa foi apertada.

O ponto que reúne os dois: Choice sempre escolhe alguém. Mesmo quando nenhuma opção serve, uma delas ganha — por isso a opção de escape é obrigatória, como discutido em critérios que separam. Noul pode dizer “nenhuma” simplesmente ficando baixo em todas.

Os dois juntos, no mesmo desenho

O cookbook oficial de escolha de skill usa exatamente essa complementaridade em uma tarefa só: um Choice para ordenar e escolher a skill entre as candidatas, e Nouls para decidir se alguma skill deveria ser sugerida. A documentação cita esse caso como o exemplo de usar as duas primitivas sobre a mesma lista curta, porque elas respondem perguntas diferentes.

Na prática, isso vira o desenho que aparece em quase todo caso de uso deste site:

# Choice: um destino, com confiança para o portão.
categoria = r.answers["categoria"]

# Nouls: condições absolutas que viram política no código.
risco_legal = r.answers["cita_procon"].noul
quer_humano = r.answers["quer_falar_com_humano"].noul

if quer_humano > 0.6:
    return transferir()              # regra, não ponderação
if risco_legal > 0.6:
    return fila_juridico()
if categoria.confidence < 0.6:
    return fila_humana()
return rotear(categoria.choice)

Os dois Nouls podem ser altos ao mesmo tempo, e isso é informação. Se fossem opções de um mesmo Choice, um deles teria de perder.

O que fazer com essa diferença

Não transporte limiares entre primitivas. Cada corte pertence à pergunta, à primitiva e à versão do modelo em que foi calibrado — sobre a versão, veja modelos e aliases.

Não force identidades aritméticas. Não espere que dois Nouls opostos somem 1, nem que a soma de Nouls sobre categorias dê 1.

Escreva a pergunta que você quer mesmo responder. A documentação fecha a seção com essa recomendação: não dependa de invariância estrutural, e redija cada pergunta para significar diretamente o que você quer saber.

Meça com os seus dados. Se a dúvida entre Noul e Choice persistir para um caso específico, rode os dois sobre vinte exemplos com resposta conhecida e compare. É mais rápido do que teorizar, e o playground serve para o primeiro teste.

A comparação entre as três primitivas está em qual primitiva usar, a leitura das duas grandezas em probabilidade não é confiança e a lista completa de arestas em limites do Jev.

Perguntas frequentes

Noul e um Choice de sim e não dão a mesma resposta?

Não. O exemplo oficial usa a mesma pergunta sobre o mesmo ticket e obtém noul 0,22 de um lado e, do outro, 0,01 para sim, 0,99 para não e confiança 0,97. Os números comparáveis são noul e a probabilidade do sim, e mesmo esses ficam longe um do outro.

Posso reaproveitar um limiar ajustado em Noul num Choice?

Não, e a documentação recomenda explicitamente não fazer isso. Um limiar calibrado sobre a probabilidade de um Noul não se transporta para a probabilidade de uma opção de Choice, porque as duas grandezas não medem a mesma coisa.

Um Noul e a negação dele somam 1?

Não necessariamente. No exemplo oficial, 'pediu reembolso' deu 0,72 e 'pediu algo diferente de reembolso' deu 0,47 no mesmo ticket, somando 1,19. Cada Noul é uma pergunta absoluta e independente.

Qual é a diferença conceitual entre os dois?

Choice é relativo: ele resolve qual opção vence entre as que você escreveu. Noul é absoluto: ele responde uma condição por si só, e pode ser baixo para todas as condições ao mesmo tempo.

Quando usar Noul e quando usar Choice?

Noul quando a pergunta é uma condição binária que dispara regra no código e quando várias condições podem ser verdadeiras ao mesmo tempo. Choice quando você precisa escolher exatamente um destino entre alternativas que se excluem, e quando quer a confiança da escolha.

Noul tem confiança?

Não. Confiança é uma estatística sobre uma distribuição, e Noul devolve um número só. A dúvida de um Noul aparece no próprio valor, quando ele fica perto do meio da escala.

Quer dominar decisões com IA em português? O curso da comunidade está em pré-venda.

Garantir pré-venda por R$ 499,00

Pré-venda: R$ 499,00 · Após o lançamento: R$ 799,00