OpenAI 提示詞物件 11 月 30 日停用:保留 pmpt_ ID,補齊版本

目錄
  1. OpenAI 要停用哪些功能?何時停用?
  2. 如何不改呼叫程式碼,讓 pmpt_ 呼叫繼續運作?
  3. 提示詞該放在程式碼,還是提示詞庫?
  4. 透過 ID 呼叫提示詞要多少錢?
  5. 如何讓部分正式流量試用新版本?
  6. 如何在發布前測試版本?
  7. 11 月 30 日前該做什麼?
  8. 常見問題
  9. 2026 年 11 月 30 日,儲存在 OpenAI 的提示詞會怎樣?
  10. 停用後還能繼續呼叫 pmpt_ ID 嗎?
  11. 什麼可以取代 OpenAI Evals?
  12. 延伸閱讀

OpenAI 將於 2026 年 11 月 30 日停用可重複使用的提示詞物件與 v1/prompts API,同一天也會停用 Evals 儀表板與 API。OpenAI 表示這些物件「預定停用」,但沒有說明之後以 prompt={"id": "pmpt_..."} 呼叫 Responses API 會得到什麼回應,因此必須先把提示詞文字移到別處。我們在 Synthorai 提示詞庫中,以原本的 pmpt_ ID 重建提示詞,再將 OpenAI SDK 呼叫指向 Synthorai 閘道。這個閘道是位於應用程式與模型供應商之間的 API 代理,只需要更換 base URL 和金鑰:指定版本 "2" 時,請求使用提示詞庫中的版本 2;未指定版本時,則使用正式環境版本。

TL;DR

  • OpenAI 的提示詞物件與 v1/prompts API 將於 2026 年 11 月 30 日停用;OpenAI Evals 則從 10 月 31 日起改為唯讀。
  • 帶有 prompt={"id": "pmpt_...", "version": "2"} 的 Responses 呼叫,由 Synthorai 提示詞庫中相同 ID 的版本 2 處理;只更換了 base URL。
  • 在持續有流量的情況下,切換提示詞庫中提示詞的 production 標籤後,線上呼叫於 8 到 9 秒內開始使用新版本。
  • 在執行前就已定案的測試,抓出一項修改導致 16% 的回答違反規則;先前 40 筆資料的測試卻全部通過。

本文是提示詞庫三篇系列指南的總覽。以下各節整理一篇指南及其實測數據,程式碼與主控台截圖請見各節連結。所有測試都在 2026 年 10 月 19 日與 20 日執行,程式碼位於 github.com/synthorai-io/use-cases 的 prompt-library/ 目錄。

OpenAI 要停用哪些功能?何時停用?

OpenAI 的停用公告頁面列出兩項同日停用的功能:

功能公告日期變更停用日期
可重複使用的提示詞:提示詞物件與 v1/prompts API2026 年 6 月 3 日平台已不再主推建立提示詞的功能2026 年 11 月 30 日
Evals 平台:儀表板與 API2026 年 6 月 3 日現有 evals 自 2026 年 10 月 31 日起改為唯讀2026 年 11 月 30 日

提示詞物件是儲存在 OpenAI 儀表板中的提示詞,可透過 pmpt_ ID 呼叫,也可搭配版本與變數。OpenAI 的遷移指南建議將提示詞文字從物件移到應用程式碼中,以 input 傳給 Responses API,並透過 git、程式碼審查與測試管理版本。指南並未說明停用後,帶有 pmpt_ ID 的請求會得到什麼回應。

如何不改呼叫程式碼,讓 pmpt_ 呼叫繼續運作?

在提示詞庫中以相同 ID 重建提示詞,再讓用戶端指向能提供該提示詞的閘道即可。Synthorai 閘道會讀取 /v1/responses 請求中的 prompt 欄位:若 ID 與提示詞庫中的提示詞相符,就由提示詞庫提供內容;數字形式的 version 則用來選取對應版本。以下是示範程式發出的呼叫,除了 base 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"}提示詞庫版本 292177$0.0000977
prompt={"id": ...}提示詞庫版本 1,也就是 production 標籤指向的版本96207$0.0001131

