開始使用 LLM 權杖政策

本頁內容適用於 Apigee,但不適用於 Apigee Hybrid

查看 Apigee Edge 說明文件。

總覽

Apigee 的 LLM 權杖政策對於控管成本、提升效能及確保平台穩定性至關重要,可運用 LLM 權杖用量和使用者提示權杖指標強制執行限制,並提供即時監控功能。

本文說明如何開始使用下列 LLM 權杖政策:

  • PromptTokenLimit 政策:根據使用者提示詞訊息的詞元數量限制詞元,防止目標遭到詞元濫用。PromptTokenLimit 政策就像是 AI 提示的尖峰抑制器,這有助於控管使用者提示的權杖用量,避免濫用行為,並確保後端服務不會過載。
  • LLMTokenQuota 政策:控管 LLM 支出,並根據 API 產品套用精細的配額管理機制。LLMTokenQuota 政策可讓您在特定時間範圍內 (例如每分鐘、每小時、每天或每月),強制執行 LLM API 的權杖用量限制。這對於管理費用和確保 AI 服務的公平使用至關重要。

PromptTokenLimit 政策

如要避免使用者提示詞導致後端服務的權杖用量突然暴增,請使用 PromptTokenLimit 政策。舉例來說,您可以將每分鐘的權杖數量限制在合理範圍內,避免單一使用者耗用過多服務資源。

將這項政策新增至 API Proxy 的要求流程。

下列 PromptTokenLimit 政策範例將權杖率限制為每分鐘 1,000 個權杖:

<PromptTokenLimit continueOnError="false" enabled="true" name="PTL-limitTokens-1">
  <DisplayName>Limit Prompt Tokens</DisplayName>
  <!-- The rate at which to limit tokens. Here, 1,000 per minute -->
  <Rate>1000pm</Rate>
  <!-- Specifies where to get the user's prompt from the request -->
  <UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}</UserPromptSource>
</PromptTokenLimit>

其中:

請參閱 PromptTokenLimit 政策參考資料頁面,瞭解:

執行下列工作時,請在 Apigee 使用者介面中設定 PromptTokenLimit 政策:

LLMTokenQuota 政策

如要為不同的 API 產品、開發人員或應用程式設定及強制執行權杖用量配額,請使用 LLMTokenQuota 政策。舉例來說,您可以為不同訂閱層級提供不同的權杖配額。

這項政策主要有兩種用途:

  • 計算權杖:使用 CountOnly 設定追蹤權杖用量,但不強制執行嚴格限制。這項功能有助於監控及製作報表。
  • 強制執行配額:使用 EnforceOnly 設定,在超過權杖配額後拒絕 API 呼叫。

在要求流程中新增 EnforceOnly 政策,檢查是否超出配額。在回應流程中新增 CountOnly 政策,計算 LLM 回覆中使用的權杖。

以下 LLMTokenQuota 政策範例會強制執行每小時 10,000 個權杖的配額,並從 API 產品動態取得設定:

<LLMTokenQuota name="Quota-Enforce-Only" type="rollingwindow">
  <EnforceOnly>true</EnforceOnly>
  <!-- The interval and time unit for the quota -->
  <Interval ref="verifyapikey.verify-api-key.apiproduct.developer.llmQuota.interval">1</Interval>
  <TimeUnit ref="verifyapikey.verify-api-key.apiproduct.developer.llmQuota.timeunit">hour</TimeUnit>
  <!-- The number of tokens allowed in the interval -->
  <Allow count="10000" countRef="verifyapikey.verify-api-key.apiproduct.developer.llmQuota.limit"/>
  <!-- Specifies where to get the token usage from the LLM's response -->
  <LLMTokenUsageSource>{jsonPath('$.usageMetadata.candidatesTokenCount',response.content,true)}</LLMTokenUsageSource>
  <!-- Specifies where to get the model name from the LLM's response -->
  <LLMModelSource>{jsonPath('$.model',response.content,true)}</LLMModelSource>
</LLMTokenQuota>

其中:

  • <EnforceOnly>:設為 true 時,這個元素會用於在超過權杖配額後拒絕 API 呼叫。這項功能可讓 API 提供者嚴格限制應用程式在特定時間間隔內使用的權杖數量。
  • <Interval>:這個元素指定計算 LLM 回覆詞元數量的時間間隔。與 <TimeUnit><Allow> 搭配使用,可定義權杖配額。
  • <TimeUnit>:這個元素會定義 <Interval> 的時間單位。有效值包括 minutehourdaymonth
  • <Allow>:這個元素定義 <Interval> 中允許的權杖數量。
  • <LLMTokenUsageSource>:這個元素提供 LLM 回覆的權杖用量來源。這應該是訊息範本,提供權杖用量的單一值。
  • <LLMModelSource>:這個元素提供 LLM 回覆或要求的模型來源。這應該是訊息範本,提供單一值做為模型名稱。

如要瞭解下列事項,請參閱 LLMTokenQuota 政策參考資料頁面:

在 Apigee UI 中設定 LLMTokenQuota 政策,方法如下列各節所述:

限制

LLM 權杖政策有下列限制:

  • LLMTokenQuota 政策限制
    • 這項政策目前僅支援以文字為基礎的權杖。
    • 最後一次允許的要求可能消耗的權杖數量會超過剩餘配額。
    • 這項政策要求提供回應酬載中消耗的 LLM 權杖確切 JSON 路徑,且無法自動偵測。
    • 目前每個 SSE 事件都需要中繼資料。
  • PromptTokenLimit 政策限制
    • 這項政策目前僅支援以文字為基礎的權杖。
    • 這項政策會使用標準程式庫計算權杖,這可能與部分 LLM 供應商的權杖計算方式不同。
    • 這項政策需要提示文字的確切 JSON 路徑,無法動態尋找。

另請參閱