Prompts OpenAI : fin le 30 nov., gardez vos ID pmpt_ et versionnez

Sommaire
  1. Quels services OpenAI ferme-t-il, et quand ?
  2. Comment conserver un appel pmpt_ sans modifier le code ?
  3. Faut-il stocker les prompts dans le code ou dans une bibliothèque ?
  4. Combien coûte un appel de prompt par identifiant ?
  5. Comment essayer une nouvelle version sur une partie du trafic de production ?
  6. Comment tester une version avant sa mise en production ?
  7. Que faire avant le 30 novembre ?
  8. FAQ
  9. Que deviennent les prompts stockés chez OpenAI le 30 novembre 2026 ?
  10. Peut-on continuer à appeler un identifiant pmpt_ après l’arrêt ?
  11. Par quoi remplacer OpenAI Evals ?
  12. Pour aller plus loin

OpenAI arrête les objets prompt réutilisables et l’API v1/prompts le 30 novembre 2026, ainsi que son tableau de bord et son API Evals. OpenAI annonce leur arrêt, sans préciser ce que renverra ensuite un appel à l’API Responses contenant prompt={"id": "pmpt_..."}. Il faut donc déplacer le texte des prompts avant cette date. Nous avons recréé un prompt sous son identifiant pmpt_ dans la bibliothèque de prompts Synthorai, puis dirigé un appel du SDK OpenAI vers la passerelle Synthorai, un proxy API placé entre l’application et les fournisseurs de modèles. Seuls l’URL de base et la clé ont changé : la requête utilisait la version 2 de la bibliothèque lorsqu’elle demandait la version "2", et la version de production lorsqu’elle n’en précisait aucune.

TL;DR

  • Les objets prompt d’OpenAI et l’API v1/prompts s’arrêtent le 30 novembre 2026 ; les évaluations OpenAI passent en lecture seule le 31 octobre.
  • Un appel Responses contenant prompt={"id": "pmpt_...", "version": "2"} a utilisé la version 2 d’un prompt portant cet identifiant dans la bibliothèque Synthorai ; seule l’URL de base a changé.
  • Le déplacement du label de production d’un prompt de la bibliothèque s’est répercuté sur les appels en 8 à 9 s sous trafic continu.
  • Un test défini avant l’exécution a détecté une modification qui enfreignait une règle dans 16% des réponses ; un premier test de 40 cas l’avait validée.

Cet article présente une série de trois guides sur la bibliothèque de prompts. Chaque section résume un guide, donne les mesures obtenues et renvoie au code et aux captures d’écran de la console. Toutes les exécutions datent des 19 et 20 octobre 2026. Le code se trouve sur github.com/synthorai-io/use-cases, dans prompt-library/.

Quels services OpenAI ferme-t-il, et quand ?

La page des dépréciations d’OpenAI annonce deux arrêts à la même date :

ServiceAnnonceChangementArrêt
Prompts réutilisables : objets prompt et API v1/prompts3 juin 2026la création de prompts est moins mise en avant sur la plateforme30 novembre 2026
Plateforme Evals : tableau de bord et API3 juin 2026évaluations existantes en lecture seule à partir du 31 octobre 202630 novembre 2026

Un objet prompt est un prompt enregistré dans le tableau de bord OpenAI et appelé par son identifiant pmpt_, avec éventuellement des versions et des variables. Le guide de migration d’OpenAI recommande de sortir le texte de l’objet prompt pour le placer dans le code de l’application, de le transmettre à l’API Responses via input et de gérer ses versions avec git, des revues de code et des tests. Le guide ne précise pas ce que renverra une requête contenant un identifiant pmpt_ après l’arrêt.

Comment conserver un appel pmpt_ sans modifier le code ?

Il faut recréer le prompt dans une bibliothèque sous le même identifiant et diriger le client vers une passerelle capable de le fournir. La passerelle Synthorai lit le champ prompt des requêtes /v1/responses : si l’identifiant correspond à un prompt de la bibliothèque, elle l’utilise, et un champ version numérique sélectionne la version correspondante. Voici l’appel utilisé dans notre démo. Hormis l’URL de base et la clé, c’est celui qu’envoie une application conçue pour OpenAI :

import os
from openai import OpenAI

# The only change: the base URL and the key.
client = OpenAI(base_url="https://synthorai.io/v1", api_key=os.environ["SYNTHORAI_API_KEY"])

