Le carnet de La Refonte

Jev sur Cloudflare Workers AI : test et guide d’implémentation

Le code officiel pour appeler le modèle de décision Jev depuis un Worker Cloudflare, les seuls chiffres publics disponibles et ce qu’il faut vérifier avant la production.

  • IA & Automatisation
  • Cloudflare
  • Jev
  • Développement
Refonte de Site Web

Refonte

Agence WordPress

WordPress

Agence SEO

SEO

Jev, le modèle de décision de TypeSafe AI, est disponible sur Cloudflare Workers AI sous l’identifiant « typesafe/jev ». Un Worker déclare un binding AI, envoie un état et des questions typées, puis reçoit des probabilités et une confiance. Ce guide reprend le code officiel de Cloudflare et les seuls chiffres publics disponibles, relevés sur la démo askjev.ai. La Refonte n’a pas encore exécuté Jev depuis son propre Worker.

📌 À retenir

  • Le code de ce guide est repris tel quel de la fiche modèle Cloudflare, consultée le 19 septembre 2026.
  • La Refonte n’a pas exécuté Jev depuis son propre Worker : les latences et coûts cités viennent de la démo publique askjev.ai.
  • Jev renvoie des probabilités et une confiance ; la décision reste dans votre code, avec un seuil et une relecture humaine.
  • Workers AI facture en Neurons, avec 10 000 Neurons gratuits par jour ; le tarif de Jev s’affiche dans le tableau de bord.

Ce que ce guide teste sur Cloudflare Workers AI, et ce qu’il ne teste pas

Jev est le modèle de décision annoncé par TypeSafe AI le 15 septembre 2026. Il ne rédige pas : il évalue un état, message ou objet, contre des questions typées et renvoie des probabilités. Cloudflare le propose comme modèle tiers dans Workers AI, sous l’identifiant « typesafe/jev ». Le fonctionnement général est détaillé dans notre article sur le modèle Jev.

Ce guide suit la fiche modèle publiée par Cloudflare, consultée le 19 septembre 2026. Les extraits de code en sont repris tels quels. Une précision s’impose : La Refonte n’a pas encore exécuté Jev depuis son propre Worker. Les seuls chiffres réels de cet article viennent de la démo publique askjev.ai, relevés les 18 et 19 septembre 2026.

Pourquoi un guide malgré tout ? La documentation officielle décrit le produit sans cas d’usage complet. Ici, le fil conducteur est un besoin métier courant : trier les messages entrants d’un service client. Le circuit tient en quatre étapes, illustrées ci-dessous, avant les vérifications à faire chez vous.

Fiche du modèle typesafe/jev dans la documentation Cloudflare Workers AI : description du modèle, fenêtre de contexte de 32 000 tokens et renvoi au tableau de bord pour le tarif.
La fiche modèle « typesafe/jev » sur developers.cloudflare.com, source des extraits de code de ce guide, capturée le 19 septembre 2026. À lire : la fenêtre de contexte de 32 000 tokens et l’absence de tarif public.

Le circuit dans un Worker : de la requête à l’action

1Requête HTTPUn message arrive2env.AI.runtypesafe/jev + questions3Réponse typéeProbabilités, confiance4Règle de décisionAgir ou transmettre

Cloudflare Workers AI : l’inférence à la périphérie du réseau

Workers AI exécute des modèles sur les GPU du réseau Cloudflare, au plus près de l’utilisateur. C’est l’inférence IA à la périphérie : le Worker et le modèle tournent dans le même réseau, sans serveur à gérer. Le GPU est serverless : vous payez l’usage, pas la machine. Le modèle s’appelle par une simple API, depuis le code du Worker ou par requête REST.

La tarification Workers AI repose sur une unité, le Neuron, qui mesure le calcul GPU consommé par une requête. Selon la page de tarification consultée le 19 septembre 2026, chaque compte dispose de 10 000 Neurons gratuits par jour. Au-delà, le plan Workers Paid facture 0,011 $ par tranche de 1 000 Neurons.

Pour Jev, la fiche modèle renvoie au tableau de bord Cloudflare pour le prix : il n’est pas affiché publiquement. TypeSafe AI annonce de son côté, au lancement, 0,042 $ par million de tokens en entrée et une sortie gratuite. Vérifiez le montant réel dans votre tableau de bord avant de dimensionner un volume.

01

Allocation gratuite Workers AI

