在 Microsoft Foundry Models 中使用 Flex 處理搭配 Azure OpenAI(預覽版)

Flex 處理(預覽)可為能容忍較慢回應時間及資源偶爾無法使用的工作負載,提供比標準處理便宜 50% 的推論。 若要為個別的 Responses API 或 Chat Completions API 請求選用 Flex processing,請將 service_tier 設為 flex。

使用 Flex 處理非互動性及低優先順序工作,如模型評估、資料豐富、文件分析及非同步應用工作流程。 對於延遲敏感或容量敏感的工作負載,請改用標準處理、優先處理或配置吞吐量。

Important

隨著 Flex 處理的引入,設定 service_tier 為 的 flex 請求僅在所選模型支援 Flex 處理時才會被處理。 不支援的模型會回傳 HTTP 400 invalid_request_error ,且不會退回到標準處理。 Flex 處理模式不提供延遲 SLA 或服務 SLA。

先決條件

  • Azure 訂用帳戶。 免費創建一個。

  • 已使用 Global Standard 部署類型部署受支援模型的 Azure OpenAI 資源。

  • 資源端點與 API 金鑰或 Microsoft Entra ID 憑證。 本文中的範例使用了儲存在環境變數中的 AZURE_OPENAI_API_KEY API 金鑰。

  • 可容忍可變延遲與暫時性資源不可用回覆的工作負載。

  • Python 3.10 或更新版本,以及 OpenAI Python 套件(用於 Python 範例):

    pip install --upgrade openai
    

發送彈性申請

在每個應使用 Flex 處理的請求中,將 service_tier 設為 flex。 這個model值是你 Azure 模型部署的名稱。

Python

以下範例是透過 Responses API 發送 Flex 請求:

import os

from openai import OpenAI

AZURE_OPENAI_ENDPOINT = "https://YOUR-RESOURCE-NAME.openai.azure.com"

# Create a client with a longer timeout for Flex requests.
openai = OpenAI(
    base_url=f"{AZURE_OPENAI_ENDPOINT}/openai/v1/",
    api_key=os.environ["AZURE_OPENAI_API_KEY"],
    timeout=900.0,
)

# Send a request for Flex processing.
response = openai.responses.create(
    model="YOUR-GPT-5.6-SOL-DEPLOYMENT-NAME",
    input="Analyze these records and summarize the recurring themes.",
    service_tier="flex",
)

print(response.output_text)
print(f"Processed by service tier: {response.service_tier}")
<generated-analysis>
Processed by service tier: flex

回應包含產生的分析結果以及處理請求的服務層級。

參考資料:回應 API

REST

以下範例直接將相同請求傳送至 Responses API:

curl -X POST https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d '{
    "model": "YOUR-GPT-5.6-SOL-DEPLOYMENT-NAME",
    "input": "Analyze these records and summarize the recurring themes.",
    "service_tier": "flex"
  }'
{
    "service_tier": "flex",
    "status": "completed",
    "output": [<response-output>]
}

要確認是哪個層級處理請求,請在成功回應中勾選 service_tier 欄位。

參考資料:Responses API REST 參考資料

選擇處理選項

Flex、Standard 和 Priority 處理是線上 API 請求的服務層級選擇。 批次處理與配置吞吐量是獨立的部署與購買選項。

Option 選擇方式 延遲與可用性 成本模型 最適合用於
彈性處理 將請求層級 service_tier 設為 flex。 可變延遲。 當 Flex 容量不足時,請求可以回傳 HTTP 429。 相較於標準代幣費率,可享 50% 折扣。 同時也適用緩存代幣折扣。 評估、資料擴充、離線分析,以及可容忍延遲的背景工作。
標準處理 請將請求層 service_tier 級設為 default,或使用為部署配置的標準層。 針對一般工作負載的盡力而為線上處理。 標準按權杖計費費率。 具有可變流量的開發、測試和生產工作負載。
優先處理 在部署時設定優先權,或將請求層 service_tier 級設為 priority。 延遲更低且更穩定,並對支援型號設定明確目標。 優先按權杖計費費率。 無需預留容量承諾的延遲敏感型線上應用程式
Batch 將非同步批次作業提交至 Batch 部署。 結果預計會在 24 小時內完成。 沒有即時延遲目標。 批量折扣費率。 大型線下工作,不需要立即回應。
預配置的吞吐量 建立已佈建的部署,並購買或預留已佈建輸送量單位(PTU)。 保留容量,且傳輸量與延遲可預測。 按小時 PTU 計費或 Azure 保留容量。 大量且關鍵任務的生產工作負載。

