{"slug": "i-thought-jev-was-fuzzy-logic-i-was-wrong", "title": "I thought Jev was fuzzy logic. I was wrong.", "summary": "TypeSafe AI released Jev, a calibrated classification model that returns probabilities rather than generating text, on 15 September, and Laravel's AI SDK added support for it two days later via pull request 1010 merged into the 1.x branch as a Classification API. Jev is still early — no tagged Laravel AI release exists and the model sits behind a waitlist — but the Classification API works today against a fake gateway, letting developers build and test integrations before receiving a key. The model's calibration claim is that of everything Jev calls 80% likely, about 80 in 100 should actually be true over enough cases, a property the author says fuzzy logic never promised.", "body_md": "AI\n\n# I thought Jev was fuzzy logic. I was wrong.\n\nJev looks like fuzzy logic at first glance. It isn't. It's a calibrated model, now callable from Laravel's AI SDK, and here's how to use one.\n\n## On this page\n\nWhen I first read about Jev, on [Freek’s blog](https://freek.dev/3194-detecting-spam-and-auto-replies-with-jev-and-the-laravel-ai-sdk) and on X, I thought: fuzzy logic. I built an app with fuzzy logic more than ten years ago, for a client whose sites kept getting hacked. It fingerprinted each page, checked it regularly, and when the live page drifted from that fingerprint, analysed the new content and assigned a probability that it was malicious. Above a threshold, it fired an alert: email, SMS, and a dashboard that started blinking red for that site.\n\nJev isn’t fuzzy logic. It’s a different idea, and worth ten minutes before you wire it into a Laravel app.\n\n## What is Jev\n\nFuzzy logic lets you reason in degrees instead of true or false. You write the rules and the weights by hand: “if traffic is unusual and content changed overnight, hacked is likely.” Every number in that rule is your own guess, dressed up as logic.\n\nJev is a trained model instead: you send it a state and a typed question, and it hands back a probability, skipping the rules and the weight-tuning entirely.\n\nThe word that matters is calibrated. Of everything Jev calls 80% likely, about 80 in 100 should actually be true, over enough cases. That’s a promise worth checking against your own data before you trust a threshold to it. Fuzzy logic never promised that. A rule scoring something “0.8 hacked” is still just a guess, dressed up as a number.\n\n## Why Jev\n\nA calibrated number is one you can act on. You pick the cutoff based on what a wrong answer costs you: 0.9 for something expensive to get wrong, 0.5 for something a human reviews anyway. The model hands you the number; where you draw the line is still up to you.\n\nTypeSafe AI released Jev on 15 September. Two days later, [Laravel’s AI SDK added support for it](https://github.com/laravel/ai/pull/1010), merged into the `1.x` branch as a `Classification` API.\n\n## Example\n\nSay you’re triaging support tickets: is this one urgent, and which team should get it?\n\n``` php\nuse Laravel\\Ai\\Classification;\nuse Laravel\\Ai\\Classification\\Boolean;\nuse Laravel\\Ai\\Classification\\Choice;\n\n$result = Classification::of($ticket->body)\n    ->question('urgent', new Boolean('Does this need an immediate response?'))\n    ->question('team', new Choice('Which team should handle it?', [\n        'billing' => 'Payments and refunds',\n        'technical' => 'Bugs and outages',\n    ]))\n    ->classify();\n\n$result['urgent']->isTrue(threshold: 0.8); // true\n$result['team']->choice;                   // 'technical'\n```\n\n`isTrue()` takes a threshold argument instead of assuming 0.5, which is where the decision above actually lands in code.\n\nTesting doesn’t need a live call. Fake the gateway and assert on what you asked:\n\n``` php\nClassification::fake();\n\nClassification::of($ticket->body)\n    ->question('urgent', new Boolean('Does this need an immediate response?'))\n    ->classify();\n\nClassification::assertClassified(fn ($prompt) => $prompt->asks('urgent'));\n```\n\n## What’s next\n\nJev itself is still early: no tagged Laravel AI release yet, and the model is behind a waitlist. The `Classification` API works today against the fake gateway, so the integration can be built and tested before a key ever arrives.\n\n## Read more\n\n- [Introducing System One Models & Jev](https://typesafe.ai/blog/introducing-system-one-models-and-jev) , TypeSafe AI’s own announcement: latency, pricing, and how the published benchmark numbers were produced\n- [Detecting spam and auto-replies with Jev and the Laravel AI SDK](https://freek.dev/3194-detecting-spam-and-auto-replies-with-jev-and-the-laravel-ai-sdk) , Freek Van der Herten wiring Jev into a real Laravel app\n- [Jev: The Language Model That Won’t Talk](https://anthonymaio.substack.com/p/jev-the-language-model-that-wont) , Anthony Maio’s closer look at the benchmark, including where Jev falls behind", "url": "https://wpnews.pro/news/i-thought-jev-was-fuzzy-logic-i-was-wrong", "canonical_source": "https://albertoarena.it/posts/i-thought-jev-was-fuzzy-logic/", "published_at": "2026-09-19 06:23:08.740446+00:00", "updated_at": "2026-09-19 06:23:10.391444+00:00", "lang": "en", "topics": ["ai-products", "developer-tools", "machine-learning", "ai-tools"], "entities": ["TypeSafe AI", "Jev", "Laravel", "Laravel AI SDK", "Freek Van der Herten", "Classification API"], "alternates": {"html": "https://wpnews.pro/news/i-thought-jev-was-fuzzy-logic-i-was-wrong", "markdown": "https://wpnews.pro/news/i-thought-jev-was-fuzzy-logic-i-was-wrong.md", "text": "https://wpnews.pro/news/i-thought-jev-was-fuzzy-logic-i-was-wrong.txt", "jsonld": "https://wpnews.pro/news/i-thought-jev-was-fuzzy-logic-i-was-wrong.jsonld"}}