Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APLICA-SE A: Developer | Básico | Básico v2 | Padrão | Padrão v2 | Prémio | Premium v2
A llm-token-limit política impede picos de uso de API de modelo de linguagem grande (LLM) por chave, limitando o consumo de tokens de modelo de idioma a uma taxa especificada (número por minuto), uma cota durante um período especificado ou ambos. Quando um limite de taxa de token especificado é excedido, o chamador recebe um código de status de 429 Too Many Requests resposta. Quando uma cota especificada é excedida, o chamador recebe um código de status de 403 Forbidden resposta.
Nota
Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Saiba mais sobre como definir ou editar políticas de Gerenciamento de API.
APIs de modelos suportadas
Esta política funciona com APIs LLM adicionadas à Gestão de APIs que cumprem um dos seguintes esquemas de API:
- API de Conclusão ou Respostas do Chat OpenAI
- Anthropic Messages API (atualmente suportada nos níveis de API Management v2)
Declaração de política
<llm-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" />
Atributos
| Atributo | Descrição | Necessário | Predefinição |
|---|---|---|---|
| contra-chave | A chave a ser usada para a política de limite de token. Para cada valor de chave, um único contador é usado para todos os escopos nos quais a política está configurada. São permitidas expressões de política. | Sim | N/A |
| tokens por minuto | O número máximo de tokens consumidos por prompt e conclusão por minuto. | Deve ser especificado um limite de taxa (tokens-per-minute), um contingente (token-quota sobre um token-quota-period), ou ambos. |
N/A |
| cota de token | O número máximo de tokens permitido durante o intervalo de tempo especificado no token-quota-period. São permitidas expressões de política. |
Deve ser especificado um limite de taxa (tokens-per-minute), um contingente (token-quota sobre um token-quota-period), ou ambos. |
N/A |
| período de cota de token | O comprimento da janela fixa após a qual as token-quota redefinições. O valor deve ser um dos seguintes: ,, , , HourlyDaily. WeeklyMonthlyYearly A hora de início de um período de cota é calculada como o carimbo de data/hora UTC truncado para a unidade (hora, dia, etc.) usada para o período. São permitidas expressões de política. |
Deve ser especificado um limite de taxa (tokens-per-minute), um contingente (token-quota sobre um token-quota-period), ou ambos. |
N/A |
| estimativa-prompt-tokens | Valor booleano que determina se deve estimar o número de tokens necessários para um prompt: - true: estimar os tokens de prompt antecipadamente com base no esquema de prompt na API. - false: não estimar os tokens de prompt; Use o uso real de tokens da resposta do modelo. Para o comportamento de contagem e estimação de tokens, veja Considerações sobre contagem e estimativa de tokens. |
Sim | N/A |
| retry-after-header-name | O nome de um cabeçalho de resposta personalizado cujo valor é o intervalo de repetição recomendado em segundos após o especificado tokens-per-minute ou token-quota é excedido. Expressões de política não são permitidas. |
Não | Retry-After |
| retry-after-variable-name | O nome de uma variável que armazena o intervalo de repetição recomendado em segundos após o especificado tokens-per-minute ou token-quota é excedido. Expressões de política não são permitidas. |
Não | N/A |
| remaining-quota-tokens-header-name | O nome de um cabeçalho de resposta cujo valor após cada execução de política é o número estimado de tokens restantes correspondentes ao token-quota permitido para o token-quota-period. Expressões de política não são permitidas. |
Não | N/A |
| remaining-quota-tokens-variable-name | O nome de uma variável que, após cada execução de política, armazena o número estimado de tokens restantes correspondentes ao token-quota permitido para o token-quota-period. Expressões de política não são permitidas. |
Não | N/A |
| remaining-tokens-header-name | O nome de um cabeçalho de resposta cujo valor após cada execução de política é o número de tokens restantes correspondentes ao tokens-per-minute permitido para o intervalo de tempo. Expressões de política não são permitidas. |
Não | N/A |
| remaining-tokens-variable-name | O nome de uma variável que, após cada execução de política, armazena o número de tokens restantes correspondentes ao tokens-per-minute permitido para o intervalo de tempo. Expressões de política não são permitidas. |
Não | N/A |
| tokens-consumed-header-name | O nome de um cabeçalho de resposta cujo valor é o número de tokens consumidos pelo prompt e pela conclusão. O cabeçalho é adicionado à resposta somente depois que a resposta é recebida do back-end. Expressões de política não são permitidas. | Não | N/A |
| tokens-consumed-variable-name | O nome de uma variável inicializado na contagem estimada de tokens de prompt na backend secção (ou zero se estimate-prompt-tokens for false), atualizado com a contagem real reportada na outbound secção. |
Não | N/A |
Utilização
- Secções políticas: entrada
- Âmbitos de política: global, área de trabalho, produto, API, operação
- Gateways: clássico, v2, auto-hospedado, espaço de trabalho
Notas de utilização
- Essa política pode ser usada várias vezes por definição de política.
- Esta política pode ser configurada opcionalmente ao adicionar uma API LLM através do portal.
- O valor de
remaining-quota-tokens-variable-nameouremaining-quota-tokens-header-nameé uma estimativa e pode ser maior do que o esperado com base no consumo real de tokens. Para mais informações, consulte Considerações sobre contagem de tokens e estimativa. - O Gerenciamento de API usa um único contador para cada
counter-keyvalor especificado na política. O contador é atualizado em todos os escopos nos quais a política é configurada com esse valor de chave. Se desejar configurar contadores separados em escopos diferentes (por exemplo, uma API ou produto específico), especifique valores de chave diferentes nos escopos diferentes. Por exemplo, acrescente uma cadeia de caracteres que identifique o escopo ao valor de uma expressão. - Os níveis v2 utilizam um algoritmo de balde de token para limitação de taxa, que difere do algoritmo de janela deslizante nos níveis clássicos. Devido a esta diferença de implementação, quando configuras limites de tokens nos níveis v2 em múltiplos escopos usando o mesmo
counter-key, certifica-te de que otokens-per-minutevalor é consistente em todas as instâncias de políticas. Valores inconsistentes podem causar comportamentos imprevisíveis. Para mais informações, veja Redução avançada de pedidos com API Management do Azure - Essa política rastreia o uso do token independentemente em cada gateway em que ele é aplicado, incluindo gateways de espaço de trabalho e gateways regionais em uma implantação de várias regiões. Ele não agrega contagens de token em toda a instância.
Considerações para a contagem de tokens e estimativa
A política monitoriza e aplica os limites dos tokens usando dados reais de utilização dos tokens devolvidos pelo endpoint do LLM. Pode, opcionalmente, ativar a estimativa de tokens de prompt para reduzir pedidos desnecessários no backend. Aplicam-se as seguintes considerações.
- Tipos de tokens: Atualmente, a política conta apenas os tokens de prompt e de conclusão.
-
Sem estimação prompt do token (
estimate-prompt-tokens="false"): A política utiliza valores reais de utilização do token dausagesecção da resposta da API do LLM. Os prompts podem ser enviados para o backend mesmo quando o limite é ultrapassado; isto é detetado pela resposta, após o que os pedidos subsequentes são bloqueados até que o limite seja reiniciado. -
Com estimativa de prompt token (
estimate-prompt-tokens="true"): A política estima os prompt tokens do esquema de prompt na definição da API antes de enviar o pedido. Isto pode reduzir pedidos de backend desnecessários quando o limite já foi ultrapassado, mas pode reduzir o desempenho. -
Streaming: Quando o streaming está ativado no pedido API (
stream: true), os tokens de prompt são sempre estimados independentemente daestimate-prompt-tokensdefinição. Os tokens de conclusão também são estimados quando as respostas são transmitidas. -
Entrada de imagem: Para modelos que aceitam entrada de imagem, os tokens de imagem são geralmente contabilizados pelo LLM backend e incluídos nos cálculos de limites e quotas. No entanto, quando o streaming está ativado ou
estimate-prompt-tokensdefinido paratrue, a política superestima cada imagem como um máximo de 1200 tokens. - Concorrência: Como o número exato de tokens consumidos não pode ser determinado até que as respostas sejam recebidas do backend, pedidos simultâneos ou quase simultâneos podem temporariamente exceder o limite de tokens configurado. Uma vez processadas as respostas e ultrapassado o limite, os pedidos subsequentes são bloqueados até que o limite seja reiniciado.
-
Precisão da quota restante: A quota estimada restante de tokens devolvida ou
remaining-quota-tokens-variable-nameremaining-quota-tokens-header-namepode ser maior do que o esperado com base no consumo real de tokens, tornando-se mais precisa à medida que a quota se aproxima.
Exemplos
Limite de taxa de token
No exemplo a seguir, o limite de taxa de token de 5000 por minuto é digitado pelo endereço IP do chamador. A política não estima o número de tokens necessários para um prompt. Após cada execução de política, os tokens restantes permitidos para esse endereço IP do chamador no período de tempo são armazenados na variável remainingTokens.
<policies>
<inbound>
<base />
<llm-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>
Cota de token
No exemplo a seguir, a cota de token de 10000 é inserida pela ID da assinatura e redefinida mensalmente. Após cada execução de política, o número de tokens restantes permitidos para essa ID de assinatura no período de tempo é armazenado na variável remainingQuotaTokens.
<policies>
<inbound>
<base />
<llm-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>
Políticas relacionadas
Conteúdos relacionados
Para obter mais informações sobre como trabalhar com políticas, consulte:
- Tutorial: Transforme e proteja sua API
- Referência de política para uma lista completa de declarações de política e suas configurações
- Expressões de política
- Definir ou editar políticas
- Reutilizar configurações de política
- Snippets de políticas repo
- Exemplo de repotório
- API Management do Azure kit de ferramentas de políticas
- Obtenha assistência Copilot para criar, explicar e resolver políticas