Every Jev request is built from typed questions. On Jev 1.13 there are exactly three types — Choice, Score and Noul — and Jev 1.14 adds an early fourth type, Box, for images. Picking the right one is most of the design work.

Choice: one option from a set

Use a Choice when the answer is one of several unordered options: a team, a category, a tool, a language.

"team": {
  "type": "choice",
  "instructions": "Which team should own this ticket?",
  "criteria": {
    "billing": "Charges, invoices, refunds and plan changes",
    "technical": "Bugs, outages and broken features",
    "account": "Sign-in, passwords and profile settings"
  }
}
  • criteria is a map of option name → description. Both are sent to the model; the question id is not.
  • TypeSafe says Jev supports up to 255 options (launch post).
  • The answer contains choice (the most likely option), probabilities for every option, and confidence.

Confidence measures how concentrated the distribution is around the top option: 1.0 when all weight is on one option, falling toward 0 as it spreads (Wikipedia). It is not a correctness guarantee.

Score: a position on an ordered scale

Use a Score when the answer is a degree: severity, urgency, quality, relevance.

"severity": {
  "type": "score",
  "instructions": "How severe is this bug report?",
  "criteria": [
    "Cosmetic: nothing is functionally broken",
    "Degraded: broken, but a workaround exists",
    "Blocking: work is stopped, no workaround"
  ]
}
  • criteria is an ordered list, low to high. TypeSafe's docs say it should have at least two levels and the API accepts up to 10 (Score docs).
  • The answer's score is the probability-weighted average of the level indexes, so 0.8 × level 1 + 0.2 × level 2 = 1.2. A legend maps indexes back to your descriptions.
  • Describe every level in words. Bare numbers ("1–5") give the model nothing to anchor on.

Noul: yes or no

Use a Noul for a single true/false proposition.

"wants_refund": {
  "type": "noul",
  "instructions": "Is the customer asking for money back?"
}
  • Only instructions is required.
  • The answer is one number, noul, between 0 and 1: the probability the answer is yes. There is no separate confidence — a value near 0.5 is the uncertainty signal (OpenRouter).
  • Phrase it as a proposition about the state, not as an open question.

Box (Jev 1.14, early)

Box locates something in an image and returns four edges as fractions of the image size plus a confidence. It has no "not found" answer, so pair it with a Noul. Jev 1.13 rejects Box with a 400 (OpenRouter).

Choosing a type

If the answer is… Use
One of several unrelated options Choice
A degree on a scale Score
True or false Noul
Several independent facts Several questions in one request

Two design rules carry most of the accuracy:

  1. Decompose. Several small, atomic questions beat one broad one, and they cost one request because Jev answers them in parallel.
  2. Write criteria like a brief. Concrete, mutually exclusive descriptions with boundary cases ("refunds go to billing even if the user mentions a bug").

Questions in one request cannot see each other's answers. If one depends on another, make two calls.

See them in practice

The confidence lamp use case combines a Choice with confidence-based routing; support-ticket routing uses all three types. Both have copyable curl, Node.js and Python.

FAQ

What question types does Jev support?

Jev 1.13 supports exactly three: Choice (one option from a set), Score (a position on an ordered scale) and Noul (a yes/no probability). Jev 1.14 adds an early fourth type, Box, for locating things in images.

How many options can a Choice question have?

TypeSafe says Jev supports up to 255 Choice options. Criteria are a map of option name to description, and the answer returns the top choice, probabilities for every option and a confidence value.

How many levels can a Score have?

At least two, and the API accepts up to 10. Criteria are an ordered list from low to high, each level described in words; the returned score is the probability-weighted average of the level indexes.

Does a Noul answer include a confidence value?

No. A Noul returns a single probability between 0 and 1 that the answer is yes; a value near 0.5 is itself the uncertainty signal.