Skip to content
SONOEDocs
EspañolESConsole

Questions

A request carries a map of questions. You choose each key; the answer comes back under the same key. Every question is answered separately and against the same state: no question sees another's answer, and all of them are evaluated in one pass of the model.

Three types

TypeAsksReturnsNative name
NoulYes or no?The probability of yesbinary
ChoiceWhich of these options?The option, a probability for each, a confidencechoice
ScoreWhere on this ordered scale?A position (can land between levels), a probability for each level, a confidencescale

The names in the first column are the ones used by /v1/systemone (the Jev-compatible API). The native /v1/decide uses the names in the last column, with slightly different fields.

{
  "model": "sonoe-latest",
  "state": "The app crashes every time I open my invoices.",
  "questions": {
    "is_bug": { "type": "noul", "instructions": "Is the customer reporting a bug?" },
    "area": {
      "type": "choice",
      "instructions": "Which part of the product is this about?",
      "criteria": { "billing": "Invoices, payments, plans", "account": "Login, profile, settings", "orders": null }
    },
    "severity": {
      "type": "score",
      "instructions": "How badly does this block the customer?",
      "criteria": ["Not at all", "Somewhat", "Completely"]
    }
  }
}

Choosing a type

  • A yes/no fact ("Is this spam?", "Does it mention a refund?") → Noul.
  • One category out of a set (team, intent, language, product area) → Choice. If none might fit, add an option for that, such as "other": "None of the above".
  • A degree (urgency, sentiment, quality) → Score, with levels from lowest to highest.

Several narrow questions usually beat one broad one. Instead of a single Choice with 20 combined labels, ask a Choice for the area and a Score for the urgency, then combine them in your code.

Writing good questions

  • Plain words. "Is this about a payment or a charge?" does better than "Is this about billing?" with Sonoe 1.1.
  • Describe the options. A Choice with "billing": "Payments, charges, refunds" is more accurate than "billing": null.
  • One thing per question. "Is it urgent and about billing?" is two questions.
  • Order Score levels from lowest to highest and keep them distinct.
  • Keep it short. The question is read again with every option, so long instructions cost tokens on each one.

Cost

You pay for the tokens Sonoe reads. For each question, the model reads the state and the question once per option: a Noul reads them twice (yes and no), a Choice with 5 options five times. See Errors and limits.