Ce que dit la source
10 000 Neurons par jour, sans frais
Source et date
Cloudflare, tarification, 19/09/2026
02

Au-delà de l’allocation

Ce que dit la source
0,011 $ par 1 000 Neurons (plan Workers Paid)
Source et date
Cloudflare, tarification, 19/09/2026
03

Modèle typesafe/jev sur Workers AI

Ce que dit la source
Tarif affiché dans le tableau de bord, non public
Source et date
Cloudflare, fiche modèle, 19/09/2026
04

Jev via l’API TypeSafe

Ce que dit la source
0,042 $ par million de tokens en entrée, sortie gratuite, au lancement
Source et date
TypeSafe AI, 15/09/2026
Ce que la tarification Workers AI et l’éditeur disent à la date de rédaction. Le prix effectif de Jev sur Cloudflare n’est pas public : à lire dans votre tableau de bord.

Étape 1 : déclarer le binding Workers AI

Un Worker accède aux modèles par un « binding » nommé AI, déclaré dans le fichier de configuration wrangler.toml. Une fois le projet déployé, l’objet env.AI expose la méthode run. Elle prend l’identifiant du modèle et ses paramètres. Prérequis : un compte Cloudflare avec Workers AI activé et l’outil en ligne de commande Wrangler. Aucune clé API TypeSafe n’est nécessaire : le modèle est routé par la plateforme.

wrangler.toml (source : fiche modèle Cloudflare)
[ai]
binding = "AI"

Étape 2 : formuler les questions typées

Jev attend deux éléments : un « state », chaîne ou objet à évaluer, et un objet « questions ». Chaque question porte un type, une consigne (« instructions ») et des critères. Trois types existent. « Noul » répond par une probabilité entre 0 et 1. « Choice » retient une option parmi celles que vous décrivez. « Score » place l’état sur une échelle ordonnée.

L’exemple officiel traite un message de support. Trois questions sont posées en un seul appel : l’urgence, le service compétent et le niveau d’agacement. Les critères sont rédigés en anglais dans la documentation. La fiche limite le contexte à 32 000 tokens : un long historique doit être résumé avant l’appel.

Appel de typesafe/jev depuis un Worker (source : fiche modèle Cloudflare)
const response = await env.AI.run(
  'typesafe/jev',
  {
    state: 'Help! My payouts have been failing for 3 days.',
    questions: {
      is_urgent: {
        type: 'noul',
        instructions: 'Does this convey urgency?',
        criteria: { true: 'Explicitly time-sensitive', false: 'No urgency expressed' },
      },
      department: {
        type: 'choice',
        instructions: 'Which team should handle this?',
        criteria: {
          billing: 'Payments, invoicing, refunds',
          technical: 'Bugs, outages, integrations',
          sales: 'Pricing, upgrades, new accounts',
        },
      },
      frustration: {
        type: 'score',
        instructions: 'How frustrated is the customer?',
        criteria: ['Calm', 'Frustrated', 'Very angry'],
      },
    },
  },
)
console.log(response)
Exemple officiel de la documentation Cloudflare : appel env.AI.run('typesafe/jev', …) avec trois questions typées, suivi du début de la réponse JSON portant la version jev-1.13.0.
L’exemple officiel tel qu’affiché sur la fiche Cloudflare le 19 septembre 2026 : l’appel et le début de la réponse (jev-1.13.0). C’est le code repris dans ce guide, sans modification.

Étape 3 : lire la réponse et ses probabilités

La réponse contient un champ « answers », avec une entrée par question, et un champ « usage » qui compte les tokens. Un « noul » renvoie une probabilité. Un « choice » renvoie l’option retenue, une confiance et la probabilité de chaque option. Un « score » renvoie une valeur sur l’échelle, sa légende et la répartition des probabilités.

Dans l’exemple, le message est jugé urgent à 0,95 et affecté à la facturation avec une confiance de 0,8. L’appel a consommé 426 tokens en entrée et 73 en sortie. Le modèle indiqué est jev-1.13.0 ; cette version peut changer, le modèle est récent.

