Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Développeur | Essentiel | Essentiel v2 | Standard | Standard v2 | Premium | Premium v2
La azure-openai-token-limit stratégie empêche Azure OpenAI dans les pics d’utilisation de l’API Foundry Models par clé en limitant la consommation de jetons de modèle de langage à un taux spécifié (nombre par minute), un quota sur une période spécifiée, ou les deux. Lorsqu’une limite de débit de jeton spécifiée est dépassée, l’appelant reçoit un code d’état 429 Too Many Requests de réponse. Lorsqu’un quota spécifié est dépassé, l’appelant reçoit un code d’état 403 Forbidden de réponse.
En s’appuyant sur les indicateurs d’utilisation des tokens retournés par le point de terminaison Azure OpenAI, la politique surveille et applique des limites basées sur la consommation réelle de tokens. La politique permet également d’estimer à l’avance les jetons de prompt par API Management, minimisant ainsi les requêtes inutiles vers le backend Azure OpenAI si la limite est déjà dépassée. Cependant, comme le nombre réel de tokens consommés dépend à la fois de la taille de la demande et de la taille de la complétion (qui varie selon la requête), la politique ne peut pas prédire à l’avance la consommation totale de tokens. Cette conception pourrait permettre de dépasser temporairement les limites de jetons lorsque plusieurs requêtes sont traitées simultanément.
Remarque
Définissez les éléments enfants et de stratégie dans l’ordre fourni dans l’instruction de stratégie. En savoir plus sur comment définir ou modifier des stratégies du service Gestion des API.
Prise en charge d’Azure OpenAI dans les modèles Azure AI Foundry
La stratégie est utilisée avec les API ajoutées à Gestion des API à partir d’Azure OpenAI dans les modèles AI Foundry des types suivants :
| Type de l’API | Modèles pris en charge |
|---|---|
| Saisie semi-automatique de la conversation | gpt-3.5gpt-4gpt-4ogpt-4o-minio1o3 |
| Incorporations | text-embedding-3-largetext-embedding-3-smalltext-embedding-ada-002 |
| Réponses (préversion) |
gpt-4o (Versions : 2024-11-20, 2024-08-06, 2024-05-13)gpt-4o-mini (Version : 2024-07-18)gpt-4.1 (Version : 2025-04-14)gpt-4.1-nano (Version : 2025-04-14)gpt-4.1-mini (Version : 2025-04-14)gpt-image-1 (Version : 2025-04-15)o3 (Version : 2025-04-16)o4-mini (Version : '2025-04-16) |
Remarque
Les API de saisie semi-automatique traditionnelles sont disponibles uniquement avec les versions de modèle héritées et la prise en charge est limitée.
Pour plus d’informations sur les modèles et leurs fonctionnalités, consultez Azure OpenAI dans Foundry Models.
Instruction de la stratégie
<azure-openai-token-limit counter-key="key value"
tokens-per-minute="number"
token-quota="number"
token-quota-period="Hourly | Daily | Weekly | Monthly | Yearly"
estimate-prompt-tokens="true | false"
retry-after-header-name="custom header name, replaces default 'Retry-After'"
retry-after-variable-name="policy expression variable name"
remaining-quota-tokens-header-name="header name"
remaining-quota-tokens-variable-name="policy expression variable name"
remaining-tokens-header-name="header name"
remaining-tokens-variable-name="policy expression variable name"
tokens-consumed-header-name="header name"
tokens-consumed-variable-name="policy expression variable name" />
Attributs
| Attribut | Descriptif | Obligatoire | Par défaut |
|---|---|---|---|
| contre-clé | Clé à utiliser pour la stratégie de limite de jetons. Pour chaque valeur de clé, un compteur unique est utilisé pour toutes les étendues auxquelles la stratégie est configurée. Les expressions de stratégie sont autorisées. | Oui | S/O |
| jetons par minute | Nombre maximal de jetons consommés par invite et achèvement par minute. | Une limite de débit (tokens-per-minute), un quota (token-quota sur un token-quota-period), ou les deux doivent être spécifiés. |
S/O |
| token-quota | Nombre maximal de jetons autorisés pendant l’intervalle de temps spécifié dans le token-quota-period. Les expressions de stratégie ne sont pas autorisées. |
Une limite de débit (tokens-per-minute), un quota (token-quota sur un token-quota-period), ou les deux doivent être spécifiés. |
S/O |
| token-quota-period | Longueur de la fenêtre fixe après laquelle la token-quota réinitialisation est terminée. La valeur doit être l’une des suivantes : Hourly,Daily, Weekly, Monthly, Yearly. L’heure de début d’une période de quota est calculée à l’aide de l’horodatage UTC tronqué à l’unité (heure, jour, etc.) utilisée pour la période. |
Une limite de débit (tokens-per-minute), un quota (token-quota sur un token-quota-period), ou les deux doivent être spécifiés. |
S/O |
| estimate-prompt-tokens | Valeur booléenne qui détermine s’il faut estimer le nombre de jetons requis pour une invite : - true: estimer le nombre de jetons en fonction du schéma d’invite dans l’API ; peut réduire les performances. - false: ne pas estimer les jetons d’invite. Lorsqu’il est défini sur false, les jetons restants par counter-key sont calculés à l’aide de l’utilisation réelle des jetons à partir de la réponse du modèle. Cela peut entraîner l’envoi d’invites au modèle qui dépasse la limite de jetons. Dans ce cas, cela sera détecté dans la réponse, et toutes les requêtes suivantes seront bloquées par la politique jusqu’à ce que la limite de jeton soit réinitialisée. |
Oui | S/O |
| retry-after-header-name | Nom d’un en-tête de réponse personnalisé dont la valeur est l’intervalle de nouvelle tentative recommandé en secondes après le dépassement spécifié tokens-per-minute ou token-quota dépassé. Les expressions de stratégie ne sont pas autorisées. |
Non | Retry-After |
| retry-after-variable-name | Nom d’une variable qui stocke l’intervalle de nouvelle tentative recommandé en secondes après le dépassement spécifié tokens-per-minute ou token-quota dépassé. Les expressions de stratégie ne sont pas autorisées. |
Non | S/O |
| restant-quota-tokens-header-name | Le nom d’un en-tête de réponse dont la valeur après chaque exécution de stratégie est le nombre estimé de jetons restants correspondant à token-quota autorisés pour le token-quota-period. Les expressions de stratégie ne sont pas autorisées. |
Non | S/O |
| restant-quota-tokens-variable-name | Nom d’une variable qui après chaque exécution de stratégie stocke le nombre estimé de jetons restants correspondant à token-quota autorisés pour le token-quota-period. Les expressions de stratégie ne sont pas autorisées. |
Non | S/O |
| remaining-tokens-header-name | Nom d’un en-tête de réponse dont la valeur après chaque exécution de stratégie est le nombre de jetons restants correspondant à tokens-per-minute l’intervalle de temps autorisé. Les expressions de stratégie ne sont pas autorisées. |
Non | S/O |
| restant-tokens-variable-name | Nom d’une variable qui après chaque exécution de stratégie stocke le nombre de jetons restants correspondant à tokens-per-minute l’intervalle de temps autorisé. Les expressions de stratégie ne sont pas autorisées. |
Non | S/O |
| tokens-consume-header-name | Nom d’un en-tête de réponse dont la valeur est le nombre de jetons consommés par l’invite et la saisie semi-automatique. L’en-tête est ajouté à la réponse uniquement une fois la réponse reçue du serveur principal. Les expressions de stratégie ne sont pas autorisées. | Non | S/O |
| tokens-consume-variable-name | Nom d’une variable initialisée au nombre estimé de jetons dans l’invite dans backend section du pipeline si estimate-prompt-tokens est true et zéro sinon. La variable est mise à jour avec le nombre signalé lors de la réception de la réponse dans outbound section. |
Non | S/O |
Utilisation
- Sections de la stratégie : inbound
- Étendues de la stratégie : global, espace de travail, produit, API, opération
- Passerelles : classiques, v2, auto-hébergées, espace de travail
Notes d’utilisation
- Cette politique peut être utilisée plusieurs fois par définition de la police
- Cette politique peut être configurée en option lors de l’ajout d’une API Azure OpenAI via le portail.
- Lorsqu’il est
estimate-prompt-tokensdisponible,falseles valeurs de la section utilisation de la réponse de l’API Azure OpenAI sont utilisées pour déterminer l’utilisation des jetons. - Lorsque plusieurs requêtes sont envoyées simultanément ou avec de légers délais, la politique peut permettre une consommation de jetons dépassant la limite configurée. Cela arrive parce que la politique ne peut pas déterminer le nombre exact de tokens consommés tant que les réponses ne sont pas reçues du backend. Une fois les réponses traitées et les limites des tokens dépassées, les requêtes suivantes sont bloquées jusqu’à ce que la limite soit réinitialisée.
- Certains points de terminaison Azure OpenAI prennent en charge la diffusion en continu des réponses. Lorsque
streamest défini surtruedans la requête d’API pour activer la diffusion en continu, les jetons d’invite sont toujours estimés, quelle que soit la valeur de l’attributestimate-prompt-tokens. Les jetons d’achèvement sont également estimés lorsque les réponses sont diffusées en continu. - La valeur ou
remaining-quota-tokens-variable-nameest une estimation à des fins d’information, mais peut être plus grande que prévu en fonction deremaining-quota-tokens-header-namela consommation réelle de jetons. La valeur est plus précise à mesure que le quota est approché. - Pour les modèles qui acceptent l’entrée d’image, les jetons d’image sont généralement comptabilisés par le modèle de langage principal et inclus dans les calculs de limite et de quota. Toutefois, lorsque la diffusion en continu est utilisée ou
estimate-prompt-tokensdéfinietruesur , la stratégie compte actuellement sur chaque image comme un nombre maximal de 1200 jetons. - Gestion des API utilise un seul compteur pour chaque valeur de
counter-keyque vous spécifiez dans la stratégie. Le compteur est mis à jour pour toutes les étendues pour lesquelles la stratégie est configurée avec cette valeur de clé. Si vous souhaitez configurer des compteurs distincts pour différentes étendues (par exemple une API ou un produit spécifique), spécifiez des valeurs de clé différentes dans les différentes étendues. Par exemple, ajoutez une chaîne qui identifie l’étendue avec la valeur d’une expression. - Les niveaux v2 utilisent un algorithme de seau de jetons pour la limitation de débit, ce qui diffère de l’algorithme à fenêtre glissante dans les niveaux classiques. En raison de cette différence d’implémentation, lorsque vous configurez les limites des jetons dans les niveaux v2 à plusieurs portées en utilisant le même
counter-key, assurez-vous que latokens-per-minutevaleur est cohérente à travers toutes les instances de politique. Des valeurs incohérentes peuvent entraîner des comportements imprévisibles. - Cette stratégie effectue le suivi de l’utilisation des jetons indépendamment à chaque passerelle où elle est appliquée, y compris les passerelles d’espace de travail et les passerelles régionales dans un déploiement multirégion. Il n’agrège pas le nombre de jetons dans l’ensemble de l’instance.
Exemples
Limite de débit de jetons
Dans l’exemple suivant, la limite de débit de jeton de 5 000 par minute est clé par l’adresse IP de l’appelant. La stratégie n’estime pas le nombre de jetons requis pour une invite. Après l’exécution de chaque stratégie, les jetons restants autorisés pour l’adresse IP de cet appelant dans la période de temps sont stockés dans la variable remainingTokens.
<policies>
<inbound>
<base />
<azure-openai-token-limit
counter-key="@(context.Request.IpAddress)"
tokens-per-minute="5000" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens" />
</inbound>
<outbound>
<base />
</outbound>
</policies>
Quota de jetons
Dans l’exemple suivant, le quota de jetons de 10000 est clé par l’ID d’abonnement et réinitialise mensuellement. Après chaque exécution de stratégie, le nombre de jetons restants autorisés pour cet ID d’abonnement dans la période est stocké dans la variable remainingQuotaTokens.
<policies>
<inbound>
<base />
<azure-openai-token-limit
counter-key="@(context.Subscription.Id)"
token-quota="100000" token-quota-period="Monthly" remaining-quota-tokens-variable-name="remainingQuotaTokens" />
</inbound>
<outbound>
<base />
</outbound>
</policies>
Stratégies connexes
- Limitation de débit et quotas
- Stratégie llm-token-limit
- Stratégie azure-openai-emit-token-metric
Contenu connexe
Pour plus d’informations sur l’utilisation des stratégies, consultez :
- Tutoriel : Transformer et protéger votre API
- Référence de stratégie pour obtenir la liste complète des instructions et des paramètres de stratégie
- Expressions de stratégie
- Définir ou modifier des stratégies
- Réutilisation de configurations de stratégie
- Référentiel d’extrait de stratégie
- Dépôt de terrain de jeu de stratégie
- Kit de ressources des stratégies Gestion des API Azure
- Obtenez de l’aide de Copilot pour créer, expliquer et dépanner des politiques