demo-symfony-typesafe
Symfony demo that triages French public-service requests with one Jev call each: intent choice, urgency score and bug noul.
Overview
This Symfony application, documented in French, reads real requests sent to French public services and lets Jev qualify them. Each request gets one call with three questions: what does the person want (a Choice among six intents), how urgent is it (a Score from 0 to 3), and is this a website bug to forward to developers (a Noul). It accompanies a blog post and a YouTube video and is meant to be cloned and modified while following them.
The app streams the roughly 260 MB open dataset of user testimonies into SQLite, shows them in an inbox with search, and qualifies them in the background through a Symfony Messenger queue in batches of 25, with a worker calling Jev in parallel. A live view tracks progress, throughput, latency, tokens and intent distribution, and results drive filters and urgency sorting. The README reports 1,000 requests qualified in 25 seconds on a laptop in September 2026, with 428 ms average latency.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | What does the person want? (one of six intents) | — |
| Score | How urgent is it? | 0 · 1 · 2 · 3 |
| Yes / no | Is this a website bug to forward to the developers? | yes · no |
How it works
- Import the open dataset into SQLite
- Queue requests in batches of 25 via Messenger
- Worker asks Jev the three questions per request
- Filter and sort the inbox by intent, bug flag and urgency
Strengths
- Shows all three primitives in one call
- Background batching with live metrics
- Realistic public dataset
Caveats
- Demo application, not a product
- Requires a TypeSafe key
Getting started
Requires PHP 8.4+ and Composer; clone the repo, install dependencies and follow the README to import the dataset and start the worker.At a glance
- Type
- App
- Status
- prototype
- Language
- PHP
- Runtime
- Symfony web app
- Has code
- yes
Use cases and integrations
How curated lists describe it
Démo : trier des demandes de support avec Jev (TypeSafe) et Symfony AI. Messenger, Live Components, Turbo, kit shadcn de UX Toolkit.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev decide?
Each request's intent, urgency level and whether it is a website bug.
How fast is it?
The README reports 1,000 requests in 25 seconds with 428 ms average latency.
Which framework?
Symfony with Symfony AI, Messenger, Live Components and Turbo.
Related projects
Open-source team agent platform for Slack, GitHub and more that asks Jev once per session which agent runtime and model to use.
ServicebetaTypeScriptExperimental Hono router that matches HTTP requests to plain-language route descriptions using one Jev Noul per route.
ProjectprototypeTypeScriptRails engine for voice and typed commands: define actions in a Ruby DSL and Jev picks the matching command or page control.
ProjectprototypeRubyJava SDK that lets natural language invoke tinystruct @Action methods, using Jev as a semantic dispatcher with confidence gates.
LibrarybetaJavaCloudflare Flue agent example that adds a validated route_with_jev tool for typed support routing through AI Gateway.
ServiceprototypeTypeScriptE-commerce support sandbox where Jev classifies intent, emotion and escalation and blocks risky agent replies before sending.
AppprototypeTypeScript