當符合以下所有條件時,請選擇彈性處理:

  • 你的工作量可以容忍更長且變動的處理時間。
  • 你偏好較低成本勝過可預測的延遲。
  • 您的應用程式可以重試暫時性失敗,或將失敗的請求導向標準處理。
  • 所選模型與請求上下文皆有支援。

當符合以下任何條件時,請勿使用彈性處理:

  • 使用者正在等待互動式回應。
  • 請求必須在嚴格的延遲目標內完成。
  • 你的應用程式無法容忍或重試暫時性的 HTTP 429 回應。
  • 你需要預留的處理能力或可預測的吞吐量。

Flex 處理具有以下特性:

  • 請求層級設定: 針對每個應使用 Flex 處理的請求,將 service_tier 設為 flex。
  • 沒有單獨部署: 將標準與彈性請求傳送至同一個全球標準部署,並選擇每個請求的層級。
  • 支援的 API: 可以使用回應 API 或聊天完成 API。
  • 同步回應: API 呼叫保持同步,儘管工作負載可能耗時較長。 Flex 處理和批次 API 不一樣。
  • 依容量而定的可用性: 當 Flex 容量不足時,請求可以回傳 HTTP 429。
  • 不會自動回退至 Standard: 如果可以接受標準處理,你的應用程式必須明確使用設為 default 的 service_tier 重新嘗試。
  • 共享配額: Flex 與 Standard 請求使用分配給全域標準部署的配額。
  • 相同模型輸出品質: Flex 使用與標準相同的底層模型。 處理層級改變的是延遲、可用性和價格,而非模型品質。

Note

彈性輸入與輸出代幣相較於相應標準代幣費率享有 50% 折扣。 符合資格的已快取輸入權杖也可享有適用的快取權杖折扣。 有關最新費率,請參閱 Azure OpenAI 定價。

檢視支援的模型

Flex 處理在推出時可用的模型有限。 gpt-5.6-sol 是首個支援的型號。 下表列出支援的模型。 Microsoft 會隨著支援增加而推出更多型號。

型號 Version 部署類型 區域可用性
gpt-5.6-sol 2026-07-09 全域標準 所有可使用 Global Standard 的 Azure 區域

在你提交彈性申請前,請先查看這張表格。 不要因為支援標準或優先處理,就假設某個模型或新版本支援 Flex 處理。 不支援的型號會回傳 HTTP 400。 為避免中斷您的應用程式,當標準定價與效能可接受時,應實施應用層級的備援至標準處理。

切換回標準處理

當彈性處理無法使用時,Flex 處理不會自動將請求路由到標準。 如果完成申請比保留彈性價格更重要,請重新嘗試,設定 service_tier 為 default。

以下範例使用完備優先策略。 它首先嘗試 Flex 處理,並在任何 HTTP 429 回應後以標準處理重試一次:

import os

from openai import OpenAI, RateLimitError

AZURE_OPENAI_ENDPOINT = "https://YOUR-RESOURCE-NAME.openai.azure.com"

# Create a client with a longer timeout for Flex requests.
openai = OpenAI(
    base_url=f"{AZURE_OPENAI_ENDPOINT}/openai/v1/",
    api_key=os.environ["AZURE_OPENAI_API_KEY"],
    timeout=900.0,
)

request = {
    "model": "YOUR-GPT-5.6-SOL-DEPLOYMENT-NAME",
    "input": "Analyze these records and summarize the recurring themes.",
}

# Try Flex processing, and fall back to Standard after an HTTP 429 response.
try:
    response = openai.responses.create(**request, service_tier="flex")
except RateLimitError:
    response = openai.responses.create(**request, service_tier="default")

print(response.output_text)
print(f"Processed by service tier: {response.service_tier}")
<generated-analysis>
Processed by service tier: <flex-or-default>

回退至標準會改變請求的定價與效能特性。 只有當工作量能接受標準定價時,才使用此模式。

