on-device decision model · hosted API: 1,024 input tokens · apache-2.0 · free in the v0.5 preview
It never generates a string. It scores the options you supply and hands back a calibrated distribution over them. On CLINC150 it scores 96.3% against TypeSafe Jev at 87%, the only benchmark both have run. That Jev figure comes from an independent pre-registered eval. The wattai figure is its own v2 measurement.
Download the 726 MB f16 build and run it offline. Or call the hosted API at api.wattai.dev, free during the preview, with no key and no account for 1,000 calls a day. In five two-question requests on September 20, 2026, the hosted API took 2.16–2.41 seconds round trip, including 1.79–1.85 seconds of reported server inference. Your network and server load will affect timing. Local latency depends on your hardware and is not benchmarked here.
Try a decision #
Edit the text, choose your questions, and run a real API request. No key or account needed. These examples use the hosted model; your input is sent to the server.
live response
Run the example to see which options fit, with a probability for each.
Where wattai beats TypeSafe Jev #
On CLINC150, wattai scores 96.3% and TypeSafe Jev scores 87%. That Jev figure comes from an independent pre-registered eval, and the wattai figure is its own v2 measurement. CLINC150 is the only apples-to-apples number between the two, and every other Jev cell reads not run, which means not evaluated. Expected calibration error is 4.1 for wattai, averaged across ten tasks, against 12 for Jev, the midpoint of an independently measured range. Lower is better.
wattai is distilled from SmolLM2-360M. Against that base zero-shot it scores 82.3% on MNLI against 33%, and 81.5% on BoolQ against 63%.
wattai buildsother modelsnot evaluated on this task: SmolLM2-360M.
wattai: v2 tern_synth · jev: independent pre-registered eval · sm2: not published
What the confidence does not tell you
The probability says which of your options fits best, not whether any of them fit. A sentence about the weather, scored against bug, feature and praise, comes back praise with a number that looks like any other answer. If none-of-the-above is a real outcome, send it as an option; add_none appends one for you.
Use it in your app #
Send the text once and ask as many questions about it as you like. They share a prefill, so ten questions cost about what one costs.
Install the official client: npm install @typesafe-ai/sdk. Node.js 20 or newer.
- choice
- categorical. pick one of up to 255 options.
- noul
- yes/no, returned as a probability.
- score
- ordered levels, so 4 sits next to 5.
The hosted API is free in preview #
POST api.wattai.dev/v1/systemone is free during the v0.5 preview, with no key and no account up to 60 requests a minute and 1,000 calls a day. A bearer key raises that to 300 a minute and 20,000 a day.
request shape #
state string, requiredthe text the model reads. the hosted API processes up to 1,024 input tokens; longer input is truncated.questions array, 1-32each: {q, options, kind, add_none?}.q stringthe question in natural language.options array of strings, 1-255the allowed answers. required for every kind, including noul..kind"choice" | "noul" | "score"choice is categorical, noul is yes/no, score is ordered levels.add_none boolean, optionalappends a "none of these" option. defaults on for choice, off for noul and score.
response shape #
results arrayone entry per question, in the order sent.argmax stringthe most likely option label.confidence 0..1probability of the argmax.options array of stringsthe labels as scored, with "none of these" appended when you asked for it.probs array of 0..1calibrated distribution over the options above.kind stringechoes the question kindmodel stringidentifier of the served buildms intserver-side inference latency in milliseconds
rate limits
anonymous, by ip 60/min · 1,000/dayno key, no account. enough for a prototype.bearer key 300/min · 20,000/dayone request to get one, see below.response headers X-RateLimit-*Limit and Remaining ride on every response.over the limit HTTP 429Retry-After says when to come back.
Lift the limit
curl -X POST https://api.wattai.dev/v1/keys \
-H "content-type: application/json" \
-d '{"note": "my-app-name"}'
- It is a decision model, not a chat model. It never generates a string, it only picks from the options you send.
- Options can run to 255 items, and the model scores all of them in the same pass.
- Questions about the same state share a prefill, so ten questions cost about what one costs.
- Five sequential two-question requests to /v1/systemone on September 20, 2026 took 2.16–2.41 seconds round trip, with 1.79–1.85 seconds reported server inference. These are observations from one client, not a latency guarantee. The live demo shows both timings for your request. Local inference depends on your hardware.
Four builds, apache-2.0 #
wattai-fp.gguf is the 726 MB f16 build, the one the benchmarks are measured on. The ternary builds score below it and fall under the SmolLM2-360M base on PIQA (66.3 against 72) and MMLU (33.7 against 36).
- wattai-fp.ggufrecommendedthe build the benchmarks are run on. unquantized weights, every point of accuracy intact.726 MB · gguf · f16
- wattai-tern-q8.ggufternary weights, 8-bit embeddings. a third of the size, and it keeps the calibration.205 MB · gguf · tq2_0 · + side lora 17 MB
- wattai-tern-tq1.ggufthe smallest build. same body, tq1_0 packing. for phones and edge boards.201 MB · gguf · tq1_0
- wattai-side.ggufthe higher-precision residual that pairs with a ternary body. load it as a lora in llama.cpp.17 MB · gguf · lora · rank 16
apache-2.0 · v0.5 preview · free to use, self-host and redistribute.