Noul
A Noul is a yes/no question. The answer is the probability that the answer is yes, from 0 (no) to 1 (yes).
Request
type"noul"requiredinstructionsstring | object | arrayoptionalThe yes/no question. Optional if
criteriasays what yes means.criteriaobjectoptionalWhat a yes and a no mean. Both keys are optional.
truestring | object | array | nulloptional- What a yes means.
falsestring | object | array | nulloptional- What a no means.
{
"model": "sonoe-latest",
"state": "Hi, I would like to cancel my subscription before the next renewal.",
"questions": {
"cancel": { "type": "noul", "instructions": "Does the customer want to cancel?" },
"angry": {
"type": "noul",
"instructions": "Is the customer angry?",
"criteria": { "true": "Insults, threats or all caps", "false": "Calm or neutral tone" }
}
}
}Answer
type"noul"requirednoulnumberrequired- The probability of yes, from 0 to 1.
{
"model": "sonoe-1.1.0",
"answers": {
"cancel": { "type": "noul", "noul": 0.9351 },
"angry": { "type": "noul", "noul": 0.3494 }
},
"usage": { "input_tokens": 274, "output_tokens": 0 }
}A Noul has no confidence: the probability itself says how sure Sonoe is. Values near 0.5 mean it can't tell.
How criteria are read
Sonoe reads criteria as part of the question. The angry question above reaches the model as:
Is the customer angry?
Yes means: Insults, threats or all caps
No means: Calm or neutral toneUse criteria to pin down a fuzzy word ("angry", "urgent", "spam") the way your app means it.
Tips
- Pick a threshold for your use, not always 0.5. If missing a yes is expensive (a safety issue, a cancellation), act from 0.3; if a false yes is expensive, wait for 0.8.
- Ask in plain words. Sonoe 1.1 is sensitive to wording: "Is this about a payment or a charge?" works far better than "Is this about billing?".
- One fact per question. Split "Is it urgent and about billing?" into two Nouls.
- In the native API, a Noul is a
binaryquestion, which also returnsconfidenceandabstain.