Choice — elegir una opción en Jev
Un Choice es uno de los tres tipos de pregunta del modelo Jev de TypeSafe. Elige exactamente una opción de un conjunto que tú defines y devuelve la ganadora, una probabilidad para cada opción y un valor de confianza.
Un Choice le entrega al modelo un conjunto de opciones con nombre y recibe exactamente una de ellas. Los nombres de las opciones son tuyos, así que la respuesta ya es un valor sobre el que tu código puede hacer un switch: no hay cadena que normalizar ni posibilidad de un nombre que nunca definiste.
Lo interesante no es la ganadora, sino la distribución que viene con ella. Cada opción recibe una probabilidad, suman uno, y la segunda te dice qué estuvo a punto de elegir el modelo.
Una respuesta real
Enviada a jev-1.13.0. Los números de abajo son lo que volvió.
Nuestro inicio de sesión SSO está devolviendo un 500 desde la versión 4.2 de esta mañana. Nadie del equipo puede entrar. Igual en Chrome y en Safari, en dos inquilinos distintos.
¿Qué equipo debería hacerse cargo de este ticket?
Técnico gana con un 87 %, pero Cuenta se queda con un 13 %, y ese es justo el desacuerdo correcto, porque un fallo de SSO sí está en la frontera entre ambos. Una etiqueta pelada lo habría escondido. Si equivocarse en el enrutado tiene un coste, el 13 % es el número sobre el que poner el umbral.
La petición y la respuesta, literales
{
"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
}
}
}
}Qué contiene la respuesta
- type "choice"
- Coincide con el tipo de pregunta.
- choice string
- La opción con mayor probabilidad.
- probabilities map<string, number>
- Cada opción que definiste, con su probabilidad. Suman 1.
- confidence number
- De 0 a 1, calculado a partir de cómo se reparten las probabilidades. Un pico claro es confianza alta; un reparto plano es baja.
Reglas y límites
-
criteriaasocia cada opción a una descripción, o anullcuando el nombre se explica solo. - Un Choice admite hasta 255 opciones. Dale al modelo la lista entera de equipos o categorías en vez de una selección: cada opción cuesta solo unos pocos tokens.
- Añade una opción
OtheroNone of the abovecuando tu lista pueda no cubrir toda entrada, para que el modelo tenga forma de decir que ninguna encaja.
Recurre a un Choice cuando
- Las respuestas son un conjunto cerrado que ya tienes en el código: colas, categorías, estados, siguientes acciones.
- Quieres ver la segunda opción, no solo la ganadora.
- Estás enrutando y el coste de cada destino difiere lo bastante como para querer un umbral por opción.
Usa otra cosa cuando
- Las opciones son peldaños ordenados de una misma escala: bajo, medio, alto. Un Score sabe que están ordenados y puede caer entre ellos; un Choice los trata como etiquetas sin relación.
- Más de una opción puede ser cierta a la vez. Haz un Noul por opción.
Los otros dos
Noul
Un Noul es uno de los tres tipos de pregunta del modelo Jev de TypeSafe. Hace una única pregunta de sí/no y responde con la probabilidad de que la respuesta sea sí, como un número de 0 a 1.
Score
Un Score es uno de los tres tipos de pregunta del modelo Jev de TypeSafe. Califica la entrada contra niveles ordenados que tú escribes y devuelve un valor ponderado por probabilidad que puede caer entre dos niveles.
Hazle un Choice a tu propio texto
El patio de juegos envía a Jev lo que pegues y dibuja cada respuesta. Sin cuenta y sin clave.
Abrir el patio de juegos