Cette page s'applique à Apigee, mais pas à Apigee hybrid.
Consultez la documentation d'Apigee Edge.![]()
Présentation
Les règles d'Apigee concernant les jetons LLM sont essentielles pour contrôler les coûts, optimiser les performances et assurer la stabilité de la plate-forme. Elles s'appuient sur l'utilisation des jetons LLM et les métriques des jetons de requêtes utilisateur pour appliquer des limites et fournir une surveillance en temps réel.
Ce document explique comment commencer à utiliser les règles suivantes concernant les jetons LLM :
- Règle PromptTokenLimit : protège les cibles contre l'utilisation abusive de jetons en limitant le nombre de jetons en fonction du message de requête de l'utilisateur. La règle PromptTokenLimit est comme un système anti-pics pour vos requêtes d'IA. Il vous aide à contrôler le taux d'utilisation des jetons à partir des requêtes utilisateur pour éviter les utilisations abusives et s'assurer que vos services de backend ne sont pas surchargés.
- Règle LLMTokenQuota : contrôle les dépenses LLM et applique une gestion précise des quotas en fonction des produits d'API. La règle LLMTokenQuota vous permet d'appliquer des limites de consommation de jetons pour vos API LLM sur une période spécifique (par exemple, par minute, heure, jour ou mois). Cela est essentiel pour gérer les coûts et garantir une utilisation équitable de vos services d'IA.
Règle PromptTokenLimit
Utilisez le PromptTokenLimit policy lorsque vous souhaitez protéger vos services de backend contre les pics soudains d'utilisation de jetons à partir des requêtes utilisateur. Par exemple, vous pouvez limiter le nombre de jetons par minute à un nombre raisonnable pour empêcher un seul utilisateur de surcharger votre service.
Ajoutez cette règle au flux de requêtes de votre proxy d'API.
L'exemple de règle PromptTokenLimit suivant limite le taux de jetons à 1 000 jetons par minute :
<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>Où :
<Rate>: taux auquel limiter les jetons.<UserPromptSource>: spécifie l'emplacement de la requête de l'utilisateur dans la requête.
Consultez la page de référence sur la règle PromptTokenLimit pour en savoir plus sur :
Configurez la règle PromptTokenLimit dans l'UI Apigee lorsque vous effectuez les tâches suivantes :
- Créer un produit d'API
- Créer un proxy d'API à l'aide de l'interface utilisateur
- Associer et configurer des règles dans l'UI
Règle LLMTokenQuota
Utilisez la règle LLMTokenQuota lorsque vous souhaitez définir et appliquer des quotas de consommation de jetons pour différents produits d'API, développeurs ou applications. Par exemple, vous pouvez proposer différents quotas de jetons pour différents niveaux d'abonnement.
Vous pouvez utiliser le règlement de deux manières principales :
-
Compter les jetons : utilisez le paramètre
CountOnlypour suivre l'utilisation des jetons sans appliquer de limite stricte. Cela est utile pour la surveillance et la création de rapports. -
Appliquer des quotas : utilisez le paramètre
EnforceOnlypour rejeter les appels d'API une fois le quota de jetons dépassé.
Ajoutez une règle EnforceOnly au flux de requête pour vérifier si le quota a été dépassé. Ajoutez une règle CountOnly au flux de réponse pour comptabiliser les jetons utilisés dans la réponse du LLM.
L'exemple de règle LLMTokenQuota suivant applique un quota de 10 000 jetons par heure, avec des paramètres provenant de manière dynamique d'un produit d'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>
Où :
<EnforceOnly>: lorsque la valeur est définie surtrue, cet élément est utilisé pour refuser les appels d'API une fois le quota de jetons dépassé. Cela permet aux fournisseurs d'API de définir des limites strictes sur le nombre de jetons consommés par les applications au cours d'un intervalle défini.<Interval>: cet élément spécifie l'intervalle de temps sur lequel le nombre de jetons des réponses du LLM est calculé. Il est utilisé conjointement avec<TimeUnit>et<Allow>pour définir le quota de jetons.<TimeUnit>: cet élément définit l'unité de temps pour<Interval>. Les valeurs valides sontminute,hour,dayoumonth.<Allow>: cet élément définit le nombre de jetons autorisés dans<Interval>.<LLMTokenUsageSource>: cet élément fournit la source de l'utilisation du jeton à partir de la réponse du LLM. Il doit s'agir d'un modèle de message qui fournit une seule valeur de l'utilisation des jetons.<LLMModelSource>: cet élément fournit la source du modèle à partir de la réponse ou de la requête du LLM. Il doit s'agir d'un modèle de message qui fournit une seule valeur pour le nom du modèle.
Consultez la page de référence LLMTokenQuota policy pour en savoir plus sur :
Configurez la règle LLMTokenQuota dans l'UI Apigee, comme décrit dans les sections suivantes :
- Créer un produit d'API
- Créer un proxy d'API à l'aide de l'interface utilisateur
- Associer et configurer des règles dans l'UI
Limites
Les règles relatives aux jetons LLM présentent les limites suivantes :
- Limites de la règle LLMTokenQuota
- La règle n'accepte actuellement que les jetons basés sur du texte.
- La dernière requête autorisée peut consommer plus de jetons que le quota restant.
- La règle exige le chemin JSON exact pour les jetons LLM consommés dans la charge utile de la réponse et ne peut pas le détecter automatiquement.
- Chaque événement SSE a actuellement besoin de métadonnées.
- Limites de la règle PromptTokenLimit
- La règle n'accepte actuellement que les jetons basés sur du texte.
- La règle utilise une bibliothèque standard pour compter les jetons, ce qui peut différer de la façon dont certains fournisseurs de LLM les comptent.
- La règle exige le chemin JSON exact pour le texte de l'invite. Elle ne peut pas le trouver de manière dynamique.