Simo documentation
Simo answers typed questions about a situation (text, images or video) with a calibrated probability for every possible answer. When acting needs a value, it fills that in too. One request reads the situation once and answers every question you ask about it.
from simoai import Client, Noul
c = Client() # reads $SIMO_API_KEY
r = c.ask("The customer says the parcel arrived broken and wants their money back.",
{"refund": Noul("The customer asks for a refund")})
r["refund"].noul # 0.99: the probability that the statement is true
r.cost_usd # what the request costcurl https://api.temprl.org/v1/ask \
-H "Authorization: Bearer $SIMO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "simo-1-pro",
"state": "The customer says the parcel arrived broken and wants their money back.",
"questions": {"refund": {"type": "noul", "instructions": "The customer asks for a refund"}}}'const res = await fetch("https://api.temprl.org/v1/ask", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.SIMO_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
model: "simo-1-pro",
state: "The customer says the parcel arrived broken and wants their money back.",
questions: { refund: { type: "noul", instructions: "The customer asks for a refund" } },
}),
});
const { answers } = await res.json();
console.log(answers.refund.noul); // 0.99Why calibrated answers
A language model's text answer tells you what it thinks, not how sure it is. Simo returns a probability you can act on: when it says 0.8, it is right about 80% of the time. A threshold in your code means what it says.
Python
if r["refund"].noul > 0.95:
auto_refund() # confident: act
elif r["refund"].noul > 0.6:
ask_a_person() # unsure: escalateStart here
5 min · $2 freeQuickstartSign up, get a key, install the SDK and make your first request.
GuideQuestion typesNoul, Choice and Score for decisions. Fill, Extract and Locate for values.
ModelsSimo-1 ProWhat the models are, what they cost and their limits.
ReferenceHTTP APIOne endpoint, POST /v1/ask. Call it from any language.
ExamplesUse casesSupport triage, claims, browser agents, extraction and more.
GuideAgentsPick the next tool call with a probability, and stop when unsure.
What you can ask
| Kind | Types | You get back |
|---|---|---|
| Decisions | Noul (yes/no), Choice (one of several), Score (a level on a scale) |
A calibrated probability for every possible answer |
| Reads (preview) | Fill (write a value), Extract (copy it from the input), Locate (find it in an image) |
A typed value: text, number, list or box coordinates |
Ten questions about one input cost little more than one, because the cost is in reading the situation. Ask everything you need in one request.