Inizia a utilizzare le policy sui token LLM

Questa pagina si applica ad Apigee, ma non ad Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Panoramica

I criteri per i token LLM di Apigee sono fondamentali per il controllo dei costi, l'ottimizzazione delle prestazioni e la stabilità della piattaforma, in quanto sfruttano l'utilizzo dei token LLM e le metriche dei token dei prompt utente per applicare limiti e fornire monitoraggio in tempo reale.

Questo documento descrive come iniziare a utilizzare i seguenti criteri dei token LLM:

  • Norma PromptTokenLimit: protegge i target dall'abuso di token limitando i token in base al messaggio di prompt dell'utente. Il criterio PromptTokenLimit è come un dispositivo di blocco per i prompt AI. Ti aiuta a controllare la velocità di utilizzo dei token dai prompt degli utenti per prevenire abusi e garantire che i tuoi servizi di backend non siano sovraccarichi.
  • Norme LLMTokenQuota: controlla le spese per gli LLM e applica una gestione granulare delle quote in base ai prodotti API. Il criterio LLMTokenQuota ti consente di applicare limiti di consumo di token per le tue API LLM in un periodo di tempo specifico (ad es. al minuto, all'ora, al giorno o al mese). Ciò è fondamentale per gestire i costi e garantire un utilizzo equo dei tuoi servizi di AI.

Policy PromptTokenLimit

Utilizza il criterio PromptTokenLimit quando vuoi proteggere i tuoi servizi di backend da picchi improvvisi di utilizzo di token da parte dei prompt degli utenti. Ad esempio, puoi limitare il numero di token al minuto a un numero ragionevole per impedire a un singolo utente di sovraccaricare il tuo servizio.

Aggiungi questa norma al flusso di richieste del proxy API.

Il seguente esempio di policy PromptTokenLimit limita la velocità dei token a 1000 token al minuto:

<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>

Dove:

  • <Rate>: la velocità con cui limitare i token.
  • <UserPromptSource>: specifica da dove recuperare il prompt dell'utente dalla richiesta.

Consulta la pagina di riferimento del criterio PromptTokenLimit per:

Configura il criterio PromptTokenLimit nell'interfaccia utente Apigee quando esegui le seguenti attività:

policy LLMTokenQuota

Utilizza il criterio LLMTokenQuota quando vuoi impostare e applicare quote di consumo di token per diversi prodotti API, sviluppatori o app. Ad esempio, puoi offrire quote di token diverse per i diversi livelli di abbonamento.

Le norme possono essere utilizzate in due modi principali:

  • Conteggio dei token: utilizza l'impostazione CountOnly per monitorare l'utilizzo dei token senza applicare un limite rigido. Questa funzionalità è utile per il monitoraggio e la generazione di report.
  • Applicazione delle quote: utilizza l'impostazione EnforceOnly per rifiutare le chiamate API una volta superata la quota di token.

Aggiungi un criterio EnforceOnly al flusso di richiesta per verificare se la quota è stata superata. Aggiungi una policy CountOnly al flusso di risposta per conteggiare i token utilizzati nella risposta LLM.

Il seguente esempio di policy LLMTokenQuota applica una quota di 10.000 token all'ora, con le impostazioni recuperate dinamicamente da un prodotto 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>

Dove:

  • <EnforceOnly>: se impostato su true, questo elemento viene utilizzato per rifiutare le chiamate API una volta superata la quota di token. In questo modo, i fornitori di API possono impostare limiti rigorosi al numero di token utilizzati dalle applicazioni in un intervallo definito.
  • <Interval>: questo elemento specifica l'intervallo di tempo durante il quale viene calcolato il numero di token dalle risposte LLM. Viene utilizzato insieme a <TimeUnit> e <Allow> per definire la quota di token.
  • <TimeUnit>: questo elemento definisce l'unità di tempo per <Interval>. I valori validi includono minute, hour, day o month.
  • <Allow>: questo elemento definisce il numero di token consentiti in <Interval>.
  • <LLMTokenUsageSource>: questo elemento fornisce l'origine dell'utilizzo dei token dalla risposta LLM. Deve essere un modello di messaggio che fornisce un singolo valore dell'utilizzo dei token.
  • <LLMModelSource>: questo elemento fornisce l'origine del modello dalla risposta o dalla richiesta LLM. Deve essere un modello di messaggio che fornisce un singolo valore del nome del modello.

Consulta la pagina di riferimento LLMTokenQuota policy per:

Configura il criterio LLMTokenQuota nell'interfaccia utente Apigee come descritto nelle sezioni seguenti:

Limitazioni

Le policy sui token LLM presentano le seguenti limitazioni:

  • Limitazioni previste dalle norme LLMTokenQuota
    • Al momento, la policy supporta solo i token basati su testo.
    • L'ultima richiesta consentita potrebbe utilizzare più token della quota rimanente.
    • Il criterio richiede il percorso JSON esatto per i token LLM utilizzati nel payload di risposta e non può rilevarlo automaticamente.
    • Al momento, ogni evento SSE richiede metadati.
  • Limitazioni delle norme PromptTokenLimit
    • Al momento, la policy supporta solo i token basati su testo.
    • Il criterio utilizza una libreria standard per conteggiare i token, che potrebbe differire dal modo in cui alcuni fornitori di LLM conteggiano i token.
    • Il criterio richiede il percorso JSON esatto per il testo del prompt; non può trovarlo in modo dinamico.

Vedi anche