兩次回答都來自 GPT-6 Luna,也就是提示詞庫版本中儲存的模型。示範中的 pmpt_ ID 是虛構的;遷移時請使用自己的 ID。10 月 20 日另做了三項檢查,確認遷移後應用程式送出的請求會如何處理:

請求結果
prompt 內含 "variables": {"product": "garden tools"}值會填入該版本的 {{product}};回答開頭為「我們在線上販售園藝工具。」
請求中指定 model: "gpt-4o"改用該版本儲存的模型 GPT-6 Luna
指定提示詞庫中不存在的 "version": "7"404 prompt_not_found,訊息為「沒有版本 7」

最後一列很容易漏掉。OpenAI 的版本編號會對應到提示詞庫中相同編號的版本,因此固定使用 "version": "7" 的呼叫,需要提示詞庫中存在 v7。請依序重建程式碼固定使用的版本,讓編號一致;或修改這些呼叫,改用已重建的版本。

OpenAI 文件沒有列出可讀回提示詞物件的 API,我們也沒有找到匯出功能。因此,請趁 OpenAI 儀表板仍可使用時,複製每個提示詞的文字與設定。在主控台中,用複製的文字組成 Responses 請求主體,再貼到新提示詞的匯入功能。匯入時會將訊息、模型、參數、工具與輸出結構描述讀入第一個版本;也可以直接在編輯器中撰寫版本內容。

提示詞該放在程式碼,還是提示詞庫?

OpenAI 建議放在程式碼中。如果希望不必部署就能修改提示詞,可以選擇提示詞庫,但請求路徑上會多依賴一個服務:

提示詞放在程式碼中提示詞放在提示詞庫,以 ID 呼叫
發布變更修改程式碼、審查、部署切換標籤;實測於 8 到 9 秒內套用至呼叫
回復版本還原變更並部署將標籤切回原版本
將 10% 流量導向新版本自行實作功能旗標或路由在標籤上設定逐步發布比例
審查git diff 與 pull request在主控台查看版本差異;變更不在儲存庫中
發布前測試自行準備測試執行器提示詞附有測試集與評估執行紀錄
依賴除模型供應商外,無其他依賴必須能連上閘道,才能解析提示詞

最後一列就是使用提示詞庫的代價。若無法讀取提示詞庫,Synthorai 閘道會使用最後一次讀取的提示詞副本,最長可持續 24 小時;只有在沒有近期副本時才會回傳 503。若團隊希望兩者兼得,可以將提示詞庫中的提示詞及其所有版本匯出為 JSON,放進自己的儲存庫。

透過 ID 呼叫提示詞要多少錢?

透過 ID 呼叫不會額外收費:在 20 組配對測試中,透過 prompt_id 呼叫所送出的提示詞 token 中位數為 114.5,與直接寫在程式碼中的相同請求一致。閘道會填入該版本的訊息、模型與參數,再向供應商送出一般請求。缺少變數、ID 不存在等無法處理的呼叫,會在執行模型前以 400 或 404 失敗,不會計費。標籤是具名指標,例如 production 或 staging,每次只指向一個版本。在每半秒一次呼叫的情況下,切換 production 標籤後,新版本套用至呼叫的時間中位數為 8.0 到 8.5 秒;若連續 15 秒沒有流量,下一次呼叫就會使用新版本。提示詞版本管理提供程式碼、五種錯誤情境與計時方法。

如何讓部分正式流量試用新版本?