HTTP 429 回應可能表示 Flex 容量不可用或配額限制。 由於 Flex 和 Standard 處理會共享配額,當配額導致原始回應時,標準請求也可能失敗。 套用重試限制,並在您的應用程式中處理第二個 RateLimitError。 當服務回傳 Flex 專屬錯誤識別碼時,請用它來限制備援回應僅限於容量相關回應。

對於優先處理成本最低的工作負載,建議在回退前先用指數式回退重新嘗試 Flex 處理。 對於以完成時間為優先的工作負載,在第一次發生 Flex 容量錯誤後,請切換回 Standard。

參考:RateLimitError

處理 Flex 錯誤

區分永久性請求錯誤與暫態容量錯誤。

HTTP 狀態 錯誤 原因 建議操作方法
400 invalid_request_error 所選模型、模型版本、上下文長度、API 或請求設定不支援 Flex 處理。 不要在未作任何變更的情況下重試相同的請求。 選擇支援的模型或上下文長度,或明確重試,設定 service_tier 為 default。
408 要求逾時 請求在設定的客戶端或服務逾時內無法完成。 彈性申請可能比標準申請花更長時間。 使用較長的客戶端逾時時間。 以有上限的指數退避方式重試。 如果完成時間比彈性定價更重要,建議用標準版重試。
429 資源無法使用或速率受限 彈性容量暫時無法使用,或請求超過適用的速率限制。 彈性容量是可搶占式的,因此尖峰時段暫時無法使用的可能性較高。 若請求超過速率上限,則透過分配更多配額來提高全球標準部署的速率上限。 Flex 和 Standard 共享這個配額。 如果訂閱無法應付大吞吐量的工作負載,請申請增加配額。 若彈性容量暫時無法使用,請以指數退避與隨機抖動重試,將可容忍延遲的工作安排到離峰時段,例如平日晚間或週末,或將 service_tier 設為 default 後再重試。 在場時要尊重 Retry-After 。
500、502、503或504 臨時服務錯誤 臨時服務或閘道器問題導致無法完成。 採用有界指數退避機制重試。 不要送出無限次數的重試要求。
401 或 403 認證或授權錯誤 憑證遺失、無效、過期,或無法存取該資源。 修正資格或職務分配。 在設定改變之前不要重試。
404 部署目標找不到 部署名稱或端點名稱不正確。 確認該model資源與部署名稱相符,且基礎網址指向正確的 Azure OpenAI 資源。

Note

因處理能力不足而被拒絕的彈性申請不會被計費。 然而,你可能會發現可用的速率限制容量較少,因為 Flex 和 Standard 請求會共用指派給 Global Standard 部署的配額。

對於 HTTP 408、429 和瞬態 5xx 回應,使用帶有隨機抖動的指數退避。 設定最大重試次數和最大延遲,避免失敗的請求停留在無界重試迴圈中。

  1. 當回應包含 Retry-After 時,請保留它。
  2. 否則,請等待一段以指數方式增加且帶有隨機抖動的延遲時間。
  3. 僅在延遲對該工作負載而言仍可接受時,才重試 Flex。
  4. 如果重試預算用盡且應用程式允許較高的標準成本,則可退回標準。
  5. 若延遲 Flex 處理和 Standard 備援機制都無法滿足應用程式的需求,則明確傳回失敗。

不要一再重複同一個不支援的 Flex 請求。 只有在你更改模型、上下文長度、API 設定或服務層級後,重試才會成功。

監控使用量與成本

使用 Azure 監視器 指標比較同一部署中的 Flex 與 Standard 流量。 監控應用程式中的請求量、權杖消耗、延遲、失敗情況,以及 Flex 請求回退至 Standard 的比率。

  1. 登入 Azure 入口網站。

  2. 到你的 Azure OpenAI 資源,選擇 Metrics。

  3. 新增 Azure OpenAI 請求指標。 你也可以新增 Azure OpenAI 延遲、Azure OpenAI 使用率和錯誤指標。

  4. 新增一個篩選器,使 ServiceTierRequest 等於 flex。

    使用 ServiceTierRequest 屬性篩選至 Flex 請求的 Azure 監視器 指標截圖。

  5. 針對持續的 HTTP 429 回應、錯誤率增加及超出工作負載重試預算的延遲,建立警示。

