# Jev question design: option design, question decomposition, and response fields Source: https://ofox.ai/docs/develop/models/jev/writing Jev answers only within the given options, so the design of questions and options directly affects the accuracy of its decisions. This page lists the design points to verify one by one before production and explains the meaning of each field in the response. ## Design guidelines **1. Options must cover every case.** This is the most common cause of misjudgments. When the options are incomplete, Jev still selects one of them, **and confidence may be high**, so errors of this kind cannot be detected through confidence. Measured: with only two options, `billing` (charges, invoices, refunds) and `technical` (outages, errors, integration issues), the input "Will it rain in Shanghai tomorrow?" was classified as `technical` in 3 consecutive runs, with confidence 0.96–0.98. After `other` (none of the above) was added, all 3 runs returned `other`, with confidence 1. **2. Provide a description for every option and level.** A `description` defines the scope more clearly than a single word. For example, only when `billing` is described as "charges, invoices, refunds" can the model assign "the invoice was issued incorrectly" to that option. **3. Evaluate only one matter per question.** "Is it urgent and payment-related?" should be split into two `predicate` questions placed in the same request. **4. Set a `name` for every question.** Requests succeed without it, but the returned answers then contain no `name` and can only be matched by order, which is error-prone when there are many questions. **5. Combine multiple questions into one request.** Questions in the same request share one input, and the input is billed only once. Measured: a single request with 60 questions took about 0.9 seconds; a single question took about 0.6 seconds. ## Response fields ```json { "type": "choice", "name": "team", "choice": "billing", "confidence": 0.85, "probabilities": [ { "value": "billing", "probability": 0.9 }, { "value": "technical", "probability": 0.1 }, { "value": "other", "probability": 0 } ] } ``` - **`choice`**: the option with the highest probability, that is, the decision result. - **`probabilities`**: the probability of each option; the values sum to 1. - **`confidence`**: the reliability of this decision, from 0 to 1. When two options have similar probabilities, `choice` still returns a result, but `confidence` is lower. - **`score`** (score type): a probability-weighted value across levels, which are numbered from 0; the result may fall between two levels. For example, 1.43 lies between level 1 and level 2, closer to level 1. - **`probability`** (predicate type): the probability that the answer is "yes". Predicate does not return a separate confidence value. Repeated calls with the same input produce small variations in probability and confidence (measured confidence for the same ticket ranged from 0.56 to 0.61 across runs), so thresholds should not be set close to the boundary values of the results.