Skip to content

demo-symfony-typesafe

Symfony demo that triages French public-service requests with one Jev call each: intent choice, urgency score and bug noul.

Appprototype

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

TypeQuestionAnswers
ChoiceWhat does the person want? (one of six intents)—
ScoreHow urgent is it?0 · 1 · 2 · 3
Yes / noIs this a website bug to forward to the developers?yes · no

How it works

  1. Import the open dataset into SQLite
  2. Queue requests in batches of 25 via Messenger
  3. Worker asks Jev the three questions per request
  4. 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.

    ServicebetaTypeScript
  • Experimental Hono router that matches HTTP requests to plain-language route descriptions using one Jev Noul per route.

    ProjectprototypeTypeScript
  • Rails engine for voice and typed commands: define actions in a Ruby DSL and Jev picks the matching command or page control.

    ProjectprototypeRuby
  • Java SDK that lets natural language invoke tinystruct @Action methods, using Jev as a semantic dispatcher with confidence gates.

    LibrarybetaJava
  • Cloudflare Flue agent example that adds a validated route_with_jev tool for typed support routing through AI Gateway.

    ServiceprototypeTypeScript
  • E-commerce support sandbox where Jev classifies intent, emotion and escalation and blocks risky agent replies before sending.

    AppprototypeTypeScript