針對每個工作負載追蹤以下訊號:

訊號 為何如此重要
彈性請求數量 顯示採用率以及為降低處理成本而路由的流量。
成功彈性要求率 顯示 Flex 容量接受並完成請求的頻率。
HTTP 429 速率 顯示彈性容量或部署配額受限的期間。
標準後援次數與比率 展示應用控制備援帶來的可靠性優勢與額外成本。
輸入、已快取的輸入,和輸出權杖 支援成本歸因並驗證提示快取的效果。
端對端延遲 有助於判斷工作量是否仍適合 Flex。
HTTP 400 invalid_request_error 次數 識別未支援的模型、模型版本、上下文長度或請求配置。

欲了解更多關於監控模型部署的資訊,請參閱 Monitor Azure OpenAI。

Flex 用電量會用專用的 Flex 電表計費,這樣你就能和標準用量區分。 使用成本分析來檢視 Flex 代幣的資源與部署成本。

  1. 在 Azure 入口網站中,開啟 Cost Management + Billing>Cost analysis。
  2. 篩選到包含部署的訂閱、資源群組或 Azure OpenAI 資源。
  3. 依照 計量 分組或篩選,以將彈性用量與標準用量區分開來。
  4. 新增帳單 標籤 過濾器,選擇 部署,並選擇部署名稱。
  5. 比較彈性成本節省、標準回退成本,以及工作負載的完成需求。

Flex 輸入與輸出代幣的價格為相應標準費率的 50%。 提示快取可以進一步降低符合條件的快取輸入標記的成本。 因處理能力不足而被拒絕的彈性申請不會被計費。

應用生產最佳實務

  • 設定一個更長的暫停時間。 彈性申請可能比標準申請花更長時間。 先設定適合你工作量的客戶暫停,例如15分鐘,並用具代表性的提示來測試。
  • 使用有限次數的重試。 限制重試次數和總耗時。
  • 加入抖動。 隨機調整回撥延遲,以避免同步重試尖峰。
  • 明確化後援機制。 將 service_tier 設定為 default,而不是依賴隱含行為。
  • 追蹤已處理的層。 記錄回應 service_tier 值,並附上延遲、狀態、令牌使用情況及成本資料。
  • 將互動式流量與背景流量分隔開來。 除非可接受可變彈性延遲,否則請將面向使用者的要求保留在標準、優先或已佈建的輸送量。
  • 控制重複工作。 確保應用程式在用戶端逾時後,不會多次提交相同的邏輯作業。
  • 測試失敗路徑。 在生產工作流程中使用 Flex 處理前,先驗證 HTTP 400、408、429 及暫態 5xx 回應的處理。
  • 升級前先檢視車型支援。 替換機型或型號版本不會自動繼承 Flex 支援。

使用要求標頭覆寫服務層級

當閘道、代理或集中式路由層需要選擇服務層級,且不檢查或修改請求實體時,請使用 x-ms-service-tier 請求標頭。 標頭也能減少已透過請求標頭選擇 OpenAI 服務層級的應用程式的遷移變更。

標頭接受以下值:

標頭值 要求的處理層級
flex 彈性
priority Priority
default 標準
auto Priority

當標頭存在且有效時,該標頭會優先於要求本文中的 service_tier 值。

標頭輸入 要求主體輸入 行為與輸出
標頭省略 有效的 service_tier 值 請求機構負責選擇層級。 成功的回應會在 service_tier 中指出已處理的層級。
有效標頭值 任何值或省略 標頭選擇所請求的層級。 成功的回應會在 service_tier 中識別已處理的層級。
不支援標頭值 任何值或省略 請求回傳 HTTP 400。 服務不會回退到要求主體值。

此範例透過標頭請求 Flex 處理。 標頭會覆寫要求本文中的 default 值:

curl -X POST https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -H "x-ms-service-tier: flex" \
  -d '{
    "model": "YOUR-GPT-5.6-SOL-DEPLOYMENT-NAME",
    "input": "Analyze these records and summarize the recurring themes.",
    "service_tier": "default"
  }'
{
    "service_tier": "flex",
    "status": "completed",
    "output": [<response-output>]
}

覆寫標頭不提供自動備援機制。 若標頭值無效,或所選部署不支援的層級,則會回傳 HTTP 400。