比較頻率限制政策

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

請參考下方的比較圖表,判斷要為速率限制用途使用哪項政策:

配額 SpikeArrest LLMTokenQuota PromptTokenLimit
用途: 限制開發人員應用程式或開發人員在特定時間內可發出的 API 代理呼叫次數。這項功能最適合在較長的時間間隔 (例如天、週或月) 內進行速率限制,特別是需要準確計數時。 限制所有消費者在短時間內 (例如幾秒或幾分鐘) 可對 API 代理發出的 API 呼叫次數。 管理及限制 LLM API 呼叫在指定期間 (分鐘、小時、天、週或月) 的詞元用量總計。您可以藉此控管 LLM 支出,並根據 API 產品套用精細的配額管理機制。 為防範權杖濫用、大量提示和潛在的阻斷服務攻擊,請根據使用者提示訊息中的權杖數量,限制輸入內容中傳送的權杖速率,藉此節流要求,保護 API 代理的目標後端。這項政策與 API 流量的突增防範政策類似,但適用於權杖。
請勿使用這項功能: 保護 API Proxy 的目標後端,避免流量暴增。請使用 SpikeArrest 或 PromptTokenLimit 達成此目的。 計算並限制應用程式在特定時間內可對 API Proxy 的目標後端建立的連線數,特別是在需要準確計算時。 保護 API Proxy 的目標後端,避免權杖遭到濫用。 請使用 PromptTokenLimit。 準確計算並限制用於帳單或長期配額管理的權杖總數。請使用 LLMTokenQuota 政策。
儲存計數? 可以,這項功能會維護計數器,追蹤 LLM 回覆消耗的權杖數量。 這項政策會計算權杖數量來強制執行速率限制,但不會像 LLMTokenQuota 政策一樣,儲存長期計數。
附加政策的最佳做法:

將其附加至 ProxyEndpoint Request PreFlow,通常是在驗證使用者之後。

這項設定可讓政策在 API Proxy 的進入點檢查配額計數器。

將其附加至 ProxyEndpoint Request PreFlow,通常位於流程的開頭。

這項功能可在 API Proxy 的進入點提供尖峰流量防護。

如果在同一個 Proxy 中同時使用 SpikeArrest 和配額政策,請務必在 ProxyEndpoint 要求預先流程中,於配額政策之前附加 SpikeArrest。SpikeArrest 可做為第一道防線,防止流量突然暴增,並在根據長期配額限制評估要求前,先平緩流量。這樣可防止配額因尖峰流量而過早耗盡。

要求流程中套用強制執行政策 (EnforceOnly),並在回應流程中套用計數政策 (CountOnly)。如果是逐句顯示回覆,請將計數政策附加至 EventFlow

將其附加至 ProxyEndpoint Request PreFlow 的流程開頭,保護後端免於過大的提示。

如果在同一個 Proxy 中同時使用 PromptTokenLimit 和 LLMTokenQuota 政策,請務必在 ProxyEndpoint Request PreFlow 中,於 LLMTokenQuota 政策「之前」附加 PromptTokenLimit。PromptTokenLimit 可做為第一道防線,防止提示過大,並在系統根據長期 LLMTokenQuota 限制評估要求前,拒絕這類提示。這樣可避免過大的提示提早耗盡權杖配額。

達到限制時的 HTTP 狀態碼: 429 (要求數超量) 429 (要求數超量) 429 (要求數超量) 429 (要求數超量)
注意事項:
  • 配額計數器會儲存在 Cassandra 中。
  • 您可以將政策設為非同步同步處理計數器,以節省資源,但這樣可能會允許略微超出限制的呼叫。
  • 可選擇平滑化演算法或有效計數演算法。前者可平滑指定時間範圍內的要求數,後者則可限制指定時間範圍內的要求總數,無論要求傳送速度多快,都不會超過上限。
  • 訊息處理工具不會協調平滑化作業。
  • 可設為 CountOnly,追蹤權杖用量,或設為 EnforceOnly,拒絕超出配額的要求。
  • 這項功能可搭配 API 產品使用,根據應用程式、開發人員、模型或特定 LLM 作業集,進行精細的配額設定。
  • 使用 <LLMTokenUsageSource> 從 LLM 回覆中擷取權杖計數,並使用 <LLMModelSource> 識別所用的模型。
  • 權杖計算方式可能與 LLM 使用的略有不同。
  • <UserPromptSource> 元素會指定要求訊息中使用者提示的位置。
瞭解詳情: 配額政策 SpikeArrest 政策 LLMTokenQuota 政策 提示詞詞元數量限制政策