OpenAI Decisions API vs Jev :

API Décisions vs Jev : 0,10 $ contre 0,042 $ par million de jetons d'entrée, images contre texte seulement, questions sous forme de tableau contre questions avec clés, bêta contre accès anticipé. Même requête sous les deux formes.

Ashley Innocent

Ashley Innocent

10 October 2026

OpenAI Decisions API vs Jev :

Apidog pour les entreprises

Déploiement sur site

SSO & RBAC

Conforme SOC 2

Découvrir Apidog Enterprise

L'API OpenAI Decisions et Jev de TypeSafe remplissent la même fonction : envoyer une entrée et un ensemble de questions, obtenir en retour des réponses typées avec des probabilités au lieu de texte à analyser, et ne payer que pour les jetons d'entrée. Decisions coûte 0,10 $ par million de jetons d'entrée, est en bêta publique, accepte le texte et les images, et fonctionne sur GPT-6 Luna. Jev coûte 0,042 $ par million de jetons d'entrée, est en accès anticipé derrière un compte console TypeSafe, est uniquement textuel, et limite chaque requête à 64 000 jetons.

Pour les bases, commencez par ce qu'est l'API Decisions et comment utiliser Jev. Cet article les compare ligne par ligne, puis les intègre tous les deux dans un seul projet Apidog derrière une seule règle de confiance.

button

Comparaison côte à côte

Chaque cellule provient des pages des fournisseurs citées dans les références.

API OpenAI Decisions TypeSafe Jev
Point d'accès (Endpoint) POST /v1/decisions POST /v1/systemone
Modèle gpt-6-luna uniquement jev-1.13.0 (jev-latest)
Statut bêta publique, GA "dans les semaines à venir" accès anticipé (article de lancement), accès direct limité par un compte console
Entrée texte + images (URL de données base64 ; la référence liste également les URL publiques) texte uniquement, 64 000 par requête
Types de questions predicate / choice (2 à 255 options) / score noul / choice / score
Format des questions tableau avec un nom facultatif objet indexé par identifiant
Champs de sortie probability ; choice ou score + probabilities + confidence ; refusal noul ; choice ou score + confidence + probabilities
Prix 0,10 $ par million d'entrées, pas de frais de sortie 0,042 $ par million d'entrées, pas de frais de sortie
Mise en cache aucun pour l'instant (forum OpenAI) non publié
Limites de débit page des limites par organisation 100K TPS / 80 RPS, dynamique
Revendication de vitesse "environ 10x plus rapide que l'API Réponses" (OpenAI) 70 à 500 ms de bout en bout (TypeSafe)
Données ZDR + HIPAA pour les clients éligibles ; résidence US/UE ZDR pour les entreprises ; non entraîné sur les requêtes

Decisions est un point d'accès (endpoint), pas un modèle ; il fonctionne sur GPT-6 Luna. Jev est le "modèle System One" de TypeSafe, entraîné avec RLCD pour renvoyer des décisions calibrées, et non un LLM général.

La même requête de routage de ticket sous les deux formats

Un ticket de support arrive ; vous voulez un service plus un oui/non quant à savoir si le client souhaite un remboursement. Decisions d'abord : les questions sont un tableau, chacune avec un type, des instructions et un name facultatif que l'API renvoie.

curl https://api.openai.com/v1/decisions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-luna",
    "input": "I was charged twice for my order.",
    "questions": [
      {
        "type": "choice",
        "name": "department",
        "instructions": "Which team should handle this ticket?",
        "choices": [
          {"value": "billing", "description": "Charges, refunds"},
          {"value": "technical", "description": "Bugs, errors"},
          {"value": "other"}
        ]
      },
      {
        "type": "predicate",
        "name": "wants_refund",
        "instructions": "Is the customer asking for money back?"
      }
    ]
  }'

Maintenant Jev : le champ d'entrée est state, les questions sont un objet indexé par les identifiants que vous choisissez, choice prend une carte criteria d'option à description, et le type oui/non est noul.

curl https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "I was charged twice for my order.",
    "questions": {
      "department": {
        "type": "choice",
        "instructions": "Which team should handle this ticket?",
        "criteria": {
          "billing": "Charges, refunds",
          "technical": "Bugs, errors",
          "other": "Anything else"
        }
      },
      "wants_refund": {
        "type": "noul",
        "instructions": "Is the customer asking for money back?"
      }
    }
  }'

Ce qui est renvoyé

Decisions renvoie model, answers et usage. Les réponses arrivent dans l'ordre demandé, chacune avec son name ; les probabilités par option sont un tableau d'objets. Notez output_tokens: 0.

{
  "model": "gpt-6-luna",
  "answers": [
    {
      "type": "choice",
      "name": "department",
      "choice": "billing",
      "probabilities": [
        {"value": "billing", "probability": 0.95},
        {"value": "technical", "probability": 0.02},
        {"value": "other", "probability": 0.03}
      ],
      "confidence": 0.93
    },
    {"type": "predicate", "name": "wants_refund", "probability": 0.95}
  ],
  "usage": {
    "input_tokens": 42,
    "input_tokens_details": {"cached_tokens": 0, "cache_write_tokens": 0},
    "output_tokens": 0,
    "output_tokens_details": {"reasoning_tokens": 0},
    "total_tokens": 42
  }
}

