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…"
routed to laya:en (English)
| Question | Answer | ProbabilityP |
|---|---|---|
| department | billing | 0.85 |
| urgency | normal · 1.20 | 0.56 |
| refund | yes | 0.91 |
$
Fast
Decisions in tens of milliseconds.
A decision model answers in a single forward pass. There is no token-by-token generation, so one question takes under 40 ms on a single NVIDIA T4.
- 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 the same request and response shapes, so existing TypeSafe SDKs work by changing one environment variable.
Request
# Point an existing TypeSafe SDK at your local server
export TYPESAFE_BASE_URL=http://localhost:11435
# …or call the compatible endpoint directly
curl http://localhost:11435/v1/systemone \
-H "Content-Type: application/json" \
-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",
"answers": {
"intent": {
"type": "choice",
"choice": "invoice",
"confidence": 0.9,
"probabilities": {
"invoice": 0.933,
"refund": 0.021,
"other": 0.046
}
}
},
"usage": {
"input_tokens": 52,
"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.
- laya:latestRouter: picks laya:en or laya:multilingual from the detected script and language.router
- laya:enEnglish. Best for guardrails and email triage.421M · 512 ctx
- laya:multilingual100+ languages, 1024-token context; up to ~2.2× faster on batched calls.322M · 1024 ctx
- laya:typed-decisionsFine-tuned on typed-decisions workflows: 0.766 accuracy vs 0.727 published for Jev 1.13.421M · 1024 ctx
Coming next: more open decision models — von, GLiClass, NLI zero-shot classifiers, 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 — CUDA, Core ML or plain CPU. The server listens on 127.0.0.1 by default.
Open weights
Apache-2.0 models you can inspect, fine-tune and redistribute. The runtime is Apache-2.0 too.
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.
Pre-release — watch the repository for the first version.