Jev is TypeSafe's API for multiple-choice questions about text. Point your app at dopp.sh instead, and every call becomes training data for a small model you own. Run it hosted, offline, or in the browser.
Each route has a labeller you pick, such as you, an LLM, a public dataset or another API.
Kept with the state, the questions and every answer.
Drop a request or fix a label.
Rows from a similar Hugging Face dataset, turned into requests in your format.
Requests like your real ones, written for the answers you have too few of.
You talk to a pixel-art guard, and a 34 MB model running in the tab reads each line as friendly, a bribe, a threat, a trick or nonsense. We trained it with dopp; it takes 10 to 30 ms per line on a phone and keeps working in airplane mode once it has loaded.
The scanner asks, for each word, whether it's personal information. We fine-tuned Laya on its requests for 2 epochs. These numbers are from that one model on one held-out test set.
Please refund 97%Marcus 93%Delgado, card ending 77%4471, email 99%marcus.d@fastmail.com
Patient 98%Elena 95%Rossi 77%(DOB 97%03/14/1982) was seen at 53%221 Harbor Rd; insurance ID 98%HX-77812
Contact 97%Ahmed 97%Karim at 99%ahmed.k@example.org or 70%07700 93%900123 about order 71%5521
The quarterly report is due Friday; ping the design channel if the numbers look off.
The number over a word is the model's probability that it's personal information. Words without one scored 40% or less, and every word in the last sentence scored 3% or less.
HA-Jev sends each Home Assistant command to Jev as one request with about a dozen questions. We pointed it at dopp, used it for a minute, added 150 public and 80 generated examples, trained Tiny and ran it with no internet. The numbers below are from that one run, written up with clips.
| Said | Home Assistant | Answered by |
|---|---|---|
| turn off the kitchen lights | Turned off the light | the local model |
| turn the kitchen lights back on | Turned on the light | the local model |
| is the kitchen window open | Sorry, I did not understand that | the local model, 45% sure, so it passed |
It had seen only a few "is X open" examples. HA-Jev wants 60% before it acts, so it passed. Jev took 70 to 130 ms per command in the same run, plus the internet round trip.
You set one goal, like at most 2% of requests wrong. dopp checks your model on live requests, lets it answer what it's sure of once it meets the goal, and hands everything back to Jev if it slips. Your app never changes.
Until your model meets the goal.
Once it does: your model answers what it's sure of, Jev the rest.
Or run it yourself: offline, in a browser, or on your own servers.
$5 of credit for training and hosting. The first $1 needs no card; add one to use the rest (nothing is charged).
Tiny trains in minutes, even on your own CPU. Bigger bases train on our GPUs.