//Primitiva

Score do Jev: notas em réguas com confiança

Quando a resposta é uma posição num espectro, Score devolve a nota, a legenda, a probabilidade por nível e a confiança.

Score existe para a pergunta que não cabe em opções nem em sim/não: “quanto?”. Qual a severidade do bug? Qual o nível de frustração? Quanto de experiência o candidato tem? Você descreve a régua em níveis, o modelo devolve a posição — e, diferente de uma nota solta, a resposta chega com a probabilidade de cada nível e a confiança.

O formato

Uma pergunta Score tem type: "score", as instructions e o criteria: uma lista ordenada de descrições de níveis, do baixo ao alto, com no mínimo 2 e no máximo 10 entradas. O número de cada nível é a posição dele na lista — o modelo não vê esse número; vê as descrições.

{
  "severidade": {
    "type": "score",
    "instructions": "Qual a severidade do problema relatado?",
    "criteria": [
      "Cosmético; sem impacto na funcionalidade",
      "Funcionalidade quebrada, mas existe contorno",
      "Bloqueio; não existe contorno"
    ]
  }
}

A resposta tem cinco campos: score (a posição na régua, podendo cair entre níveis), legend (o mapeamento de número para descrição), probabilities (a probabilidade por nível), confidence e o type. Um exemplo real da documentação — um bug que quebra a exportação no Safari, mas funciona no Chrome:

{
  "severidade": {
    "type": "score",
    "score": 1.3,
    "confidence": 0.54,
    "probabilities": { "0": 0.0, "1": 0.7, "2": 0.3 }
  }
}

A leitura é literal: 70% “existe contorno”, 30% “não existe” — para os clientes que só usam Safari, não existe. A nota 1,30 é a soma ponderada (1×0,70 + 2×0,30), e a confiança de 0,54 avisa que a distribuição está dividida. É uma resposta honesta sobre um problema ambíguo.

Como ler uma nota fracionada

A documentação dedica uma seção a isso, e o resumo é: a nota é uma posição, não uma média de verdade. Distribuições diferentes produzem a mesma nota — 1,0 pode ser 100% no nível 1 ou 50% em 0 e 50% em 2. Por isso a orientação é ler probabilities e confidence junto com score: a nota ordena (priorize os tickets por severidade), as probabilidades explicam, e a confiança avisa quando não dá para apostar.

Confiança baixa numa Score tem três causas típicas, segundo os docs: os níveis se sobrepõem para aquele estado, a pergunta mede mais de uma coisa, ou o estado não diz o bastante para posicionar.

Escrevendo réguas boas

A receita oficial tem quatro mandamentos, todos com exemplo de antes e depois:

  1. Descreva situações, não graus. “Funcionalidade quebrada, mas existe contorno” dá ao modelo algo para comparar com o estado; “severidade moderada” não dá nada.
  2. Uma dimensão por pergunta. “Pontual, inteligente e experiente” mede três coisas — separe em três Scores e combine com pesos no código.
  3. Use o topo da régua para o caso extremo que exige ação diferente. Uma escala de irritação que termina em “muito irritado” mistura o cliente alto e o cliente abusivo; adicionar o nível “abusivo ou ameaçador” separa os dois.
  4. Teste com seus dados. Duas redações da mesma régua comportam-se diferente; valide com exemplos conhecidos antes de concluir.

Números puros nas descrições são o anti-padrão documentado: a mesma mensagem de bug alinhada por pixels que recebe nota 0,0 com níveis descritos recebe 0,57 (e confiança 0,35) com criteria: ["0", "1", "2"].

Níveis estruturados com exemplos

Como na Choice, um nível pode ser um objeto em vez de texto — com a descrição e exemplos de situação. O exemplo dos docs: o bug do Safari, que com níveis simples nota 1,12 e confiança 0,81, passa a 1,06 e 0,91 quando o nível 1 ganha o exemplo “exportação falha em um navegador mas funciona em outro”. Exemplos parecidos com suas entradas reais orientam o modelo; exemplos sem relação com o caso mudam quase nada.

Combinando Scores no código

O padrão composite scoring dos docs: uma Score por dimensão, normalização por len(criteria) - 1 (para pôr todas na base 0–1) e pesos seus na combinação:

prioridade = (0.6 * severidade_normalizada
              + 0.3 * frustracao_normalizada
              + 0.1 * qualidade_do_relatório)

Os pesos vivem no seu código, visíveis e auditáveis — quando o resultado não bater com o que o time decidiria, muda-se um coeficiente, não um prompt. E lembre: mande todas as Scores (e as Choice e Noul irmãs) na mesma chamada, porque correm em paralelo sobre o mesmo estado. O playground mostra duas Scores em português — urgência e risco de churn — ao lado das outras quatro perguntas.

Perguntas frequentes

Quantos níveis uma pergunta Score aceita?

De 2 a 10 níveis, segundo a documentação oficial. A orientação é usar quantos níveis você conseguir descrever de forma distinta — três é um número saudável, e níveis que não se distinguem derrubam a confiança.

A nota pode cair entre dois níveis?

Sim, e isso é intencional. A nota é a média ponderada das probabilidades dos níveis: uma distribuição 70% no nível 1 e 30% no nível 2 devolve nota 1,30 numa régua de 0 a 2.

Por que números nas descrições não ajudam?

Porque o modelo recebe as descrições, não os números das posições. 'Rate de 0 a 2' não dá nada para comparar com o estado; 'problema com contorno existe' dá. A documentação mostra o mesmo bug recebendo nota errada com níveis numéricos e nota certa com níveis descritos.

Quando usar Score em vez de Noul?

Use Noul para uma pergunta de sim ou não limpa e Score para medir posição num espectro que você consegue descrever em níveis. 'O candidato é forte em Python?' com Noul devolve uma probabilidade difícil de interpretar; com Score em níveis de experiência, devolve uma posição comparável.

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