Réponse renvoyée pour l’exemple ci-dessus (source : fiche modèle Cloudflare)
{
  "model": "jev-1.13.0",
  "answers": {
    "is_urgent": { "type": "noul", "noul": 0.95 },
    "department": {
      "type": "choice",
      "choice": "billing",
      "confidence": 0.8,
      "probabilities": { "billing": 0.87, "sales": 0, "technical": 0.13 }
    },
    "frustration": {
      "type": "score",
      "score": 1.04,
      "confidence": 0.94,
      "legend": { "0": "Calm", "1": "Frustrated", "2": "Very angry" },
      "probabilities": { "0": 0, "1": 0.96, "2": 0.04 }
    }
  },
  "usage": { "input_tokens": 426, "output_tokens": 73 }
}

Étape 4 : écrire la règle de décision côté Worker

Jev ne prend pas la décision finale : votre code la prend. La règle la plus simple est un seuil de confiance. Au-dessus, le Worker agit : il route le message ou étiquette le dossier. En dessous, il transmet le cas à une personne, avec les probabilités jointes pour faciliter l’arbitrage.

Le seuil dépend du coût d’une erreur. Router un message vers le mauvais service se corrige en une minute. Déclencher un remboursement, non. Commencez haut, observez les cas transmis en relecture, puis ajustez avec l’équipe concernée. L’extrait ci-dessous n’est pas du code officiel : c’est une proposition de La Refonte, à adapter à vos fonctions.

Règle de décision côté Worker : agir ou transmettre (proposition La Refonte)
const { department, is_urgent } = response.answers
const SEUIL = 0.85

if (department.confidence >= SEUIL) {
  await routeTo(department.choice, { urgent: is_urgent.noul >= 0.8 })
} else {
  await sendToHumanReview({ message, answers: response.answers })
}

Étape 5 : évaluer un état structuré plutôt qu’un texte

Le « state » peut être un objet. C’est utile quand la décision dépend de plusieurs sources : le message du client, la commande concernée et la règle interne. Les consignes des questions peuvent alors désigner les champs de l’objet. L’exemple officiel ci-dessous évalue une double facturation contre une politique de remboursement, en deux questions « noul ».

État structuré : ticket, commande et politique évalués ensemble (source : fiche modèle Cloudflare)
const response = await env.AI.run(
  'typesafe/jev',
  {
    state: {
      ticket: {
        subject: 'Duplicate charge',
        message: 'I was charged twice for order A-104. Please refund the duplicate.',
      },
      order: {
        id: 'A-104',
        charges: [
          { amount_usd: 49, status: 'captured' },
          { amount_usd: 49, status: 'captured' },
        ],
      },
      refund_policy: 'Duplicate charges are eligible for a refund.',
    },
    questions: {
      refund_requested: { type: 'noul', instructions: 'Does `ticket.message` request a refund?' },
      policy_supports_refund: {
        type: 'noul',
        instructions:
          'Does `refund_policy` support the refund requested in `ticket.message`, given `order.charges`?',
      },
    },
  },
)

Ce que la démo publique askjev.ai permet d’observer

askjev.ai est une démo publique construite sur Convex et l’API TypeSafe, non affiliée à l’éditeur. Elle pose six questions typées à Jev pour chaque message et affiche la latence et le coût rapportés par son serveur. Le 18 septembre 2026 à 20 h 17 UTC, 172 appels étaient lisibles sur son mur public.

Latence sur ces 172 appels : 117 ms au minimum, 188 ms en médiane, 395 ms au 95e centile. Le maximum atteint 622 ms. Coût affiché : 18 442 messages pour 0,8191 $, soit 0,0000444 $ par appel. Cela représente environ 1 057 tokens en entrée par message. Le 19 septembre, le compteur indiquait 18 870 messages pour 0,8385 $.

Notre test du 19 septembre porte sur la question « is a quote request for a new site urgent ». Verdict : « it depends » à 92 %, ton « flat » à 97 %, sujet « work » à 99 %. Formulée sans contexte, la question est réellement ambiguë et le modèle le dit par sa probabilité. C’est le cas typique où le seuil renvoie vers une personne.

Trois limites à garder en tête. Les questions sont fixées par la démo, pas par votre schéma service, urgence, ton. La démo n’accepte que des mots anglais : c’est un filtre de l’application, pas une limite documentée de Jev. Enfin, la latence est celle du serveur de la démo, pas celle d’un Worker chez vous.

01

Minimum

Latence relevée
117 ms
Lecture pour un Worker
Plancher observé, hors réseau client
02

25e centile

Latence relevée
156 ms
Lecture pour un Worker
Un quart des appels sous 0,16 s
03

Médiane

