0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenAI のプロンプトオブジェクトは 11 月 30 日終了:pmpt_ ID を残してバージョン管理

0
Last updated at Posted at 2026-10-26

この記事は Synthorai ブログの記事 OpenAI のプロンプトオブジェクトは 11 月 30 日終了:pmpt_ ID を残してバージョン管理 の転載です。原文(多言語対応)はリンク先をご覧ください。

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/prompts API は 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 つのプロンプトバージョンを呼び出し、回答を評価できるテストランナーなら代替できます。プロンプトライブラリでは、テストセットと評価実行をプロンプトと一緒に管理できます。ラベルの参照先を変更するダイアログには、リリース前にそのバージョンの直近の実行結果が表示されます。

関連記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?