Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A: Desenvolvedor | Básico | Básico v2 | Padrão | Standard v2 | Premium | Premium v2
A llm-token-limit política impede picos de uso de API de LLM (modelo de linguagem grande) 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 403 Forbidden código de status de resposta.
Observação
Defina os elementos da política e os elementos filho na ordem fornecida na declaração da política. Saiba mais sobre como definir e editar as políticas de Gerenciamento de API.
APIs de modelo com suporte
Essa política funciona com APIs LLM adicionadas ao Gerenciamento de API que estão em conformidade com um dos seguintes esquemas de API:
- API de Conclusões ou Respostas de Chat do OpenAI
- Anthropic API de Mensagens (atualmente com suporte em camadas de Gerenciamento de API 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 | Obrigatório | Padrão |
|---|---|---|---|
| counter-key | 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. Expressões de política são permitidas. | Sim | N/D |
| tokens por minuto | O número máximo de tokens consumidos por prompt e conclusão por minuto. | Um limite de taxa (tokens-per-minute), uma cota (token-quota em vez de um token-quota-period) ou ambos devem ser especificados. |
N/D |
| cota de token | O número máximo de tokens permitidos durante o intervalo de tempo especificado no token-quota-period. Expressões de política são permitidas. |
Um limite de taxa (tokens-per-minute), uma cota (token-quota em vez de um token-quota-period) ou ambos devem ser especificados. |
N/D |
| token-quota-period | O comprimento da janela fixa após a qual a redefinição token-quota . O valor deve ser um dos seguintes: Hourly,Daily, , Weekly, Monthly. Yearly 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. Expressões de política são permitidas. |
Um limite de taxa (tokens-per-minute), uma cota (token-quota em vez de um token-quota-period) ou ambos devem ser especificados. |
N/D |
| estimate-prompt-tokens | Valor booliano que determina se é necessário estimar o número de tokens necessários para um prompt: - true: estimar tokens de prompt com antecedência com base no esquema de prompt na API. - false: não estimar tokens de prompt; use o uso real do token da resposta do modelo. Para obter a contagem de tokens e o comportamento de estimativa, consulte Considerações sobre contagens e estimativa de tokens. |
Sim | N/D |
| 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/D |
| 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/D |
| 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/D |
| 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/D |
| 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/D |
| 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/D |
| tokens-consumed-variable-name | O nome de uma variável inicializada para a contagem estimada de tokens de prompt na backend seção (ou zero se estimate-prompt-tokens for false), atualizado com a contagem real relatada na outbound seção. |
Não | N/D |
Uso
- Seções de política: de entrada
- Escopos de política: global, espaço de trabalho, produto, API, operação
- Gateways: clássico, v2, auto-hospedado, workspace
Observações de uso
- Essa política pode ser usada várias vezes por definição de política.
- Essa política pode ser configurada opcionalmente ao adicionar uma API de LLM usando o 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 token. Para obter mais informações, consulte Considerações sobre contagens de token e estimativa. - O Gerenciamento de API usa um único contador para cada valor
counter-keyespecificado na política. O contador é atualizado em todos os escopos nos quais a política está 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 em escopos diferentes. Por exemplo, acrescente uma cadeia de caracteres que identifica o escopo ao valor de uma expressão. - As camadas v2 usam um algoritmo de bucket de token para limitação de taxa, que difere do algoritmo de janela deslizante em camadas clássicas. Por causa dessa diferença de implementação, quando você configura limites de tokens nos níveis v2 em múltiplos escopos usando o mesmo
counter-key, certifique-se de que otokens-per-minutevalor seja consistente entre todas as instâncias de políticas. Valores inconsistentes podem causar comportamentos imprevisíveis. Para obter mais informações, consulte A limitação da solicitação com Gerenciamento de API do Azure - Essa política controla o uso de token de forma independente em cada gateway em que ele é aplicado, incluindo gateways de workspace 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 sobre contagens de token e estimativa
A política monitora e impõe limites de token usando dados reais de uso de token retornados do ponto de extremidade LLM. Opcionalmente, você pode habilitar a estimativa de token de prompt para reduzir solicitações de back-end desnecessárias. As considerações a seguir se aplicam.
- Tipos de token: atualmente, a política conta somente tokens de prompt e de conclusão.
-
Sem estimativa de token de prompt (
estimate-prompt-tokens="false"): a política usa valores reais de uso de token dausageseção da resposta à API LLM. Os prompts podem ser enviados para o back-end mesmo quando o limite é excedido; isso é detectado a partir da resposta, após a qual as solicitações subsequentes são bloqueadas até que o limite seja redefinido. -
Com a estimativa de token de prompt (
estimate-prompt-tokens="true"): a política estima tokens de prompt do esquema de prompt na definição da API antes de enviar a solicitação. Isso pode reduzir solicitações de back-end desnecessárias quando o limite já for excedido, mas pode reduzir o desempenho. -
Streaming: quando o streaming é habilitado na solicitação de API (
stream: true), os tokens de prompt são sempre estimados independentemente daestimate-prompt-tokensconfiguraçã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 geralmente são contados pela LLM de back-end e incluídos nos cálculos de limite e cota. No entanto, quando o streaming está habilitado ou
estimate-prompt-tokensdefinido comotrue, a política contabiliza cada imagem como um máximo de 1200 tokens. - Simultaneidade: como o número exato de tokens consumidos não pode ser determinado até que as respostas sejam recebidas do back-end, solicitações simultâneas ou quase simultâneas podem exceder temporariamente o limite de token configurado. Depois que as respostas são processadas e o limite é excedido, as solicitações subsequentes são bloqueadas até que o limite seja redefinido.
-
Precisão de cota restante: a cota de token restante estimada retornada
remaining-quota-tokens-variable-nameouremaining-quota-tokens-header-namepode ser maior do que o esperado com base no consumo real de token e torna-se mais precisa à medida que a cota é abordada.
Exemplos
Limite de taxa de token
No exemplo a seguir, o limite de taxa de token de 5000 por minuto é definido 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 o endereço IP de chamador no período 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 é chaveada pela ID da assinatura e redefine 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údo relacionado
Para obter mais informações sobre como trabalhar com políticas, consulte:
- Tutorial: Transformar e proteger sua API
- Referência de Política para uma lista completa das instruções de política e suas configurações
- Expressões de política
- Definir ou editar políticas
- Reutilizar configurações de política
- repositório Policy snippets
- repositório de exemplos Policy
- Kit de ferramentas de política de Gerenciamento de API do Azure
- Get Copilot assistência para criar, explicar e solucionar problemas de políticas