À retenir
- Decisions API : endpoint spécialisé pour la classification et le routage, latence ~150 ms, contrainte de sortie stricte (choix parmi une liste prédéfinie). Basé sur GPT-6 Luna, encore en preview limitée.
- Responses API : API stateful qui remplace Chat Completions, gère plusieurs tours de modèle et appels d'outils en une seule requête. Généralement disponible depuis mai 2025.
- Différence fondamentale : Decisions répond à une question fermée (choix parmi une liste) ; Responses gère des conversations et workflows ouverts.
- Complémentarité : un agent peut utiliser Decisions pour les décisions rapides et Responses pour les interactions longues.
- Choix : Decisions si priorité à la vitesse et à la contrainte ; Responses si besoin d'état et de flexibilité.
Vous développez un agent qui doit router des tickets support, modérer du contenu ou décider de la prochaine action en moins de 200 ms. Mais vous avez aussi besoin d'un assistant conversationnel capable de chercher des fichiers, exécuter du code et enchaîner des appels d'outils. OpenAI propose désormais deux APIs distinctes : Decisions API et Responses API. Laquelle choisir ? Et surtout, comment les combiner ?
Ce guide vous donne une comparaison technique complète, des extraits de code prêts à l'emploi, une matrice de décision par profil, et les pièges à éviter. Nous avons analysé la documentation officielle, les retours de la communauté et les benchmarks disponibles pour vous offrir un verdict clair. L'écosystème OpenAI évolue vite, et cette nouvelle distinction entre "décision" et "réponse" est source de confusion : cet article a été conçu pour y voir clair, avec des exemples concrets de code et d'architecture.
Note : Cet article est rédigé par The Intelligence Academy, organisme de formation certifié Qualiopi spécialisé dans l'IA générative. Nous formons les développeurs et les équipes produit à maîtriser les APIs OpenAI, de l'intégration au déploiement en production.
Qu'est-ce que l'OpenAI Decisions API ?
Annoncée le 29 septembre 2026 lors de l'OpenAI DevDay, la Decisions API est un endpoint spécialisé pour la classification et le routage. Elle contraint le modèle GPT-6 Luna à choisir parmi une liste finie de réponses prédéfinies, avec une latence annoncée de ~150 ms (source: OpenAI DevDay 2026). Le modèle ne génère pas de texte libre : il retourne une sélection parmi les options fournies, accompagnée d'un score de confiance.
💡 Bon à savoir : La contrainte de sortie est obtenue par un décodage restreint : OpenAI masque les tokens pour forcer la réponse à correspondre exactement à l'une des options de votre liste. Cela élimine le besoin de parsing et de validation en aval, et réduit aussi les risques d'injection.
Le score de confiance renvoyé n'est pas une probabilité de classification classique. Il s'agit d'une probabilité calibrée sur la distribution de sortie du modèle : un score de 0,92 correspond bien à une confiance de 92 % dans les faits. C'est un point important pour les systèmes de production : vous pouvez définir un seuil (par exemple 0,85) sous lequel la décision est transmise à un humain ou à un autre modèle. Cela permet de construire des boucles de validation humaine sans ajouter de complexité.
Latence ultra-faible
~150 ms par décision, contre 1,6 s pour un appel standard à GPT-6 Luna. Cette différence de facteur 10 change la donne pour les systèmes temps réel.
Sortie contrainte
L'espace des réponses est fixé avant l'inférence, éliminant le besoin de parsing et de validation. La réponse est soit valide, soit absente.
Score de confiance
Chaque décision retourne une probabilité calibrée, utile pour le seuillage ou la délégation. Vous pouvez router les décisions les moins sûres vers un opérateur humain.
Sécurité renforcée
Pas de génération de texte libre, réduisant les risques d'injection ou de contenu non désiré. Le modèle ne peut pas "sortir du cadre" de la liste fournie.
Quels sont les cas d'usage idéaux de Decisions API ?
- 🎫 Routage de tickets support : catégoriser une requête entrante (facturation, technique, réclamation) et l'assigner à la bonne file d'attente. Avec une latence de 150 ms, la classification se fait en temps réel, avant même que l'utilisateur ait fini de taper.
- 🛡️ Modération de contenu : décider si un message doit être publié, mis de côté ou supprimé. La contrainte de sortie garantit que la décision est toujours l'une des trois options prévues.
- 🤖 Choix de la prochaine action d'un agent : appeler l'outil A, l'outil B, ou répondre directement à l'utilisateur. C'est le cas d'usage le plus puissant : vous branchez la décision sur votre orchestrateur, qui exécute l'action correspondante.
- 📊 Classification binaire ou multi-classes en temps réel : détection de spam, analyse de sentiment rapide, détection de langue. Dès qu'il s'agit de choisir une catégorie parmi un ensemble fermé, Decisions API est pertinente.
Prenons un exemple concret. Vous exploitez une marketplace et vous recevez 10 000 messages par jour. Chaque message doit être routé vers l'un des 15 services internes. Avec Decisions API, vous envoyez le message et la liste des 15 services possibles ; le modèle retourne le bon service en 150 ms avec un score de confiance. Le coût est fixe et prévisible, contrairement à une approche par génération de texte.
Quelles sont les limitations actuelles de Decisions API ?
- Preview limitée : le endpoint
/v1/decisionsrenvoie 403 pour les utilisateurs non autorisés (source : eesel.ai). - Pas de documentation publique ni de schéma officiel (source : FireCrawl blog).
- Nombre d'options limité : la liste des réponses possibles doit être fournie à chaque requête. Il n'y a pas de mécanisme de "réutilisation" d'une liste : chaque appel est autonome, ce qui peut augmenter la consommation de tokens si vos listes sont longues.
- Pas de gestion d'historique : chaque décision est indépendante. Si vous avez besoin de décider en fonction du contexte d'une conversation, c'est à vous de fournir ce contexte dans la requête.
💡 Bon à savoir : La Decisions API est encore en preview limitée. Ne construisez pas une architecture critique sans plan B. OpenAI prévoit un déploiement large "dans les jours à venir" (DevDay recap), mais aucune date ferme n'est communiquée.
Qu'est-ce que l'OpenAI Responses API ?
Introduite en mai 2025, la Responses API est l'évolution de l'API Chat Completions. Elle est stateful : l'historique de conversation est géré par OpenAI, l'appelant envoie seulement le dernier message. Elle supporte les appels d'outils multi-tours, le code interpreter, file_search, et les connexions MCP en un seul appel API (source : Hacker News).
Le principe est simple : au lieu de gérer vous-même l'historique des messages (comme avec Chat Completions), vous laissez OpenAI le faire. Vous envoyez le nouveau message, et l'API s'occupe de tout : elle rappelle le contexte, exécute les outils nécessaires, puis retourne la réponse finale. Cela simplifie considérablement le code client, surtout pour les workflows multi-tours où le modèle doit enchaîner plusieurs appels d'outils avant de produire une réponse.
Stateful par défaut
Gère l'historique de conversation automatiquement (store=true). Peut être utilisé en stateless via store=false.
Multi-tours d'outils
Effectue plusieurs tours de modèle et appels d'outils dans une seule requête API. Le modèle décide seul de la séquence d'outils à appeler.
Intégrations natives
Code interpreter, file_search, connexions MCP et appels d'outils personnalisés dans une même boucle d'exécution.
Unification des expériences
Supporte texte, audio et temps réel dans une même primitive.
Quand utiliser Responses API ?
- Workflows multi-outils : chercher des informations dans un fichier, exécuter du code Python, puis appeler une API MCP pour finaliser une action. La Responses API orchestre tout cela en une seule requête.
- Applications nécessitant plusieurs tours de raisonnement : un agent qui doit réfléchir, vérifier, puis répondre. La boucle d'exécution intégrée permet au modèle de faire plusieurs passages avant de produire la réponse finale.
- Remplacement de Chat Completions : considéré comme legacy, l'ancien endpoint est voué à être déprécié. La migration est simple (nous la détaillons plus bas) et apporte la gestion d'état et les outils en bonus.
💡 Bon à savoir : La Responses API est généralement disponible, avec documentation complète et support SDK Python, Node, Go. OpenAI recommande de migrer depuis Chat Completions (source : OpenAI Migrate to Responses).
⭐ Différences fondamentales : Decisions API vs Responses API
Les deux APIs répondent à des besoins distincts. Voici la comparaison point par point.
Ce que Decisions vs Responses change concrètement pour vous
- Si vous faites de la classification en temps réel (modération, routage) : Decisions API est taillée pour ça. Vous gagnez un facteur 10 en latence et vous supprimez le parsing.
- Si vous construisez un agent conversationnel (support client, assistant personnel) : Responses API est indispensable pour gérer l'état et les appels d'outils.
- Si vous faites les deux : utilisez Decisions pour les décisions rapides et Responses pour les interactions longues, au sein du même système.
💡 Bon à savoir : Ces deux APIs sont complémentaires, pas concurrentes. Par exemple, un assistant de support client peut utiliser Decisions API pour router un message en 150 ms, puis Responses API pour gérer la conversation complète avec historique et outils.
Prenons l'exemple d'un assistant de support client nouvelle génération. À la réception d'un message, Decisions API détermine en 150 ms s'il s'agit d'une demande de remboursement, d'une question technique, ou d'une réclamation. Selon la catégorie, le message est ensuite transmis à un agent Responses API spécialisé : l'agent de remboursement (qui a accès à l'outil de remboursement), l'agent technique (qui a accès à la base de connaissances), etc. Chaque agent Responses API gère ensuite la conversation complète, avec historique et appels d'outils.
⭐ Comment migrer de Chat Completions à Responses API
Pour migrer de Chat Completions à Responses API, suivez ces quatre étapes : auditer votre code, adapter les appels, gérer l'état, et tester. OpenAI recommande la migration vers Responses API. Voici comment procéder.
Auditer votre code existant
Repérez tous les appels à l'API Chat Completions (/v1/chat/completions). Listez les modèles utilisés, les paramètrès (temperature, max_tokens, tools, etc.) et les endpoints concernés. C'est aussi le moment de recenser les usages de function_call : ils seront remplacés par le paramètre tools.
Adapter les appels API
Remplacez l'endpoint par /v1/responses. La structure change : au lieu de messages, vous envoyez input (le dernier message) et previous_response_id (optionnel) pour le contexte. Les outils sont passés dans tools. La réponse inclut désormais une liste d'items (messages, appels d'outils, résultats) que vous pouvez itérer pour construire votre réponse finale.
Gérer l'état et l'historique
Activez store=true pour que OpenAI gère l'historique. Sinon, passez store=false et gérez vous-même les previous_response_id. Pour les conversations longues, store=true simplifie considérablement le code : vous n'avez plus à renvoyer tout l'historique à chaque appel.
Tester et valider
Vérifiez que les réponses sont identiques (ou meilleures) en termes de qualité. Testez les cas d'erreur, le rate limiting et le streaming si utilisé. Prévoyez un jeu de tests de non-régression avec des cas limites (conversations tronquées, outils en erreur, etc.).
Exemple de code complet (Python)
# Avant (Chat Completions)
response = client.chat.completions.create(
model="gpt-6-luna",
messages=[
{"role": "system", "content": "Vous êtes un assistant."},
{"role": "user", "content": "Quel temps fait-il ?"}
],
tools=[{"type": "function", "function": {"name": "get_weather"}}]
)
# Après (Responses API)
response = client.responses.create(
model="gpt-6-luna",
input="Quel temps fait-il ?",
store=True,
tools=[{"type": "function", "name": "get_weather", "parameters": {...}}]
)
Conseil : Utilisez le paramètre store=True pour les conversations longues. Pour des appels ponctuels sans historique, store=False est plus économique. Pour approfondir, consultez [LIEN_INTERNE: notre guide complet sur l'API OpenAI en Python → /blog/guide-api-openai-python].
⭐ Matrice de décision : Quelle API pour quel besoin ?
Pour vous aider à choisir, voici une matrice selon votre profil.
Pour vous aider à choisir, nous avons détaillé chaque API dans notre comparatif des modèles OpenAI 2026.
- Latence critique (< 500 ms) → Decisions API
- Besoins conversationnels complexes → Responses API
- Contrainte de sortie stricte (pas de texte libre) → Decisions API
- État persistant → Responses API (store=True)
- Multi-tours d'outils → Responses API
- Coût minimal → Decisions API (décisions unitaires moins chères que tokens de raisonnement)
La Decisions API ne génère pas de texte, même court. Si vous avez besoin d'une réponse textuelle (même d'une phrase), utilisez Responses API avec structured outputs.
Erreurs courantes à éviter
Voici les erreurs que nous avons vues dans les retours de la communauté et dans nos propres tests.
Utiliser Decisions API pour des réponses textuelles
La Decisions API ne génère pas de texte. Elle choisit parmi une liste. Pour une réponse textuelle, utilisez Responses API.
Oublier le rate limiting
Les deux APIs ont des limites différentes. Vérifiez les rate limits pour chaque endpoint.
Ignorer le coût des tokens dans Responses API
Les appels multi-tours peuvent consommer beaucoup de tokens. Estimez le coût avant de passer en production.
Supposer que Decisions API est disponible pour tous
Actuellement en preview limitée. Testez avec un compte autorisé ou prévoyez une alternative (Jev, Laya).
Astuce : Pour les applications critiques, combinez les deux APIs : utilisez Decisions API pour le routage initial, puis Responses API pour la conversation. Cela vous donne le meilleur des deux mondes.
FAQ
Quelle est la différence entre Decisions API et Responses API ?
La Decisions API est un endpoint spécialisé pour la classification et le routage, avec une latence de ~150 ms et une sortie contrainte (choix parmi une liste). La Responses API est une API stateful qui gère des conversations et des workflows multi-outils, avec une latence variable. Decisions répond à une question fermée ; Responses gère des interactions ouvertes.
La Decisions API remplace-t-elle la Responses API ?
Non. Decisions API est conçue pour des décisions rapides et contraintes ; Responses API pour des interactions agentiques complexes. OpenAI recommande d'utiliser les deux selon le besoin.
Puis-je utiliser les deux APIs ensemble ?
Oui, c'est même recommandé pour les systèmes hybrides. Par exemple, utilisez Decisions API pour router une requête vers le bon agent, puis Responses API pour la conversation avec cet agent.
La Decisions API est-elle moins chère que la Responses API ?
Le prix unitaire d'une décision est estimé à ~0,047 $ pour 1 000 décisions (source : eesel.ai), ce qui est généralement moins cher qu'un appel Responses API qui consomme des tokens de raisonnement. Cependant, le coût total dépend du volume et de la complexité.
Quand la Decisions API sera-t-elle disponible pour tous ?
La Decisions API est actuellement en preview limitée pour clients sélectionnés. OpenAI n'a pas encore communiqué de date de disponibilité générale. Restez informé via leur DevDay recap.
Puis-je utiliser Decisions API pour de la modération de contenu en français ?
Oui, la Decisions API fonctionne avec toutes les langues supportées par GPT-6 Luna, y compris le français. Il suffit de fournir la liste des catégories de modération en français. Le score de confiance est particulièrement utile ici : vous pouvez définir un seuil (par exemple 0,9) au-dessus duquel le contenu est automatiquement supprimé, et en dessous duquel il est transmis à un modérateur humain.
Que se passe-t-il si Decisions API ne retourne aucune option avec un score suffisant ?
Si Decisions API ne retourne aucune option avec un score suffisant, prévoyez un comportement de repli dans votre code : renvoyer une erreur, transmettre la requête à un modèle plus puissant via Responses API, ou demander une clarification à l'utilisateur. C'est une bonne pratique : ne jamais supposer que la décision sera toujours nette.
Conclusion : le verdict final
Decisions API et Responses API ne sont pas en compétition : elles répondent à des besoins différents. Si vous devez classer, router ou décider en moins de 200 ms, Decisions API est votre meilleure option. Si vous construisez un agent conversationnel ou un workflow multi-outils, Responses API est indispensable.
Notre recommandation : adoptez les deux. Utilisez Decisions pour les décisions rapides et Responses pour les interactions longues. Cette approche vous donne une architecture à la fois rapide et flexible. Pour aller plus loin, découvrez [LIEN_INTERNE: notre comparatif des modèles OpenAI 2026 → /blog/modèles-openai-2026] et [LIEN_INTERNE: notre guide sur les agents conversationnels IA → /blog/agents-ia-conversationnels].
L'écosystème OpenAI évolue rapidement. La Decisions API n'est qu'un premier pas vers des modèles de décision spécialisés, et la Responses API continuera de s'enrichir. Ce qui est certain, c'est que les deux APIs vont coexister pendant longtemps : les développeurs qui les maîtrisent toutes les deux auront une longueur d'avance.
À retenir
- Pour les décisions rapides : Decisions API, avec sa latence de 150 ms et sa sortie contrainte.
- Pour les conversations complexes : Responses API, avec sa gestion d'état et ses appels d'outils.
- Pour les architectures hybrides : combinez les deux APIs pour un système à la fois rapide et flexible.
Pour aller plus loin
Envie de passer à la pratique ? Notre formation dédiée vous accompagne pour appliquer tout ça à votre métier.
Ressources et liens utiles
- OpenAI DevDay 2026 recap — Annonce de la Decisions API
- OpenAI Migrate to Responses API — Guide officiel de migration
- FireCrawl blog — Analyse détaillée de Decisions API vs Jev
- eesel.ai — Estimation des coûts de Decisions API
- Medium article — Comparaison decision model vs language model
- OpenAI API Pricing — Grille tarifaire officielle
- OpenAI Rate Limits — Documentation des limites