raw = client.responses.with_raw_response.create(
    model="gpt-6-luna",
    prompt={"id": "pmpt_68f2a1c09d4e4b7a8c3f5e21d0b97a64", "version": "2"},
    input="Where is order A-50977? It has been a week.",
)
print(raw.headers["x-synthorai-prompt-version"])   # 2
print(raw.parse().output_text)
AppelVersion utiliséeTokens d’entréeTokens de sortieCoût
prompt={"id": ..., "version": "2"}version 2 de la bibliothèque92177$0.0000977
prompt={"id": ...}version 1 de la bibliothèque, désignée par le label de production96207$0.0001131

Les deux réponses provenaient de GPT-6 Luna, le modèle enregistré dans les versions de la bibliothèque. L’identifiant pmpt_ de la démo est fictif ; pour une migration, utilisez le vôtre. Trois vérifications supplémentaires, effectuées le 20 octobre, couvrent les requêtes qu’une application migrée peut envoyer :

RequêteRésultat
"variables": {"product": "garden tools"} dans promptla valeur a remplacé {{product}} dans la version ; la réponse commençait par « Nous vendons des outils de jardinage en ligne. »
model: "gpt-4o" dans la requêteremplacé par le modèle enregistré dans la version, GPT-6 Luna
"version": "7", une version absente de la bibliothèque404 prompt_not_found, « ne possède pas de version 7 »

La dernière ligne est facile à oublier. Un numéro de version OpenAI correspond à la version de même numéro dans la bibliothèque. Un appel qui impose "version": "7" nécessite donc une v7 dans la bibliothèque. Recréez les versions imposées par votre code dans l’ordre, pour que les numéros correspondent, ou modifiez ces appels pour utiliser la version recréée.

La documentation OpenAI ne décrit aucune API permettant de relire un objet prompt, et nous n’avons trouvé aucun export. Copiez donc le texte et les paramètres de chaque prompt depuis le tableau de bord OpenAI tant qu’ils sont encore accessibles. Dans la console, construisez un corps de requête Responses à partir du texte copié, puis collez-le dans la fonction d’import d’un nouveau prompt. Celle-ci reprend les messages, le modèle, les paramètres, les outils et le schéma de sortie pour créer une première version. Vous pouvez aussi saisir la version dans l’éditeur.

Faut-il stocker les prompts dans le code ou dans une bibliothèque ?

OpenAI recommande le code. Une bibliothèque permet de modifier un prompt sans déploiement, mais ajoute un service sur le chemin des requêtes :

Prompts dans le codePrompts dans une bibliothèque, appelés par identifiant
Mettre une modification en productionmodification du code, revue, déploiementdéplacement d’un label ; pris en compte par les appels en 8 à 9 s lors de nos essais
Revenir en arrièreannuler la modification et déployerreplacer le label
Envoyer 10% du trafic vers une nouvelle versionvotre propre flag ou routeurparamètre de déploiement progressif sur le label
Revuegit diff et pull requestscomparaison des versions dans la console ; les modifications ne figurent pas dans votre dépôt
Tester avant la mise en productionvotre propre outil d’exécution des testsjeux de tests et exécutions d’évaluation associés au prompt
Dépendanceaucune en dehors du fournisseur de modèlesla passerelle doit être accessible pour résoudre le prompt

La dernière ligne est la contrepartie d’une bibliothèque. Si la bibliothèque est inaccessible, la passerelle Synthorai utilise la dernière copie du prompt qu’elle a lue, pendant 24 heures au maximum. Elle ne renvoie une erreur 503 que pour les prompts dont elle ne possède aucune copie récente. Une équipe qui souhaite combiner les deux approches peut exporter un prompt de la bibliothèque avec toutes ses versions au format JSON dans son dépôt.

Combien coûte un appel de prompt par identifiant ?

Un appel par identifiant n’entraîne aucun surcoût : sur 20 paires, les appels par prompt_id ont envoyé une médiane de 114.5 tokens de prompt, autant que les requêtes identiques écrites directement dans le code. La passerelle insère les messages, le modèle et les paramètres de la version, puis envoie une requête ordinaire au fournisseur. Les appels impossibles à traiter, par exemple en cas de variable manquante ou d’identifiant inconnu, échouent avec une erreur 400 ou 404 avant toute exécution du modèle et ne sont pas facturés. Un label est un pointeur nommé, comme production ou staging, qui désigne une seule version à la fois. Après déplacement du label production, les appels ont pris en compte le changement avec une médiane de 8.0 à 8.5 s sous un trafic d’un appel toutes les demi-secondes, et dès le premier appel après 15 s sans trafic. Le guide Gestion des versions de prompts fournit le code, les cinq cas d’erreur et la méthode de mesure des délais.

Comment essayer une nouvelle version sur une partie du trafic de production ?

