{"slug": "decisions-as-a-service", "title": "Decisions as a Service", "summary": "A developer built two open-source tools on top of Jev, a new LLM from TypeSafe that returns calibrated probabilities for yes/no decisions instead of generating text. One tool, bscheck, scores documents for jargon and other forms of vague language, while jev-sort uses Jev's choice primitive as a comparator to perform semantic sorting of lists. The developer reports Jev is cheap and fast and expects it to simplify business integrations such as labelling and triage.", "body_md": "[Jev](https://typesafe.ai/) is a new type of LLM. It doesn’t produce text; it makes decisions and returns calibrated probabilities. For “flow chart” type applications, it’s the bit of intelligence in the middle. And not only that, but it’s also cheap as chips and super-fast.\n\nLet’s explore what we can do.\n\n## Noul questions\n\nI don’t know about you, but there’s a lot more [bullshit](https://fffej.substack.com/p/bullshit-detectors) flying around. What would be good is if we could somehow feed a document in, and get the BS highlighted. We just need to make decisions about whether the different types of BS, with questions like:\n\nDoes the text use impressive-sounding terminology in place of concrete meaning? Exclude legitimate technical language with a clear meaning in context.\n\nThis is perfect for Jev, we fire off a body like this:\n\n```\n  {\n    \"state\": \"We leverage synergistic paradigms to unlock holistic excellence.\",\n    \"questions\": {\n      \"jargon\": {\n        \"type\": \"noul\",\n        \"instructions\": \"Does the text use impressive-sounding terminology in place of concrete meaning? Exclude legitimate technical language with a clear meaning in context.\"\n      }\n    }\n  }\n```\n\nAnd get a calibrated response:\n\n```\n {\n    \"answers\": {\n      \"jargon\": {\n        \"type\": \"noul\",\n        \"noul\": 0.98\n      }\n    },\n    \"usage\": {\n      \"input_tokens\": 120,\n      \"output_tokens\": 20\n    }\n  }\n```\n\n“noul” is the term used by TypeSafe for a yes/no decision (apparently, it’s short for Bernoulli). So, in this case, the state we sent (”we leverage synergistic …”) scores 0.98 (98%) for the particular question we sent.\n\nThe API allows you to send multiple questions at once, so building a bullshit detector is rather easy. See [here](https://github.com/fffej/bscheck/).\n\n## Sorting lists\n\nSorting things is one of the most studied problems in computer science. For most sorting algorithms you just need a comparator. We can write a comparator in jev using the [choice](https://docs.typesafe.ai/primitives/choice) primitive.\n\nBut for comparators to be useful, they have to be consistent. To do this, we just give both questions to `jev` and do some cross-checking in code.\n\n```\n   \"state\": {},\n    \"questions\": {\n      \"pair_0_1\": {\n        \"type\": \"choice\",\n        \"instructions\": {\n          \"question\": \"Which comes first?\",\n          \"A\": \"chicken\",\n          \"B\": \"egg\"\n        },\n        \"criteria\": {\n          \"A\": \"A comes first.\",\n          \"B\": \"B comes first.\",\n          \"tie\": \"Neither comes first; they are equal in order.\"\n        } # and vice-versa with the choice the other way around.\n```\n\nWe get a response with confidence out the other end too:\n\n```\n\"answers\": {\n  \"pair_0_1\": {\n    \"type\": \"choice\",\n    \"choice\": \"B\",\n    \"probabilities\": {\"A\": 0.0, \"B\": 1.0, \"tie\": 0.0},\n    \"confidence\": 1.0\n  },\n  \"pair_1_0\": {\n    \"type\": \"choice\",\n    \"choice\": \"A\",\n    \"probabilities\": {\"A\": 1.0, \"B\": 0.0, \"tie\": 0.0},\n    \"confidence\": 1.0\n  }\n}\n```\n\nSo now we can do a semantic sort by just using this comparator.\n\n```\nsort five,three,four,2,one =\n[\n  \"one\",\n  \"2\",\n  \"three\",\n  \"four\",\n  \"five\"\n]\n\nsort \"The Great Emu War, The Signing of the Magna Carta, The Fall of Constantinople\" = \n[\n  \"The Signing of the Magna Carta\",\n  \"The Fall of Constantinople\",\n  \"The Great Emu War\"\n]\n```\n\nAnd in cases where the comparator is unsure, we just return with an error.\n\nMy favourite so far:\n\n```\nuv run jev-sort \"regret,tequila,2am kebab,confidence\"\n\n[\n  \"tequila\",\n  \"confidence\",\n  \"2am kebab\",\n  \"regret\"\n]\n```\n\nFull code [here](https://github.com/fffej/jev-sort/).\n\n## Conclusion?\n\nJev is fun to use, and I can imagine it making business integrations (such as labelling, triage and other such exciting tasks) dead simple. I suspect it’ll be very successful!", "url": "https://wpnews.pro/news/decisions-as-a-service", "canonical_source": "https://fffej.substack.com/p/decisions-as-a-service", "published_at": "2026-09-28 05:36:49+00:00", "updated_at": "2026-09-28 05:48:49.530067+00:00", "lang": "en", "topics": ["large-language-models", "ai-tools", "ai-products", "developer-tools"], "entities": ["Jev", "TypeSafe", "bscheck", "jev-sort"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/decisions-as-a-service", "markdown": "https://wpnews.pro/news/decisions-as-a-service.md", "text": "https://wpnews.pro/news/decisions-as-a-service.txt", "jsonld": "https://wpnews.pro/news/decisions-as-a-service.jsonld"}}