{"slug": "announcing-decision-models", "title": "Announcing decision models", "summary": "NobodyWho added support for decision models, general-purpose classifiers that score user-defined criteria instead of relying on long prompts or structured outputs, built on top of llama.cpp and currently supporting Laya decision models. The release offers three question types — `choice`, which picks one option and returns a probability for each; `noul`, which gives the probability an answer is yes; and `score`, which rates something on a user-defined scale. In the published Python example, a customer message is routed to billing with 97.4% probability, flagged as angry with 78.6% probability, and scored 1.90 for urgency on a 0–3 scale.", "body_md": "[← Back to blog](https://www.nobodywho.ai/posts/)\n\n# Announcing decision models\n\nWe are happy to announce that [NobodyWho](https://github.com/nobodywho-ooo/nobodywho) now supports decision models!\n\nDecision models were recently popularized by the release of [Jev](https://typesafe.ai/blog/introducing-system-one-models-and-jev). They are general-purpose classifiers. Instead of writing a long prompt or using [structured outputs](https://docs.nobodywho.ai/python/sampling#structured-output), you define a set of criteria and let the model score them.\n\nOur implementation sits on top of the great work from the [llama.cpp](https://github.com/ggml-org/llama.cpp) team. We currently support [Laya](https://huggingface.co/ggml-org/Laya-GGUF) decision models and three types of questions:\n\n- `choice` picks one option and gives the probability of each one.\n- `noul` gives the probability that the answer is yes.\n- `score` rates something on a scale you define.\n\nHere's a short example in Python:\n\n``` python\nfrom nobodywho import Decision, Model\n\nmodel = Model(model_path=\"hf://ggml-org/Laya-GGUF/Laya-Q8_0.gguf\")\ndecisions = Decision(model=model, n_ctx=1024)\n\nresult = decisions.decide(\n    state=\"Customer message: I was charged twice for my order last week and nobody has replied.\",\n    questions={\n        \"route\": {\n            \"type\": \"choice\",\n            \"instructions\": \"Choose the best team for this customer message.\",\n            \"criteria\": {\n                \"billing\": \"payments, charges, refunds, invoices\",\n                \"shipping\": \"delivery, tracking, lost or late parcels\",\n                \"technical\": \"bugs, errors, login problems\",\n            },\n        },\n        \"angry\": {\"type\": \"noul\", \"instructions\": \"Is the customer angry?\"},\n        \"urgency\": {\n            \"type\": \"score\",\n            \"instructions\": \"How urgent is this?\",\n            \"criteria\": [\"can wait\", \"this week\", \"today\", \"right now\"],\n        },\n    },\n)\n\nroute = result[\"answers\"][\"route\"]\nprint(f\"Team: {route['choice']}\")\nfor team, probability in route[\"probabilities\"].items():\n    print(f\"  Probability of {team}: {probability:.1%}\")\n\nangry = result[\"answers\"][\"angry\"]\nprint(f\"Probability the customer is angry: {angry['noul']:.1%}\")\n\nurgency = result[\"answers\"][\"urgency\"]\nprint(f\"Urgency score: {urgency['score']:.2f} (0 = can wait, 3 = right now)\")\nfor level, probability in urgency[\"probabilities\"].items():\n    print(f\"  Probability of {urgency['legend'][level]}: {probability:.1%}\")\n```\n\nOutput:\n\n```\nTeam: billing\n  Probability of billing: 97.4%\n  Probability of shipping: 1.5%\n  Probability of technical: 1.1%\nProbability the customer is angry: 78.6%\nUrgency score: 1.90 (0 = can wait, 3 = right now)\n  Probability of can wait: 4.0%\n  Probability of this week: 46.7%\n  Probability of today: 4.9%\n  Probability of right now: 44.4%\n```\n\nTo learn more, visit the docs for the language you prefer:\n\nMusic in the video: \"Beauty Flow\" by Kevin MacLeod (incompetech.com), licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).\n\nEverything NobodyWho does is open-source, please leave [a star on GitHub](https://github.com/nobodywho-ooo/nobodywho) to support us ❤️\n\nGet new posts in your feed reader: [subscribe via RSS](https://www.nobodywho.ai/feed.xml).", "url": "https://wpnews.pro/news/announcing-decision-models", "canonical_source": "https://www.nobodywho.ai/posts/announcing-decision-models/", "published_at": "2026-10-29 00:00:00+00:00", "updated_at": "2026-10-29 15:48:24.222420+00:00", "lang": "en", "topics": ["artificial-intelligence", "machine-learning", "ai-tools", "developer-tools", "large-language-models"], "entities": ["NobodyWho", "llama.cpp", "Laya", "Jev", "typesafe.ai", "ggml-org"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/announcing-decision-models", "markdown": "https://wpnews.pro/news/announcing-decision-models.md", "text": "https://wpnews.pro/news/announcing-decision-models.txt", "jsonld": "https://wpnews.pro/news/announcing-decision-models.jsonld"}}