Inizia a utilizzare le policy sui token LLM

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

Visualizza Apigee Edge documentazione.

Panoramica

Le policy dei 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 di prompt dell'utente per applicare limiti e fornire monitoraggio in tempo reale.

Questo documento descrive come iniziare a utilizzare le seguenti policy dei token LLM:

  • Policy PromptTokenLimit: protegge le destinazioni dall'utilizzo illecito dei token limitando i token in base al messaggio di prompt dell'utente. La policy PromptTokenLimit è come un arresto dei picchi per i prompt AI. Ti aiuta a controllare la frequenza di utilizzo dei token dai prompt dell'utente per prevenire l'utilizzo illecito e garantire che i servizi di backend non siano sovraccarichi.
  • Policy LLMTokenQuota: controlla le spese LLM e applica una gestione granulare delle quote in base ai prodotti API. La policy LLMTokenQuota consente di applicare limiti di consumo di token per le API LLM in un periodo di tempo specifico (ad es. al minuto, all'ora, al giorno o al mese). Questo è fondamentale per gestire i costi e garantire un utilizzo equo dei servizi AI.

Policy PromptTokenLimit

Utilizza la policy PromptTokenLimit quando vuoi proteggere i servizi di backend da picchi improvvisi nell'utilizzo dei token dai prompt dell'utente. Ad esempio, puoi limitare il numero di token al minuto a un numero ragionevole per impedire a un singolo utente di sovraccaricare il servizio.

Aggiungi questa policy al flusso di richieste del proxy API.

Il seguente esempio di policy PromptTokenLimit limita la frequenza 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 frequenza con cui limitare i token.
  • <UserPromptSource>: specifica da dove recuperare il prompt dell'utente dalla richiesta.

Per informazioni su:

Configura la policy PromptTokenLimit nell'interfaccia utente di Apigee quando esegui le seguenti attività:

Policy LLMTokenQuota

Utilizza la policy 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 livelli di abbonamento diversi.

La policy può essere utilizzata in due modi principali:

  • Conteggio dei token: utilizza l'impostazione CountOnly per monitorare l'utilizzo dei token senza applicare un limite rigido. Questa opzione è 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 una policy EnforceOnly al flusso di richieste per verificare se la quota è stata superata. Aggiungi una CountOnly policy al flusso di risposte per contare i token utilizzati nella risposta LLM.

Il seguente esempio di policy LLMTokenQuota applica una quota di 10.000 token all'ora, con le impostazioni provenienti 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 rigidi al numero di token consumati dalle applicazioni in un intervallo definito.
  • <Interval>: questo elemento specifica l'intervallo di tempo in cui 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 il <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.

Per informazioni su: LLMTokenQuota policy

Configura la policy LLMTokenQuota nell'interfaccia utente di Apigee come descritto nelle sezioni seguenti:

Limitazioni

Le policy dei token LLM presentano le seguenti limitazioni:

  • Limitazioni della policy LLMTokenQuota
    • Al momento, la policy supporta solo i token basati su testo.
    • L'ultima richiesta consentita potrebbe consumare più token della quota rimanente.
    • La policy richiede il percorso JSON esatto per i token LLM consumati nel payload della risposta e non può rilevarlo automaticamente.
  • Limitazioni della policy PromptTokenLimit
    • Al momento, la policy supporta solo i token basati su testo.
    • La policy utilizza una libreria standard per contare i token, che potrebbe differire da quella utilizzata da alcuni fornitori di LLM.
    • La policy richiede il percorso JSON esatto per il testo del prompt; non può trovare dinamicamente.

Vedi anche