Jev Choice questions
A Choice is the System One question for “which of these?” You supply a map of option name → description (null if the name is enough). The API allows up to 255 options. The answer includes choice (highest-probability option), probabilities (sum to 1), and confidence.
This page is for builders who already heard of Jev / System One and want a production-minded mental model. jev.pro is an independent unofficial field guide — not affiliated with TypeSafe AI. Confirm facts on docs.typesafe.ai. We do not sell keys.
Choice is an unordered set. The winner is relative to the map you sent, not an absolute property of the world. Add other or none of the above if the list might not cover every input. Without that escape, the model must pick a named option even when none fits.
How to use
Write criteria a person could apply. Close pairs need glosses. Batch with other questions in one POST /v1/systemone — do not burn a call per label.
{
"department": {
"type": "choice",
"instructions": "Which team should handle this?",
"criteria": {
"billing": "Payments, invoicing, refunds",
"technical": "Bugs, outages, integrations",
"sales": "Pricing, upgrades, new accounts"
}
}
}
That map is incomplete for “unsubscribe” or “praise.” Add other. Then abort or hand off when choice == other or when confidence is below your floor. Read the full probabilities map when the runner-up should dual-queue.
TypeSafe’s launch post notes that high-cardinality Choices use a two-stage system (score independently, then choose), which can occasionally slow a call. That is their description of jev behavior at high cardinality, not a latency SLA from this site. Prefer cascades over a 200-way blob.
A Choice settles which option wins among the set. Separate Nouls on each option ask whether each property is true in absolute terms. Those can all be low. Do not treat a Choice winner as “this is definitely billing in the world”; treat it as “among these keys, billing has the most mass.”
When Choice is the wrong tool
- You need “how much,” not “which.” Use Score. Score has 2–10 ordered levels and a fractional expected score. Do not treat that score as dollars.
- You need “is this true?” Use Noul. A Noul of 0.5 means uncertain, not medium.
- You need a value extracted from text. Extract candidates in code, then Choice among them.
- You need a ranked severity ladder. Ordered rungs are Score, not Choice with
"1"…"5"keys you later sort. - You need peakedness on a yes/no. Noul has no confidence. Choice confidence is peakedness of this map.
Do not threshold Choice like a Noul. Use confidence and the map. Do not copy a Noul τ onto a Choice winner.
Production notes
Choice cannot invent an option outside your map. It can still pick the wrong winner. Log the versioned model, the full distribution, and the action your code took. Support triage is a common pattern — support triage — but the primitive is the same for document type, language, or tool name.
Hub: Primitives. Glossary: Choice. Official: docs.typesafe.ai/primitives/choice.
See also
FAQ
Do I threshold Choice like a Noul?
No. Use confidence (and the map). Do not copy a Noul τ.
Can Choice invent an option?
Not outside your map. It can still pick the wrong winner.
One Choice per HTTP call?
No. Batch — fan-out.
What if the set is incomplete?
Add other or none. That is official guidance, not a jev.pro invention.
Disclaimer
This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai. Never treat jev.pro as TypeSafe official documentation. We do not sell, issue, or proxy API keys.