Choice — escolher uma opção no Jev
Um Choice é um dos três tipos de pergunta do modelo Jev, da TypeSafe. Ele escolhe exatamente uma opção de um conjunto que você define e devolve a vencedora, uma probabilidade para cada opção e um valor de confiança.
Um Choice entrega ao modelo um conjunto nomeado de opções e recebe de volta exatamente uma delas. Os nomes das opções são seus, então a resposta já é um valor sobre o qual seu código pode dar um switch — não há string para normalizar nem possibilidade de um nome que você nunca definiu.
A parte interessante não é a vencedora, mas a distribuição que vem junto. Cada opção ganha uma probabilidade, elas somam um, e a segunda colocada diz o que o modelo quase escolheu.
Uma resposta real
Enviada para jev-1.13.0. Os números abaixo são o que voltou.
Nosso login SSO está retornando 500 desde a versão 4.2 desta manhã. Ninguém do time consegue entrar. O mesmo no Chrome e no Safari, em dois inquilinos diferentes.
Qual time deveria assumir este chamado?
Técnico vence com 87%, mas Conta fica com 13% — e essa é exatamente a discordância certa, porque uma falha de SSO fica mesmo na fronteira entre os dois. Um rótulo cru teria escondido isso. Se errar o roteamento tem custo, 13% é o número sobre o qual colocar o limiar.
A requisição e a resposta, na íntegra
{
"state": "Our SSO login has been throwing a 500 since the 4.2 release this morning. Nobody on the team can get in. Same on Chrome and Safari, two different tenants.",
"model": "jev-latest",
"questions": {
"queue": {
"type": "choice",
"instructions": "Which team should own this ticket?",
"criteria": {
"Billing": "Payments, invoices, refunds, plan changes",
"Technical": "Bugs, outages, API errors, integrations",
"Account": "Login, permissions, seats, data export",
"Sales": "Pricing, upgrades, contracts"
}
}
}
}{
"model": "jev-1.13.0",
"answers": {
"queue": {
"type": "choice",
"choice": "Technical",
"confidence": 0.83,
"probabilities": {
"Technical": 0.87,
"Sales": 0,
"Account": 0.13,
"Billing": 0
}
}
}
}O que a resposta contém
- type "choice"
- Corresponde ao tipo da pergunta.
- choice string
- A opção de maior probabilidade.
- probabilities map<string, number>
- Cada opção que você definiu, com sua probabilidade. Elas somam 1.
- confidence number
- De 0 a 1, calculado a partir de como as probabilidades se espalham. Um pico claro é confiança alta; um espalhamento plano é baixa.
Regras e limites
-
criteriaassocia cada opção a uma descrição, ou anullquando o nome já se explica. - Um Choice aceita até 255 opções. Dê ao modelo a lista inteira de times ou categorias em vez de uma seleção — cada opção custa só alguns tokens.
- Acrescente uma opção
OtherouNone of the abovequando sua lista puder não cobrir toda entrada, para o modelo ter como dizer que nenhuma serve.
Use um Choice quando
- As respostas são um conjunto fechado que você já tem no código — filas, categorias, status, próximas ações.
- Você quer ver a segunda colocada, não só a vencedora.
- Você está roteando e o custo de cada destino difere o bastante para você querer um limiar por opção.
Use outra coisa quando
- As opções são degraus ordenados de uma mesma escala — baixo, médio, alto. Um Score sabe que são ordenados e pode cair entre eles; um Choice os trata como rótulos sem relação.
- Mais de uma opção pode ser verdadeira ao mesmo tempo. Faça um Noul por opção.
Os outros dois
Noul
Um Noul é um dos três tipos de pergunta do modelo Jev, da TypeSafe. Ele faz uma única pergunta de sim/não e responde com a probabilidade de a resposta ser sim, como um número de 0 a 1.
Score
Um Score é um dos três tipos de pergunta do modelo Jev, da TypeSafe. Ele avalia a entrada contra níveis ordenados que você escreve e devolve um valor ponderado por probabilidade que pode cair entre dois níveis.
Faça um Choice sobre o seu próprio texto
O playground manda para o Jev o que você colar e desenha cada resposta. Sem conta, sem chave.
Abrir o playground