在 production 標籤上加入第二個版本並設定流量比例,閘道就會依工作階段 ID 分流。這個 ID 由 X-Session-Id 標頭提供,用來將同一段對話的呼叫歸在一起,因此對話不會中途切換版本。在 10% 逐步發布測試中,200 個工作階段有 16 個(8.0%)分配到候選版本;10% 與 50% 兩次測試合計的 400 個工作階段,也都維持使用同一版本。透過 _user 標籤、請求中的 user 欄位或 safety_identifier 識別的終端使用者,也都維持使用同一版本。候選版本使用相同提示詞,但模型從 GPT-6 Luna 換成 DeepSeek V4.1 Flash。候選版本回答較快,中位數為 3.1 秒,正式版本則為 4.9 秒;但單看 10% 流量測試,候選版本的 71 次呼叫,平均每次費用是正式版本的 1.92 倍。提示詞變更的 A/B 測試說明如何從各版本的彙總數據發現這項差異。

如何在發布前測試版本?

用固定測試集分別執行新版本與現行版本,再依事先寫好的檢查條件評分每個回答。檢查可以是文字模式、JSON schema、延遲與費用上限,也可以由模型擔任評審。我們的 v2 縮短了系統提示詞,並刪除「一律說明訂單編號」的規則。在先前測試都沒用過的 110 則訊息中,v2 有 18 個回答(16%)漏掉訂單編號,v1 則完全沒有遺漏。這次測試在執行前就已定案,以 Fisher 精確檢定計算得到 p = 3.6 × 10⁻⁶;這項檢定衡量的是,隨機因素造成如此大差異的機率。先前一次 40 筆資料的測試中,v2 每一筆都通過。擔任評審的 Claude Sonnet 5.5 占了大部分測試費用,每筆約十分之一美分。提示詞發布前測試整理了由此推導的測試筆數準則。

對準備離開 OpenAI Evals 的團隊來說,這就是提示詞庫內的替代方案,但有一項差異需要事先規劃:透過 API 啟動的測試由呼叫端執行,呼叫端負責呼叫兩個版本、評分回答,再寫回結果。主控台則從瀏覽器執行相同測試。

11 月 30 日前該做什麼?

遷移可分成五個步驟:

  • 列出程式碼呼叫的每個 pmpt_ ID,以及固定使用的版本。
  • 複製每個提示詞的文字與設定,趁 OpenAI 儀表板仍可使用時完成。
  • 逐一決定提示詞的去處:移入程式碼(OpenAI 的建議),或以相同 ID 移入提示詞庫。
  • 以原本的 pmpt_ ID 重建提示詞庫中的提示詞,並為每個固定使用的版本保留原編號,再將用戶端的 base URL 指向閘道;第一次呼叫時,檢查 X-Synthorai-Prompt-Version 標頭。
  • 在 10 月 31 日前遷移仍在使用的 evals,當天 OpenAI 的 evals 將改為唯讀。

常見問題

2026 年 11 月 30 日,儲存在 OpenAI 的提示詞會怎樣?

OpenAI 停用公告頁面表示,可重複使用的提示詞物件與 v1/prompts API 預定於 2026 年 11 月 30 日停用。OpenAI 遷移指南建議將提示詞文字移入應用程式碼,但沒有說明該日期之後,帶有 pmpt_ ID 的請求會得到什麼回應。

停用後還能繼續呼叫 pmpt_ ID 嗎?

可以,前提是有閘道能從自己的提示詞庫提供該 ID 的提示詞。在我們的測試中,帶有 prompt={"id": "pmpt_...", "version": "2"} 的 OpenAI SDK 呼叫送到 Synthorai 閘道後,由提示詞庫版本 2 處理;只更換了 base URL 與金鑰。固定使用的版本必須以相同編號存在於提示詞庫中,否則呼叫會回傳 404。

什麼可以取代 OpenAI Evals?

任何能對固定輸入呼叫兩個提示詞版本、並評分回答的測試執行器,都可以取代它。在提示詞庫中,測試集與評估執行紀錄會與提示詞放在一起;切換標籤的對話框也會在發布前顯示該版本最近一次測試結果。

延伸閱讀

← 返回部落格