Vous associez au label production une seconde version et une part du trafic. La passerelle répartit les appels par identifiant de session, via l’en-tête X-Session-Id qui regroupe les appels d’une conversation. Une conversation ne change donc jamais de version en cours de route. Lors de notre déploiement à 10%, 16 des 200 sessions (8.0%) ont utilisé la version candidate. Sur les essais à 10% et à 50%, les 400 sessions ont toutes conservé la même version. Les utilisateurs finaux identifiés par un label _user, le champ user de la requête ou safety_identifier ont eux aussi conservé la même version. La version candidate utilisait le même prompt, mais remplaçait GPT-6 Luna par DeepSeek V4.1 Flash. Elle répondait plus vite, avec une médiane de 3.1 s contre 4.9 s. Sur la seule répartition à 10%, ses 71 appels coûtaient toutefois 1.92 fois plus cher par appel que ceux de la version de production. Le guide Tester une modification de prompt par A/B test montre comment les totaux par version ont révélé cet écart.

Comment tester une version avant sa mise en production ?

Vous exécutez la nouvelle version et la version actuelle sur un jeu de tests fixe, puis évaluez chaque réponse selon des critères écrits : motifs attendus, schémas JSON, limites de latence et de coût, ou jugement par un modèle. Notre v2 raccourcissait le texte système et supprimait la règle « toujours indiquer le numéro de commande ». Sur 110 messages qu’aucune exécution précédente n’avait utilisés, la v2 a omis le numéro de commande dans 18 réponses (16%), contre aucune pour la v1. Le test exact de Fisher, qui donne la probabilité d’observer par hasard un écart au moins aussi grand, donnait p = 3.6 × 10⁻⁶ dans un test défini avant l’exécution. Un premier essai sur 40 cas avait validé la v2 sur tous les cas. Le modèle juge, Claude Sonnet 5.5, représentait l’essentiel du coût du test : environ un dixième de centime de dollar par cas. Le guide Tester un prompt avant sa mise en production présente la règle de dimensionnement qui en découle.

Pour les équipes qui quittent OpenAI Evals, c’est la solution de remplacement au sein de la bibliothèque de prompts. Une différence est à prévoir : lorsqu’un test est lancé via l’API, son exécution revient à l’appelant, qui appelle les deux versions, évalue les réponses et enregistre les résultats. La console exécute les mêmes tests depuis le navigateur.

Que faire avant le 30 novembre ?

La migration tient en cinq étapes :

  • Recenser tous les identifiants pmpt_ appelés par votre code, avec les versions qu’il impose.
  • Copier le texte et les paramètres de chaque prompt depuis le tableau de bord OpenAI tant qu’ils sont encore accessibles.
  • Décider pour chaque prompt s’il doit passer dans le code, comme le recommande OpenAI, ou dans une bibliothèque sous le même identifiant.
  • Recréer les prompts de la bibliothèque sous leurs identifiants pmpt_, avec chaque version imposée sous son numéro d’origine, puis diriger l’URL de base du client vers la passerelle ; vérifier l’en-tête X-Synthorai-Prompt-Version lors du premier appel.
  • Migrer les évaluations dont vous dépendez avant le 31 octobre, date à laquelle celles d’OpenAI passent en lecture seule.

FAQ

Que deviennent les prompts stockés chez OpenAI le 30 novembre 2026 ?

La page des dépréciations d’OpenAI annonce l’arrêt des objets prompt réutilisables et de l’API v1/prompts le 30 novembre 2026. Le guide de migration recommande de déplacer le texte des prompts dans le code de l’application ; il ne précise pas ce que renverra une requête contenant un identifiant pmpt_ après cette date.

Peut-on continuer à appeler un identifiant pmpt_ après l’arrêt ?

Oui, si une passerelle fournit cet identifiant depuis sa propre bibliothèque de prompts. Dans notre test, un appel du SDK OpenAI contenant prompt={"id": "pmpt_...", "version": "2"} et envoyé à la passerelle Synthorai a utilisé la version 2 de la bibliothèque ; seuls l’URL de base et la clé ont changé. Une version imposée doit exister dans la bibliothèque sous le même numéro, sinon l’appel renvoie une erreur 404.

Par quoi remplacer OpenAI Evals ?

Tout outil de test capable d’appeler deux versions d’un prompt sur des entrées fixes et d’évaluer les réponses peut le remplacer. Dans une bibliothèque de prompts, les jeux de tests et les exécutions d’évaluation sont regroupés avec le prompt. La boîte de dialogue de déplacement du label affiche la dernière exécution d’une version avant sa mise en production.

Pour aller plus loin

← Retour au blog