Jev renvoie model (l'ID versionné), un objet answers indexé par vos identifiants de question, et usage avec input_tokens et output_tokens. Vous lisez answers.department.choice, sa confidence et les probabilities indexées par nom d'option, plus answers.wants_refund.noul. Du côté d'OpenAI uniquement, une réponse de refusal peut apparaître par question tandis que les autres obtiennent toujours des réponses.

Prix par million, et ce que coûte un million de tickets

Formulation d'OpenAI : avec gpt-6-luna, l'entrée coûte 0,10 $ par million de jetons, sans frais de lecture de cache, d'écriture de cache ou de jetons de sortie. TypeSafe liste 0,042 $ par million de jetons d'entrée et une sortie gratuite.

Prenons un ticket de 500 jetons avec les deux questions ci-dessus :

Deux multiplicateurs s'appliquent du côté d'OpenAI : l'entrée à long contexte (plus de 272 000 jetons) est 2x, soit 0,20 $ par million, selon la page de tarification, et le traitement régional ajoute 10 %. Aucun niveau Batch, Flex ou Fast n'est documenté pour /v1/decisions, et selon le forum d'OpenAI, il n'y a pas encore de mise en cache des prompts, bien que usage contienne les champs cached_tokens et cache_write_tokens. Jev ne publie rien sur la mise en cache.

Entrées : images d'un côté, texte de l'autre

Decisions accepte une chaîne de caractères ou un tableau de messages utilisateur mélangeant des parties input_text et input_image. Le guide indique que les images doivent être des URL de données base64 intégrées ; la référence de l'API liste également les URL HTTP(S) publiques et jusqu'à 128 images par requête, il faut donc considérer base64 comme la méthode sûre et tester les URL hébergées avant de s'y fier. file_id, les fichiers et l'audio ne sont pas pris en charge.

Jev est uniquement textuel : une chaîne de caractères, un objet JSON ou un tableau de texte, sans entrée d'image, d'audio ou de vidéo selon la page des modèles de TypeSafe. Sur le forum d'OpenAI, sam.saffron l'a dit clairement : la compréhension d'images est quelque chose que Jev ne supporte pas encore. Si votre décision dépend d'une photo, seule Decisions peut l'examiner.

Contexte et limites de débit

Jev publie une limite de 64 000 jetons par requête, dont 32 000 pour state plus la question la plus longue, et indique qu'il ingère l'état une fois et évalue chaque question en parallèle. Sa page des modèles liste 100 000 jetons par seconde et 80 requêtes par seconde, s'ajustant dynamiquement, avec un 429 en cas de dépassement de la limite. Ces chiffres ont changé depuis septembre, il faut donc consulter la page en direct.

OpenAI ne publie aucun chiffre de fenêtre de contexte ni de limite de débit spécifique à Decisions ; la fenêtre de 1 050 000 jetons de Luna est un chiffre de la page du modèle, et non un chiffre de point d'accès. Vérifiez Paramètres > Organisation > Limites (guide des limites de débit) ; notre guide des limites de débit couvre la gestion des 429 de chaque côté.

Statut et accès

Decisions est passé en bêta publique le 06/10/2026, ouverte à tous les développeurs selon l'annonce ; le guide indique qu'OpenAI s'attend à une disponibilité générale (GA) "dans les semaines à venir", sans date précise.

Jev est en accès anticipé selon l'article de lancement de TypeSafe, qui mentionne une liste d'attente, et l'accès direct à api.typesafe.ai est derrière un compte console TypeSafe ; comment accéder à Jev explique les routes et la clé API Jev couvre la création de clés. La deuxième route est Vercel AI Gateway, où Jev est typesafe-ai/jev, appelé via experimental_evaluate dans le SDK AI (7.0.105 ou ultérieur), selon le changelog de Vercel ; la documentation d'évaluation de Vercel indique qu'il n'est pas exposé sur le point d'accès compatible OpenAI de la Gateway, et là le type oui/non est boolean, renvoyant la probabilité de vrai.

Contrôles des données

OpenAI indique que Decisions prend en charge la Rétention Zéro des Données (Zero Data Retention) et l'utilisation HIPAA pour les clients éligibles, avec résidence des données et traitement régional aux États-Unis et en Europe (EEE plus Suisse) ; la page des contrôles de données ajoute que les journaux de surveillance des abus pour /v1/decisions sont conservés jusqu'à 30 jours par défaut. TypeSafe indique que Jev n'est pas entraîné sur les requêtes ou les réponses des clients, offre le ZDR pour les clients entreprises et exécute les mêmes poids pour chaque compte.

Aucun des deux fournisseurs ne publie de chiffres de précision ou de calibration ; le guide d'OpenAI vous dit de définir des seuils à partir de vos propres exemples étiquetés, et cela s'applique également à Jev.

Vitesse, puis lequel choisir

OpenAI indique que Decisions est environ 10 fois plus rapide que l'API Réponses et ne publie aucun chiffre de latence absolue ; un développeur sur le forum OpenAI a signalé des décisions d'entrée d'image en environ 0,8 seconde sur une connexion lente. TypeSafe cite 70 ms à 500 ms de bout en bout pour Jev. Ces mesures ne sont pas comparables, alors chronométrez les deux sur vos propres tickets.

Choisissez Decisions lorsque l'entrée inclut des images, lorsque vous êtes déjà sur OpenAI et que vous voulez une seule clé et une seule facture, ou lorsque vous avez besoin d'une couverture HIPAA sous un BAA OpenAI. Choisissez Jev lorsque l'entrée est du texte, lorsque le prix par jeton inférieur est important pour votre volume, ou lorsque vous êtes déjà sur Vercel AI Gateway.

Faire fonctionner les deux pendant quelques semaines est judicieux : évaluez chacun par rapport au même ensemble étiqueté, conservez la meilleure courbe de seuil et gardez l'autre comme solution de secours. Si la vraie question est Decisions versus une étiquette de Sorties Structurées, voir Decisions vs Réponses ; si aucun des deux fournisseurs ne correspond à votre politique de données, des alternatives open-source à Jev existent.

Testez les deux dans un seul projet Apidog

Deux environnements. Créez OpenAI avec OPENAI_API_KEY et TypeSafe avec TYPESAFE_API_KEY, chacun avec la valeur dans le champ local afin qu'elle ne soit jamais synchronisée avec l'équipe (environnements et variables secrètes couvre la portée).

Deux requêtes sauvegardées. POST https://api.openai.com/v1/decisions avec Bearer {{OPENAI_API_KEY}} et le premier corps ci-dessus ; POST https://api.typesafe.ai/v1/systemone avec Bearer {{TYPESAFE_API_KEY}} et le second.

Une règle d'assertion, appliquée deux fois. La règle métier : une confiance supérieure à 0,8 achemine automatiquement le ticket, tout ce qui est inférieur va dans une file d'attente de révision. Sur la requête Decisions, affirmez le statut 200, $.answers[0].choice égal à billing, $.answers[0].confidence supérieur à 0,8, et $.usage.output_tokens égal à 0. Sur la requête Jev, affirmez que $.answers.department.choice est égal à billing et que $.answers.department.confidence est supérieur à 0,8.

Un scénario basé sur les données. Placez vingt tickets étiquetés dans un CSV avec le service attendu, exécutez les deux requêtes dessus comme scénario de test, et voyez quelle API a sa confiance qui tombe en dessous de 0,8 sur les lignes ambiguës. C'est ainsi que vous choisissez les seuils, et cela détecte un changement de modèle avant que les tickets ne soient mal acheminés.

Simulez les deux formats. Enregistrez une réponse Decisions et une réponse Jev comme mocks afin que le frontend puisse être construit sur un tableau answers et un objet answers stables ; la simulation de réponses conditionnelles renvoie le cas de faible confiance à la demande pour exercer la branche de la file d'attente de révision.

Exécutez-le en CI. Exécutez le scénario avec l'Apidog CLI (apidog run avec le rapporteur cli ou junit) à chaque déploiement, de sorte qu'un changement de champ en GA ou une mise à jour de jev-latest rende la build rouge, et non la file d'attente de support. Téléchargez Apidog pour configurer cela.

FAQ

Jev est-il un LLM comme GPT-6 Luna ? Non. TypeSafe décrit Jev comme un modèle System One entraîné avec RLCD pour renvoyer des décisions calibrées ; il ne génère pas de texte. Decisions est un point d'accès sur le modèle polyvalent Luna.

OpenAI a-t-il construit l'API Decisions en réponse à Jev ? Les pages d'OpenAI ne le disent pas, et nous ne l'affirmons pas. Les deux proposent la même idée : des réponses typées avec des probabilités, facturées à l'entrée.

Lequel est le moins cher ? Jev, à 0,042 $ par million de jetons d'entrée contre 0,10 $ ; sur un million de tickets de 500 jetons, 21 $ contre 50 $.

L'un des deux peut-il renvoyer mon propre schéma JSON ? Non. Les deux renvoient des formats de réponse fixes ; pour les champs extraits ou une explication écrite, utilisez les sorties structurées de l'API Réponses.

Étape suivante

Envoyez les deux requêtes curl ci-dessus avec le même ticket, enregistrez-les toutes les deux dans Apidog, et ajoutez l'assertion de confiance de 0,8 à chacune. Ensuite, remplacez-les par vingt de vos propres tickets et voyez quelle API franchit votre seuil le plus souvent. Le guide d'utilisation propose les versions Python et JavaScript.

button

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API