Limitar o uso do token da API OpenAI do Azure
APLICA-SE A: Developer | Básico | Básico v2 | Padrão | Padrão v2 | Prémio | Premium v2
A azure-openai-token-limit
política impede picos de uso da API do Serviço OpenAI do Azure por chave, limitando o consumo de tokens de modelo de idioma a um número especificado por minuto. Quando o uso do token é excedido, o chamador recebe um código de status de 429 Too Many Requests
resposta.
Ao confiar em métricas de uso de token retornadas do endpoint OpenAI, a política pode monitorar e impor limites com precisão em tempo real. A política também permite o pré-cálculo de tokens de prompt pelo Gerenciamento de API, minimizando solicitações desnecessárias para o back-end do OpenAI se o limite já for excedido.
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.
Modelos de Serviço OpenAI do Azure suportados
A política é usada com APIs adicionadas ao Gerenciamento de API do Serviço OpenAI do Azure dos seguintes tipos:
Tipo de API | Modelos suportados |
---|---|
Conclusão do chat | GPT-3,5 GPT-4 |
Conclusão | GPT-3.5-Turbo-Instrução |
Incorporações | incorporação de texto-3-grande incorporação de texto-3-pequeno incorporação de texto-ada-002 |
Para obter mais informações, consulte Modelos do Azure OpenAI Service.
Declaração de política
<azure-openai-token-limit counter-key="key value"
tokens-per-minute="number"
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-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 | Description | 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. | Sim | N/A |
estimativa-prompt-tokens | Valor booleano que determina se deve estimar o número de tokens necessários para um prompt: - true : estimar o número de tokens com base no esquema de prompt na API; pode reduzir o desempenho. - false : não estime tokens de prompt. Quando definido como false , os tokens restantes por counter-key são calculados usando o uso real do token da resposta do modelo. Isso pode resultar no envio de prompts para o modelo que excedem o limite de token. Nesse caso, isso será detetado na resposta e todas as solicitações subsequentes serão bloqueadas pela política até que o limite de token seja liberado novamente. |
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 ser 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 ser excedido. Expressões de política não são permitidas. |
No | 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 permitidos para o intervalo de tempo. Expressões de política não são permitidas. | No | 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 permitidos para o intervalo de tempo. Expressões de política não são permitidas. | No | 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. | No | N/A |
tokens-consumed-variable-name | O nome de uma variável inicializada para o número estimado de tokens no prompt na backend seção do pipeline se estimate-prompt-tokens for true e zero caso contrário. A variável é atualizada com a contagem relatada ao receber a resposta na outbound seção. |
No | 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.
- Opcionalmente, essa política pode ser configurada ao adicionar uma API do Serviço OpenAI do Azure usando o portal.
- Quando disponível quando
estimate-prompt-tokens
definido comofalse
, os valores na seção de uso da resposta da API do Serviço OpenAI do Azure são usados para determinar o uso do token. - Determinados pontos de extremidade do Azure OpenAI oferecem suporte ao streaming de respostas. Quando
stream
definido comotrue
na solicitação de API para habilitar o streaming, os tokens de prompt são sempre estimados, independentemente do valor doestimate-prompt-tokens
atributo. Os tokens de conclusão também são estimados quando as respostas são transmitidas. - O Gerenciamento de API usa um único contador para cada
counter-key
valor 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.
Exemplo
No exemplo a seguir, o limite 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 />
<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>
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
- Recompra de trechos de política
- Kit de ferramentas de política de Gerenciamento de API do Azure
- Criar políticas usando o Microsoft Copilot no Azure