Yes or no noul
The probability that the answer is yes, from 0 to 1.
{ "is_spam": {
"type": "noul", "instructions": "Is this spam?" } }Yes/no, choice and rubric answers about one input, in one call, with how sure.
Ask yes/no, one-of-a-list and rubric questions about one input: text, a picture, audio, video or a PDF by link. One call answers every question and says how sure it is.
Use it for routing, moderation checks, grading and tool choice when no model needs to write an answer.
input is a string, or up to 50 content parts. A part is text, image, audio, video or document. A picture, a recording, a video or a PDF is a public https link; nothing is uploaded.
{
"input": [
{ "type": "text", "text": "What is wrong in this screenshot?" },
{ "type": "image", "uri": "https://example.com/error.png", "mime_type": "image/png" }
]
}Name each question, say what type it is, and give its instructions. A choice names its options in criteria; a score lists its levels from 0. Every answer carries a confidence from 0 to 1.
noulThe probability that the answer is yes, from 0 to 1.
{ "is_spam": {
"type": "noul", "instructions": "Is this spam?" } }choiceThe winning option, and a probability for each option.
{ "kind": {
"type": "choice", "instructions": "What is it?",
"criteria": { "bug": "Broken.", "idea": "A suggestion." } } }scoreA level from 0, and a probability for each level.
{ "severity": {
"type": "score", "instructions": "How bad?",
"criteria": ["fine", "minor", "major"] } }Send a POST to https://ai.openvibe.services/api/v1/decisions with an OpenVibe token that can make a run, or a person's own token. Up to 1,000 questions and 50 input parts; a choice has 2 to 255 options and a score has 2 to 20 levels. Question names are lowercase letters, digits and _.
prefer is "calibrated" by default. "cheap" asks for the router's cheap structured model first when the input is text.
POST https://ai.openvibe.services/api/v1/decisions
Authorization: Bearer $OPENVIBE_TOKEN
Content-Type: application/json
{
"input": "The app crashes when I open the settings page.",
"questions": {
"is_spam": { "type": "noul", "instructions": "Is this spam?" },
"kind": { "type": "choice", "instructions": "What is it?", "criteria": { "bug": "Something is broken.", "idea": "A suggestion." } },
"severity": { "type": "score", "instructions": "How bad is it?", "criteria": ["fine", "minor", "major"] }
},
"prefer": "calibrated"
}{
"answers": {
"is_spam": { "type": "noul", "noul": 0.03, "confidence": 0.97 },
"kind": { "type": "choice", "choice": "bug", "probabilities": { "bug": 0.94, "idea": 0.06 }, "confidence": 0.94 },
"severity": { "type": "score", "score": 1.8, "probabilities": { "0": 0.02, "1": 0.16, "2": 0.82 }, "legend": { "0": "fine", "1": "minor", "2": "major" }, "confidence": 0.82 }
},
"calibrated": true,
"receipt": { "provider": "gemini", "model": "gemini-decision-1", "input_tokens": 120, "cost_usd": 0.000012 }
}Google's Decisions API answers when OpenVibe.AI has a Gemini key. Otherwise the router's cheapest structured model answers text, and the answer says calibrated: false.
| When | Who answers | What you get | Price |
|---|---|---|---|
| A Gemini key is set | Google's Decisions API (gemini-decision-1) | Calibrated. Text, pictures, audio, video and PDFs by link. | $0.10 per 1M input tokens. Output is free. |
| No Gemini key, or Google is away | The router's cheapest structured model | Text only, up to 100 questions. Estimated, and marked calibrated: false. | Metered like any request. |
Google's free tier may use what it reads to improve its models. Send public or synthetic data only.
Without a Gemini key, pictures, audio, video and PDFs cannot be answered. Every call is metered like any request, and the receipt says which provider and model ran and what it cost.