DocsQuestions and answers
Rate on a scale
Rate text against an ordered rubric. Understand the fractional score and read the distribution across levels before choosing an application action.
Use a score question to rate impact, urgency or quality against levels you define. With a decisio server running, paste this request into a terminal:
curl --fail-with-body -sS --max-time 60 http://127.0.0.1:8000/v1/systemone \ -H 'Content-Type: application/json' \ -d '{ "state": "My card keeps getting declined when I renew.", "questions": { "impact": { "type": "score", "instructions": "Rate the business impact using only the reported facts.", "criteria": [ "No function impaired", "One user impaired, with a workaround", "One user blocked from a core function", "Many users blocked from a core function" ] } }}'Run against the CPU stand-in at v0.46.0 on 2026-11-13: the answer is the stand-in's, not a model-quality measurement.
Download the request as JSON to reuse it in your own client. This example uses the decisio endpoint; Ollama’s guide gives its port and required model name.
Define a rubric from low to high
Section titled “Define a rubric from low to high”Unlike a choice’s named options, a score’s criteria is a list, ordered from lowest to highest.
The first level has index 0.
| Level | Description in this example |
|---|---|
| 0 | No function impaired |
| 1 | One user impaired, with a workaround |
| 2 | One user blocked from a core function |
| 3 | Many users blocked from a core function |
Describe observable differences between neighboring levels. Here the question asks for reported facts, so a ticket should not imply a whole-team outage without evidence.
Read the score and its levels
Section titled “Read the score and its levels”Read answers.impact.score and answers.impact.probabilities from the JSON response.
These illustrative fields use chosen probabilities, rather than a measured model result:
{ "type": "score", "score": 1.7, "legend": { "0": "No function impaired", "1": "One user impaired, with a workaround", "2": "One user blocked from a core function", "3": "Many users blocked from a core function" }, "probabilities": {"0": 0.1, "1": 0.2, "2": 0.6, "3": 0.1}}A shape to fill in, not a command to run.
score is the probability-weighted mean of the level indices: 0 × 0.1 + 1 × 0.2 + 2 × 0.6 + 3 × 0.1 = 1.7.
It can be fractional, even though your rubric contains whole-number levels.
The probability keys are strings such as "2", and legend maps each index back to its description.
Figure · An ordered score
The mean moves between rubric levels as the distribution changes.
Mean level 1.70. The likeliest level is 2, with probability 0.60.
- 0. No function impaired
- 0.10
- 1. One user impaired, with a workaround
- 0.20
- 2. One user blocked from a core function
- 0.60
- 3. Many users blocked from a core function
- 0.10
0 × 0.10 + 1 × 0.20 + 2 × 0.60 + 3 × 0.10 = 1.70
Illustration: chosen probabilities, using the tutorial request. Your model returns its own values.
Explore the request and answer fields
Figure · Illustrative field map
Find the field your code sends or reads.
Request
{
"state": "My card keeps getting declined when I renew.",
"questions": {
"impact": {
"type": "score",
"instructions": "Rate the business impact using only the reported facts.",
"criteria": [
"No function impaired",
"One user impaired, with a workaround",
"One user blocked from a core function",
"Many users blocked from a core function"
]
}
}
}Answer fields
{
"answers": {
"impact": {
"type": "score",
"score": 1.7,
"legend": {
"0": "No function impaired",
"1": "One user impaired, with a workaround",
"2": "One user blocked from a core function",
"3": "Many users blocked from a core function"
},
"probabilities": {
"0": 0.1,
"1": 0.2,
"2": 0.6,
"3": 0.1
}
}
}
}The text, question, options and typed answer are separate parts of one decision.
Read all field explanations
- Text
- state is the text to ask about. Keep it separate from the question.
- Question
- questions names each judgment. Its type and instructions tell the server what to answer.
- Options
- criteria gives named options for choice or ordered levels for score. A noul question already has yes and no, and can optionally describe true and false.
- Answer
- answers uses your question names. Read the typed value and its probabilities before your application acts.
Illustration: chosen probabilities, using the tutorial request. Your model returns its own values.
Choose the action from your rubric
Section titled “Choose the action from your rubric”If your code needs the likeliest level, select the key with the largest value in probabilities; here that is level 2.
If it needs an average rating for sorting, use score.
Read the distribution before triggering an action: different mixtures of low and high levels can have the same mean.
Check the HTTP status before reading the answer, and keep a review or service-failure path in the application. For a category without an order, use a choice question.
Good to know
Section titled “Good to know”- Keep the rubric stable when comparing scores over time; adding a level changes what the indices mean.
- Scores are not certified. Use choice or yes/no tasks when you need certified answers.
- The mean level is not a probability; use
probabilitiesto inspect uncertainty over the levels.
What next
Section titled “What next”- Use the probabilities: turn uncertain answers into a review policy.
- Build a request: combine separate named questions about one text.
- HTTP API: exact request and answer fields.