Decision-1: ask three questions in one request before a Sume render
Questions sharing a state can share one Decision-1 request. Route, rate severity and check repeat contact once, then render only if all three pass.

Yes: Microsoft-Decision-1 lets questions with the same state share one request, so you can run a brief through a gate, a format pick and a risk check in a single call. Microsoft says combining related questions reduces the number of requests and keeps the decision context consistent. Render on Sume only when every answer clears your thresholds.
The request
Each question has a name and the answers come back under the same names. The three types are noul (a probability from 0 to 1), choice (one option, plus a probability per option) and score (a position on an ordered scale).
{
"model": "<deployment-name>",
"state": {"brief": "9:16 teaser, 8 seconds, ceramic mug, slow push-in"},
"questions": {
"ready": {"type": "noul", "instructions": "Is the brief complete enough to render?"},
"kind": {"type": "choice", "instructions": "What is it?",
"criteria": {"product": "A product shot", "person": "Features a person", "other": "Anything else"}},
"risk": {"type": "score", "instructions": "How risky is it to render unreviewed?",
"criteria": ["None", "Low", "Medium", "High"]}
}
}Reading the answers
Define the rule in code before you look at any answer. A scale runs from index 0 up, and Microsoft says the returned score is the probability-weighted average of the level indexes, so it can fall between levels. Use scores for ordering and thresholds, not as calibrated ratings.
| Answer | Condition to continue | Otherwise |
|---|---|---|
| ready (noul) | Probability above your tested threshold | review |
| kind (choice) | Selected option is product | review; people-related briefs get a human |
| risk (score) | Below your tested cut-off | review |
| All three pass | Submit to Sume with an Idempotency-Key | The decision model never sees the key or the result |
After the gate
Submit with the Videos API, which answers 202 with id and polling_url. Microsoft advises setting thresholds from the cost of false positives and negatives, and adding an abstention option such as cannot tell when a forced choice is wrong.
Testing the three-question gate
Write ten briefs you know are good and ten you know are bad, run both sets, and print each answer next to your label. Change one question's wording, run again and compare; Microsoft warns that scores can change with wording and option order. Keep the combination that separates the two sets best, and write the thresholds next to the questions.
If any answer is missing from the response, treat the whole brief as review.
- Ten good, ten bad.
- One change at a time.
- Missing answer means review.
Sources
Related posts
More in Developers
- Image API returned 202 at 4K: handle the job envelope in Python
A slow 4K, high-quality or large-n request can miss the 30 second wait and return 202 with a job, not images. Branch on the status code, then poll.
- Omni Flash edit: test at 360p, then run the final at 1080p
Prove an Omni Flash edit prompt at 360p ($0.0375 a second on Sume) before paying for 1080p ($0.1875 a second). Use a new Idempotency-Key for each resolution.
- Omni Flash edit in sync mode: it waits 30 seconds, then you poll
Sync mode on Sume waits at most 30 seconds. An Omni edit may not finish in that time, so read the job id from the reply and poll it. Never resubmit.
- Omni Flash image-to-video: frame_images or input_references?
frame_images with first_frame pins your photo as the opening frame. A single input_references image conditions the whole clip instead. Pick by what you want.
Written by Sume