共用方式為


Azure API 管理 中產生的 AI 閘道功能概觀

適用於:所有 APIM 層

本文介紹 Azure API 管理 中的功能,可協助您管理產生 AI API,例如 Azure OpenAI 服務所提供的 API。 Azure API 管理 提供一系列原則、計量和其他功能,以增強為智慧型手機應用程式提供服務之 API 的安全性、效能和可靠性。 整體而言,這些功能稱為 產生 AI(GenAI) 閘道功能 ,適用於您的產生式 AI API。

注意

  • 本文著重於管理 Azure OpenAI 服務所公開 API 的功能。 許多 GenAI 閘道功能適用於其他大型語言模型 (LLM) API,包括透過 Azure AI 模型推斷 API 取得的功能。
  • 產生 AI 閘道功能是 API 管理 現有 API 閘道的功能,而不是個別的 API 閘道。 如需 API 管理 的詳細資訊,請參閱 Azure API 管理 概觀

管理產生的 AI API 的挑戰

您在產生 AI 服務中擁有的主要資源之一是 令牌。 Azure OpenAI 服務會指派以每分鐘令牌表示的模型部署配額(TPM),然後分散到您的模型取用者 -例如,不同的應用程式、開發人員小組、公司內的部門等等。

Azure 可讓您輕鬆地將單一應用程式連線到 Azure OpenAI 服務:您可以使用 API 金鑰直接連線,並在模型部署層級上直接設定 TPM 限制。 不過,當您開始成長應用程式組合時,您會看到多個應用程式呼叫單一或甚至多個 Azure OpenAI 服務端點,部署為隨用隨付或 布建輸送量單位 (PTU) 實例。 這伴隨著某些挑戰:

  • 如何在多個應用程式中追蹤令牌使用量? 針對使用 Azure OpenAI 服務模型的多個應用程式/小組,可以計算交叉費用嗎?
  • 如何確保單一應用程式不會取用整個 TPM 配額,讓其他應用程式沒有使用 Azure OpenAI 服務模型的選項?
  • API 金鑰如何安全地分散到多個應用程式?
  • 負載如何分散到多個 Azure OpenAI 端點? 您可以確定 PTU 中認可的容量已用完,再回復為隨用隨付實例嗎?

本文的其餘部分說明 Azure API 管理 如何協助您解決這些挑戰。

將 Azure OpenAI 服務資源匯入為 API

使用單鍵體驗,將 API 從 Azure OpenAI 服務端點 匯入 Azure API 管理。 API 管理 自動匯入 Azure OpenAI API 的 OpenAPI 架構,並使用受控識別設定 Azure OpenAI 端點的驗證,以簡化上線程式,而不需要手動設定。 在相同的使用者易記體驗中,您可以預先設定 令牌限制發出令牌計量的原則

入口網站中 Azure OpenAI API 圖格的螢幕快照。

令牌限制原則

設定 Azure OpenAI 令牌限制原則 ,以根據 Azure OpenAI 服務令牌的使用方式管理及強制執行每個 API 取用者的限制。 使用此原則,您可以設定限制,以每分鐘令牌表示(TPM)。

API 管理 中限制 Azure OpenAI 服務令牌的圖表。

此原則提供彈性來指派任何計數器密鑰的令牌型限制,例如訂用帳戶密鑰、原始 IP 位址,或透過原則表達式定義的任意密鑰。 此原則也會在 Azure API 管理 端預先計算提示令牌,如果提示已超過限制,將對 Azure OpenAI 服務後端不必要的要求降至最低。

下列基本範例示範如何設定每個訂用帳戶密鑰 500 個 TPM 限制:

<azure-openai-token-limit counter-key="@(context.Subscription.Id)" 
    tokens-per-minute="500" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens">
</azure-openai-token-limit>

提示

若要管理並強制執行可透過 Azure AI 模型推斷 API 取得之 LLM API 的令牌限制,API 管理 提供對等的 llm-token-limit 原則。

發出令牌計量原則

Azure OpenAI 發出令牌計量原則會透過 Azure OpenAI 服務 API 將 LLM 令牌耗用量的相關計量傳送至 Application Insights。 此原則有助於提供跨多個應用程式或 API 取用者使用 Azure OpenAI 服務模型的概觀。 此原則對於退款案例、監視和容量規劃很有用。

使用 API 管理 發出 Azure OpenAI 服務令牌計量的圖表。

此原則會擷取提示、完成和令牌使用計量總計,並將其傳送至您選擇的 Application Insights 命名空間。 此外,您可以從預先定義的維度設定或選取來分割令牌使用計量,以便依訂用帳戶標識碼、IP 位址或您選擇的自定義維度來分析計量。

例如,下列原則會將計量傳送至依用戶端 IP 位址、API 和使用者分割的 Application Insights:

<azure-openai-emit-token-metric namespace="openai">
    <dimension name="Client IP" value="@(context.Request.IpAddress)" />
    <dimension name="API ID" value="@(context.Api.Id)" />
    <dimension name="User ID" value="@(context.Request.Headers.GetValueOrDefault("x-user-id", "N/A"))" />
</azure-openai-emit-token-metric>

提示

若要傳送可透過 Azure AI 模型推斷 API 取得之 LLM API 的計量,API 管理 提供對等的 llm-emit-token-metric 原則。

後端負載平衡器和斷路器

建置智慧型手機應用程式時,其中一個挑戰是確保應用程式能夠復原後端失敗,而且可以處理高負載。 藉由在 Azure API 管理 中使用後端來設定 Azure OpenAI 服務端點,您可以平衡其之間的負載。 如果要求沒有回應,您也可以定義斷路器規則,以停止將要求轉送至 Azure OpenAI 服務後端。

後端 負載平衡器 支援迴圈配置資源、加權和優先順序型負載平衡,讓您有彈性地定義符合特定需求的負載平衡策略。 例如,在負載平衡器組態中定義優先順序,以確保特定 Azure OpenAI 端點的最佳使用率,特別是購買為 PTU 的端點。

在 API 管理 中使用後端負載平衡的圖表。

後端 斷路器 具有動態行程持續時間,並套用來自後端所提供之 Retry-After 標頭的值。 這可確保後端的精確且及時復原,將優先順序後端的使用率最大化。

在 API 管理 中使用後端斷路器的圖表。

語意快取原則

設定 Azure OpenAI 語意快 取原則,藉由儲存類似提示的完成,將令牌使用優化。

API 管理 中的語意快取圖表。

在 API 管理 中,使用 Azure Redis Enterprise 或其他與 RediSearch 相容的外部快取,並上線至 Azure API 管理,來啟用語意快取。 藉由使用 Azure OpenAI 服務內嵌 API,azure-openai-semantic-cache-store 和 azure-openai-semantic-cache-lookup 原則存放區,並從快取擷取語意上類似的提示完成。 此方法可確保完成重複使用,進而降低令牌耗用量並改善回應效能。

提示

若要為可透過 Azure AI 模型推斷 API 取得的 LLM API 啟用語意快取,API 管理 提供對等的 llm-semantic-cache-store-policyllm-semantic-cache-lookup-policy 原則。

實驗室和範例

架構與設計考量