Latence relevée
188 ms
Lecture pour un Worker
La moitié des appels sous 0,19 s
04

75e centile

Latence relevée
283 ms
Lecture pour un Worker
Trois quarts des appels sous 0,29 s
05

95e centile

Latence relevée
395 ms
Lecture pour un Worker
Repère pour fixer un délai d’attente
06

Maximum

Latence relevée
622 ms
Lecture pour un Worker
Prévoir une reprise si le modèle ne répond pas
Latences rapportées par le backend de la démo askjev.ai sur 172 appels lus le 18 septembre 2026 (6 questions par appel, moyenne 222 ms). Limites : questions fixes, anglais seulement, serveur de la démo. Ce ne sont pas des mesures La Refonte depuis un Worker.
Résultat de notre question sur askjev.ai : verdict « it depends » à 92 %, ton « flat » à 97 %, sujet « work » à 99 %, et compteurs de la démo : 18 870 messages pour 0,8385 $ dépensés.
Notre test sur askjev.ai le 19 septembre 2026 : « is a quote request for a new site urgent » est jugé « it depends » à 92 %. Les compteurs de coût sont ceux de la démo, pas d’un Worker La Refonte.

Prêt pour quoi, pas prêt pour quoi

Au vu de la documentation et des relevés, Jev sur Workers AI convient aux décisions fermées, fréquentes et réversibles : trier, prioriser, étiqueter. Il ne remplace ni un modèle de langage pour rédiger, ni une personne pour trancher un cas ambigu. La place d’un tel modèle dans un processus plus large est décrite dans notre article sur les agents IA en entreprise.

Le modèle étant un service tiers, vérifiez où transitent les données. Un message client peut contenir des informations personnelles : n’envoyez que ce qui sert la décision. Les conditions d’utilisation du modèle sont celles de TypeSafe AI, référencées sur la fiche Cloudflare. Le tableau et la liste ci-dessous résument ce qu’il faut cadrer avant la production.

01

Router un message vers le bon service

Pas prêt pour
Rédiger la réponse au client
Pourquoi
Jev évalue, il ne génère pas de texte
02

Prioriser une file de tickets

Pas prêt pour
Déclencher un remboursement sans relecture
Pourquoi
Une erreur irréversible exige une personne
03

Étiqueter un ton ou une urgence

Pas prêt pour
Trancher un cas que le modèle juge ambigu
Pourquoi
Sous le seuil, la probabilité dit « it depends »
04

Un pilote avec journal des décisions

Pas prêt pour
Un volume dimensionné sur un prix supposé
Pourquoi
Le tarif Jev sur Cloudflare n’est pas public
05

Des consignes testées sur vos messages

Pas prêt pour
Une généralisation en français sans test
Pourquoi
La documentation ne montre que de l’anglais
Synthèse à la date de rédaction : à gauche, les usages compatibles avec ce que la fiche et les relevés montrent ; à droite, ce qui demande une personne, un test ou un chiffre vérifié.

Pour aller plus loin

Pour comparer cette approche à d’autres modèles IA disponibles, direction le comparatif des modèles IA. Pour choisir l’outil adapté à chaque étape d’un processus, lisez modèle de décision ou LLM. Pour apprendre à cadrer ce type d’automatisation avec ses garde-fous, le parcours IA de La Refonte en présente le programme.

Sources

Dernière mise à jour : 19 septembre 2026

Cadrer une automatisation avec un modèle de décision

La Refonte accompagne les équipes qui veulent brancher une décision IA sur un processus réel, avec seuil, journal et relecture humaine.

En savoir plus

Questions fréquentes

Non. Sur Workers AI, le modèle s’appelle par l’identifiant typesafe/jev avec un compte Cloudflare et un binding AI. Il s’agit d’un modèle tiers routé par la plateforme. Sa facturation apparaît dans le tableau de bord Cloudflare, et ses conditions d’utilisation sont celles de TypeSafe AI, référencées sur la fiche modèle.

Pour aller plus loin

Sur le même sujet

Voir tout le blog

Sans engagement, sans jargon

On regarde votre site ensemble ?

Trente minutes pour identifier ce qui freine votre visibilité et repartir avec les priorités dans le bon ordre.

Discutons de votre projet

30 min · Google Meet

Choisissez le créneau qui vous convient dans notre calendrier. On analyse votre situation avant l’appel pour aller droit au but.