Choice — Jev で 1 つの選択肢を選ぶ
Choice は TypeSafe の Jev モデルにある 3 つの質問タイプのひとつです。あなたが定義した集合からちょうど 1 つを選び、勝者、すべての選択肢の確率、そして確信度を返します。
Choice は名前つきの選択肢の集合をモデルに渡し、そのうちちょうど 1 つを受け取ります。選択肢の名前はあなたのものなので、答えはすでにコードが switch できる値です。正規化すべき文字列もなく、定義していない名前が返る可能性もありません。
面白いのは勝者ではなく、一緒に返ってくる分布のほうです。すべての選択肢に確率がつき、その合計は 1 になり、次点はモデルがもう少しで選びかけたものを教えてくれます。
実際の答え
jev-1.13.0 に送信。下の数字は返ってきたものそのものです。
今朝の 4.2 リリース以降、SSO ログインが 500 を返し続けています。チームの誰もログインできません。Chrome でも Safari でも同じ、テナントが 2 つ違っても同じです。
質問
このチケットはどのチームが担当すべきですか?
83%
高
87% 技術
技術が 87% で勝ちますが、アカウントが 13% を保持しています。そしてこれは正しい不一致です。SSO の障害は本当に両者の境界にあるからです。むき出しのラベルならこれを隠してしまったでしょう。振り分けを誤るコストがあるなら、13% こそがしきい値を置くべき数字です。
リクエストとレスポンスの原文
リクエスト
{
"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
}
}
}
}答えに含まれるもの
- type "choice"
- 質問タイプと対応します。
- choice string
- 最も確率の高い選択肢。
- probabilities map<string, number>
- 定義したすべての選択肢とその確率。合計は 1 になります。
- confidence number
- 0 から 1。確率の広がり方から計算されます。明確なピークが 1 つなら高く、平らに広がっていれば低くなります。
ルールと制限
-
criteriaは各選択肢を説明に対応づけます。名前だけで十分なときはnullにできます。 - Choice は最大 255 個の選択肢を取れます。絞ったリストではなく、チームやカテゴリの全リストをモデルに渡してください。選択肢 1 つのコストは数トークンです。
- リストがすべての入力を網羅できないかもしれないときは、
OtherやNone of the aboveを足して、どれも当てはまらないと言える道をモデルに残してください。
Choice を使うのはこんなとき
- 答えがすでにコードの中にある閉じた集合のとき。キュー、カテゴリ、ステータス、次のアクション。
- 勝者だけでなく次点も見たいとき。
- 振り分けをしていて、行き先ごとのコスト差が大きく、選択肢ごとにしきい値を置きたいとき。
別のものを使うべきとき
- 選択肢が 1 本の尺度の順序つきの段のとき。低・中・高など。Score はそれが順序だと知っていて、段の間に落ちることもできます。Choice は無関係なラベルとして扱います。
- 同時に複数が真になりうるとき。その場合は選択肢ごとに Noul を聞いてください。