Run decision models locally.
Ask typed questions about any text or JSON and get calibrated answers in milliseconds. Private, open source, on your own hardware.
$ ollaya run laya --preset triage "I was charged twice for my subscription this month and want a refund."
| Question | Answer | ProbabilityP |
|---|---|---|
| intent | refund | 1.00 |
| is_urgent | no | 0.88 |
| frustration | 1.76 / 3 clearly annoyed | 0.36 |
| refund_requested | yes | 0.90 |
| churn_risk | no | 0.61 |
$
Fast
Decisions in tens of milliseconds.
A decision model answers in a single forward pass, with no token-by-token generation. Measured through the full HTTP API on an RTX 4090, a five-question request to Laya takes 8–10 ms.
- Laya multilingual32.8 ms
- Laya39.5 ms
- TypeSafe Jev (p50)236–276 ms
Laya figures are from the Laya model card, measured on an NVIDIA Tesla T4. Jev p50 range from third-party benchmarks (AbdelStark/jev-benchmarks, nibzard/decision-model-benchmark). Setups differ, so treat this as an order-of-magnitude comparison.
Drop-in compatible
Speaks TypeSafe's API.
Ollaya serves /v1/systemone and /v1/models with TypeSafe's request and response shapes. The official TypeSafe Python SDK 0.7.1 works unchanged against a local server.
Request
# Point the TypeSafe SDK at Ollaya
export TYPESAFE_BASE_URL=http://localhost:11435
export TYPESAFE_API_KEY=local # any value works
export TYPESAFE_DEFAULT_MODEL=laya
# …or call the compatible endpoint directly
curl http://localhost:11435/v1/systemone -d '{
"model": "laya",
"state": "Can I get an invoice for last month?",
"questions": {
"intent": {
"type": "choice",
"instructions": "What does the customer want?",
"criteria": {
"invoice": "Needs an invoice or receipt",
"refund": "Wants money back",
"other": "Anything else"
}
}
}
}'Response
{
"model": "laya:en",
"answers": {
"intent": {
"type": "choice",
"choice": "invoice",
"confidence": 0.9547,
"probabilities": {
"invoice": 0.9698,
"refund": 0.0172,
"other": 0.013
}
}
},
"usage": {
"input_tokens": 43,
"output_tokens": 0
}
}Open models
Open weights, ready to pull.
Start with Laya from Convai Innovations: an English model, a 100+ language model, a model fine-tuned for typed decisions, and a router that picks for you.
- layaOpen decision models from Convai Innovations. Typed, calibrated answers to choice, score and yes/no questions in a single forward pass, in English and 100+ languages.322m · 421m
- deciderDecoder decision models by Mapika on Qwen3.5: the answer is read from option-letter logits in one forward pass. The most accurate open decision model Ollaya ships.0.75b · 1.9b
- nliZero-shot classifiers by Moritz Laurer: every option becomes a hypothesis scored for entailment. The most accurate encoder model on typed decisions in our tests.396m · 435m
- gliclassInstruction-following zero-shot classifier by Knowledgator: all options of a question are scored in one pass, so cost barely grows with the number of options.439m
Planned: more open decision models — von, GGUF LLM-based decision models via llama.cpp.
Your data stays yours
Private by default.
Tickets, emails and user messages are often the most sensitive data you have. With Ollaya they are scored where they already live.
Local
Runs on your machine with ONNX Runtime, on the CPU or an NVIDIA GPU. The server listens on 127.0.0.1 by default.
Open weights
Weights come from their authors’ Hugging Face repositories, pinned to a commit and checked against sha256. Ollaya never re-hosts them, and the runtime is Apache-2.0.
No per-token fees
Run as many decisions as your hardware can handle. No metering and no API bill.
Calibrated
Probabilities you can put thresholds on. Laya’s calibration error (ECE) is 0.081 after temperature fitting, vs 0.246 for Jev.
Get up and running in minutes.
One binary, one command: ollaya run laya.
Linux, macOS and Docker · Apache-2.0 · GitHub