この記事は Synthorai ブログの記事 OpenAI のプロンプトオブジェクトは 11 月 30 日終了:pmpt_ ID を残してバージョン管理 の転載です。原文(多言語対応)はリンク先をご覧ください。
OpenAI は 2026 年 11 月 30 日に、再利用可能なプロンプトオブジェクトと v1/prompts API を終了します。Evals のダッシュボードと API も同日で終了します。OpenAI はプロンプトオブジェクトを「終了予定」としていますが、その後 prompt={"id": "pmpt_..."} を指定した Responses API 呼び出しが何を返すかは明記していません。終了前にプロンプト本文を別の場所へ移す必要があります。今回、Synthorai のプロンプトライブラリに同じ pmpt_ ID でプロンプトを再作成しました。OpenAI SDK のベース URL とキーだけを変更し、Synthorai ゲートウェイへ接続しています。このゲートウェイは、アプリケーションとモデルプロバイダーの間に置く API プロキシです。バージョン "2" を指定したリクエストはライブラリのバージョン 2 で処理され、バージョンを省略したリクエストには本番用のバージョンが使われました。
TL;DR
- OpenAI のプロンプトオブジェクトと
v1/promptsAPI は 2026 年 11 月 30 日に終了します。OpenAI Evals は 10 月 31 日に読み取り専用になります。 -
prompt={"id": "pmpt_...", "version": "2"}を指定した Responses 呼び出しは、同じ ID を持つ Synthorai ライブラリ内のバージョン 2 で処理されました。変更したのはベース URL だけです。 - ライブラリのプロンプトで production ラベルの参照先を変更すると、一定のトラフィックがある状態では 8-9 秒で実際の呼び出しに反映されました。
- 実行前に条件を固定したテストでは、ルール違反を 16% の回答で引き起こす編集を検出できました。それ以前に実施した 40 行のテストでは、この編集は合格していました。
この記事は、プロンプトライブラリを扱う全 3 回のガイドの概要です。以下の各セクションでは、各ガイドの測定結果をまとめています。コードとコンソールのスクリーンショットは、リンク先のガイドに掲載しています。実行日はすべて 2026 年 10 月 19 日と 20 日です。コードは github.com/synthorai-io/use-cases の prompt-library/ にあります。
OpenAI は何を、いつ終了するのか
OpenAI の廃止予定ページには、同日で終了する 2 つの機能が記載されています。
| 対象 | 発表日 | 変更内容 | 終了日 |
|---|---|---|---|
再利用可能なプロンプト:プロンプトオブジェクトと v1/prompts API |
2026 年 6 月 3 日 | プラットフォーム上でのプロンプト作成を積極的に案内しなくなる | 2026 年 11 月 30 日 |
| Evals プラットフォーム:ダッシュボードと API | 2026 年 6 月 3 日 | 既存の eval は 2026 年 10 月 31 日から読み取り専用 | 2026 年 11 月 30 日 |
プロンプトオブジェクトは、OpenAI のダッシュボードに保存し、pmpt_ ID で呼び出すプロンプトです。必要に応じてバージョンや変数を指定できます。OpenAI の移行ガイドは、プロンプト本文をアプリケーションコードへ移し、Responses API の input として渡す方法を推奨しています。バージョン管理には git、コードレビュー、テストを使う方針です。終了後に pmpt_ ID を指定したリクエストが何を返すかは、このガイドにも記載されていません。
コードを変えずに pmpt_ 呼び出しを継続するには
同じ ID でプロンプトライブラリにプロンプトを再作成し、それを処理できるゲートウェイへクライアントの接続先を変更します。Synthorai ゲートウェイは /v1/responses リクエストの prompt フィールドを読み取ります。ID がライブラリ内のプロンプトと一致すれば、そのプロンプトを使って処理します。数値の version を指定すると、同じ番号のライブラリバージョンが選ばれます。デモで使った呼び出しは次のとおりです。ベース URL とキー以外は、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)
| 呼び出し | 使用されたバージョン | 入力 token 数 | 出力 token 数 | コスト |
|---|---|---|---|---|
prompt={"id": ..., "version": "2"} |
ライブラリのバージョン 2 | 92 | 177 | $0.0000977 |
prompt={"id": ...} |
production ラベルが指すライブラリのバージョン 1 | 96 | 207 | $0.0001131 |
どちらも、ライブラリのバージョンに保存されたモデルである GPT-6 Luna が回答しました。デモの pmpt_ ID は架空のものです。移行時には自分の ID を使います。10 月 20 日には、移行後のアプリケーションが送る内容について、さらに 3 項目を確認しました。
| リクエスト | 結果 |
|---|---|
prompt 内に "variables": {"product": "garden tools"} を指定 |
その値がバージョン内の {{product}} に入り、回答は「We sell garden tools online.」で始まった |
リクエストに model: "gpt-4o" を指定 |
バージョンに保存されたモデルである GPT-6 Luna に置き換わった |
ライブラリに存在しない "version": "7" を指定 |
404 prompt_not_found、「has no version 7」 |
最後の行は見落としやすい点です。OpenAI のバージョン番号は、同じ番号のライブラリバージョンに対応します。"version": "7" に固定した呼び出しには、ライブラリ側にも v7 が必要です。コードで固定しているバージョンを番号が一致するように順番に再作成するか、再作成したバージョンを指定するように呼び出しを変更してください。
OpenAI のドキュメントには、プロンプトオブジェクトを読み出す API の記載がなく、エクスポート機能も見つかりませんでした。ダッシュボードを利用できるうちに、各プロンプトの本文と設定をコピーしてください。コピーした本文から Responses リクエストのボディを組み立て、コンソールで新規プロンプトのインポート欄に貼り付けます。メッセージ、モデル、パラメーター、ツール、出力スキーマが最初のバージョンに取り込まれます。エディターで直接バージョンを作成することもできます。
プロンプトはコードとライブラリのどちらに置くべきか
OpenAI はコードへの移行を推奨しています。デプロイせずにプロンプトを変更したいなら、ライブラリが選択肢になります。ただし、リクエストの経路にサービスが 1 つ増えます。
| コード内のプロンプト | ID で呼び出すライブラリ内のプロンプト | |
|---|---|---|
| 変更のリリース | コード変更、レビュー、デプロイ | ラベルの参照先を変更。今回の測定では 8-9 秒で呼び出しに反映 |
| ロールバック | 変更を戻してデプロイ | ラベルの参照先を元に戻す |
| トラフィックの 10% を新バージョンへ送る | フラグやルーターを自前で用意 | ラベルの段階的リリース設定 |
| レビュー | git diff とプルリクエスト | コンソールのバージョン差分。変更はリポジトリには残らない |
| リリース前のテスト | 自前のテストランナー | プロンプトに紐づくテストセットと評価実行 |
| 依存先 | モデルプロバイダー以外には不要 | プロンプトを解決するためにゲートウェイへ接続できる必要がある |
最後の行が、ライブラリを使う代償です。Synthorai ゲートウェイはライブラリを読み取れなくなった場合、最後に読み取ったプロンプトのコピーを最大 24 時間使って処理します。最近のコピーがないプロンプトに対してのみ 503 を返します。両方を使いたいチームは、ライブラリのプロンプトを全バージョン込みの JSON としてエクスポートし、リポジトリに保存できます。
プロンプトを ID で呼び出すと追加料金はかかるか
ID による呼び出しに追加料金はかかりません。20 組の比較で、prompt_id による呼び出しのプロンプト token 数は中央値 114.5 で、同じリクエストをコードに直接書いた場合と同じでした。ゲートウェイはバージョンに保存されたメッセージ、モデル、パラメーターを補い、通常のリクエストとしてプロバイダーへ送信します。変数の不足や不明な ID などで処理できない呼び出しは、モデルの実行前に 400 または 404 で失敗し、課金されません。ラベルは production や staging などの名前付きの参照で、常に 1 つのバージョンを指します。production ラベルの参照先を変更したところ、0.5 秒ごとに呼び出しがある状態では、変更から中央値 8.0-8.5 秒で反映されました。トラフィックが 15 秒間なかった場合は、その後の最初の呼び出しで反映されました。プロンプトのバージョン管理にコード、5 種類のエラーケース、時間の測定方法を掲載しています。
本番トラフィックの一部で新バージョンを試すには
production ラベルに 2 つ目のバージョンと配信比率を設定します。ゲートウェイはセッション ID を基準に呼び出しを振り分けるため、会話の途中でバージョンが変わることはありません。セッション ID は、同じ会話の呼び出しをまとめる X-Session-Id ヘッダーで指定します。10% の段階的リリースでは、200 セッション中 16 セッション(8.0%)が候補バージョンへ送られました。10% と 50% の実行を合わせた全 400 セッションで、同じバージョンが維持されました。_user ラベル、リクエストの user フィールド、または safety_identifier で識別したエンドユーザーも、同じバージョンに固定されました。候補バージョンはプロンプトを変えず、モデルを GPT-6 Luna から DeepSeek V4.1 Flash に変更したものです。応答時間は中央値 4.9 秒から 3.1 秒へ短くなりました。ただし、配信比率 10% の実行だけを見ると、候補バージョンへの 71 回の呼び出しは、1 回あたりのコストが本番バージョンの 1.92 倍でした。プロンプト変更の A/B テストでは、バージョン別の集計からこの差を見つけた方法を説明しています。
リリース前にバージョンをテストするには
固定のテストセットで新旧のバージョンを実行し、明文化したチェック項目で全回答を評価します。パターン、JSON スキーマ、レイテンシーやコストの上限、判定用モデルなどが使えます。今回の v2 ではシステムテキストを短くし、「必ず注文番号を記載する」というルールを削除しました。過去の実行で使っていない 110 件のメッセージでは、v2 は 18 件(16%)の回答で注文番号を省略し、v1 には省略がありませんでした。実行前に条件を固定したテストで Fisher の正確確率検定を行うと、p = 3.6 × 10⁻⁶ でした。これは、この大きさの差が偶然に生じる確率を示します。それ以前に実施した 40 行のテストでは、v2 は全行で合格していました。テスト費用の大半は判定用の Claude Sonnet 5.5 によるもので、1 行あたり約 0.1 セントでした。リリース前のプロンプトテストでは、この結果から導いたテスト件数の目安を説明しています。
OpenAI Evals から移行するチームにとっては、これがプロンプトライブラリ内の代替機能になります。ただし、運用上考慮すべき違いが 1 つあります。API から開始するテストは呼び出し元が実行し、両方のバージョンを呼び出して回答を評価し、結果を書き戻します。コンソールでは、同じテストをブラウザーから実行します。
11 月 30 日までに何をすべきか
移行に必要なのは、次の 5 つです。
-
コードから呼び出しているすべての
pmpt_ID を洗い出す。固定しているバージョンも記録します。 - 各プロンプトの本文と設定をコピーする。OpenAI のダッシュボードを利用できるうちに済ませます。
- プロンプトごとに移行先を決める。OpenAI が推奨するコードへの移行か、同じ ID を使ったライブラリへの移行かを選びます。
-
同じ
pmpt_ID でライブラリにプロンプトを再作成する。固定している全バージョンを元の番号で作り、クライアントのベース URL をゲートウェイへ向けます。最初の呼び出しでX-Synthorai-Prompt-Versionヘッダーを確認してください。 - 利用中の eval を 10 月 31 日より前に移す。OpenAI 側では、この日から読み取り専用になります。
よくある質問
OpenAI に保存したプロンプトは 2026 年 11 月 30 日にどうなるのか
OpenAI の廃止予定ページでは、再利用可能なプロンプトオブジェクトと v1/prompts API は 2026 年 11 月 30 日に終了予定とされています。移行ガイドは、プロンプト本文をアプリケーションコードへ移すことを推奨しています。その日以降、pmpt_ ID を指定したリクエストが何を返すかは明記されていません。
終了後も pmpt_ ID を呼び出し続けられるか
その ID を独自のプロンプトライブラリから処理するゲートウェイがあれば可能です。今回のテストでは、prompt={"id": "pmpt_...", "version": "2"} を指定した OpenAI SDK の呼び出しを Synthorai ゲートウェイへ送ると、ライブラリのバージョン 2 で処理されました。変更したのはベース URL とキーだけです。固定したバージョンは、ライブラリ内にも同じ番号で存在する必要があります。なければ 404 が返ります。
OpenAI Evals の代わりには何を使えるか
固定入力で 2 つのプロンプトバージョンを呼び出し、回答を評価できるテストランナーなら代替できます。プロンプトライブラリでは、テストセットと評価実行をプロンプトと一緒に管理できます。ラベルの参照先を変更するダイアログには、リリース前にそのバージョンの直近の実行結果が表示されます。
関連記事
- プロンプトのバージョン管理:ID でプロンプトを呼び出し、ラベルの参照先変更でリリースする方法。
- プロンプト変更の A/B テスト:10% の段階的リリースとバージョン別の比較。
- リリース前のプロンプトテスト:テストセット、チェック項目、必要なテスト行数。
-
プロンプトライブラリガイド:OpenAI の
promptオブジェクトを含む全フィールド。 - OpenAI:プロンプトオブジェクトからの移行:OpenAI 公式の推奨手順。
