Questions: Choice, Score and Noul
A question is one narrow judgment. You ask as many as you like in one request; each gets its own answer. The format is Jev's, field for field.
{
"model": "bank-support@latest",
"state": { "message": "…", "amount": 86.5 },
"questions": {
"topic": { "type": "choice", "instructions": "What is the customer writing about?",
"criteria": { "lost_stolen": "lost, stolen or compromised card", "refund": "wants a refund" } },
"urgency": { "type": "score", "instructions": "How urgent is it?", "criteria": ["can wait", "today", "right now"] },
"needs_human": { "type": "noul", "instructions": "Does this need a person?",
"criteria": { "true": "a person must handle it", "false": "can be handled automatically" } }
}
}Leave out questions to ask every question your domain knows. instructions and every criterion can be text, an object or an array.
Choice
One of up to 255 named options.
{ "type": "choice", "choice": "lost_stolen", "confidence": 0.93,
"probabilities": { "lost_stolen": 0.93, "unrecognised": 0.06, "refund": 0.004 }, "source": "trained" }choiceis the most likely option;probabilitiesadd up to 1.confidenceis the probability ofchoice.- Write contrastive criteria: say what an option is for, and what it's not for. It helps your day-one backend, and it's how options are described to your model too.
Score
A position on 2 to 10 ordered, described levels.
{ "type": "score", "score": 1.62, "confidence": 0.58,
"legend": { "0": "can wait", "1": "today", "2": "right now" },
"probabilities": { "0": 0.02, "1": 0.34, "2": 0.64 }, "source": "fallback" }scoreis the probability-weighted level: the sum of each level times its probability.confidenceis the largest single probability.legendechoes your level descriptions.
Score explorer
A Score answer is a probability for each level. score is the weighted average; confidence is the biggest single probability.
- score
- 1.98
- confidence
- 0.84
Reads as "Today", with a clear lead for one level.
Noul
The probability that a yes-or-no statement is true, from 0 to 1.
{ "type": "noul", "noul": 0.31, "source": "fallback" }A Noul has no separate confidence: the number is the confidence. Treat 0.5 as "no idea" and set your own cut-offs in code.
Where each answer comes from
Every answer carries source:
source | Who answered |
|---|---|
trained | your own model, learned from your cases |
fallback | your day-one backend, until the question graduates (Day one) |
rule | your rules left only one option |
Good questions
- Atomic. One judgment per question. "Is this a refund request?" and "How urgent is it?" beat one question that tries to do both.
- Stable. Questions you ask on every case are the ones worth a model of their own. One-off questions are fine too: they're answered by your fallback.
- Combine in code, or declare a decision. Weights, cut-offs and routing live in your code, or in the domain's decision.