Jev Choice picks one option from a fixed set. It is designed for routing, classification, and selection — the bounded decisions where an LLM would be overkill and code alone is not enough.
You define a set of options — for example, five support teams, three priority levels, or four content categories. You give Jev the input (a ticket, a message, a document). Jev reads the input and returns one option from your set.
The return value is typed. Your code receives a string or enum it can switch on immediately. No parsing, no JSON extraction, no retry loop. The decision is bounded: Jev can only return one of the options you defined.
Each option in a Choice should be distinct and testable. If two options overlap, the decision will be unreliable — Jev might pick either one for the same input.
Write criteria for each option that explain when it should be chosen. These criteria become part of your Decision Spec and help you validate the decision later.
If none of the options fit, define a qualitative fallback — for example, "Other" routes to human review, asking for more information, or an LLM fallback. Do not invent a confidence threshold.
You have five support teams: Billing, Technical, Account, Sales, and General. A new ticket arrives. Jev Choice reads the ticket and returns one team name.
{
"type": "choice",
"question": "Which team should handle this ticket?",
"options": [
"billing",
"technical",
"account",
"sales",
"general"
],
"fallback": "general → human review"
}A Choice Decision Spec includes the question, the input fields, the list of options, the criteria for each option, and the fallback. Jev Fit + Builder generates this spec as editable JSON, so you can refine the options and criteria before generating code.
After generating the spec, you get implementation-ready code in TypeScript, Python, and cURL. The code shape is simple:
const result = await jev.choice({
question: "Which team should handle this ticket?",
input: { ticket_text: ticket.body },
options: ["billing", "technical", "account",
"sales", "general"],
});
switch (result.value) {
case "billing": routeToBilling(ticket); break;
case "technical": routeToTechnical(ticket); break;
// ...
default: routeToHuman(ticket); // fallback
}This one. Pick one from a set of unordered options.
Answer a yes/no question.
ScoreRate on an ordered scale.
Describe a routing task and the analyzer will identify Choice steps.
It's a Jev primitive that returns exactly one option from a fixed set. It's designed for routing, classification, and selection.
Still have questions?
Contact support@jevmodel.co →