Compartir vía


Limitar el uso de tokens de API de Azure OpenAI

SE APLICA A: Desarrollador | Básico | Básico v2 | Estándar | Estándar v2 | Premium

La directiva de azure-openai-token-limit impide los picos de uso de la API del Azure OpenAI Service por clave limitando el consumo de tokens del modelo de lenguaje a un número especificado por minuto. Cuando se supera el uso del token, el autor de la llamada recibe un código de estado de respuesta 429 Too Many Requests.

Al confiar en las métricas de uso de tokens devueltas desde el punto de conexión de OpenAI, la directiva puede supervisar y aplicar con precisión los límites en tiempo real. La directiva también habilita el cálculo previo de los tokens de solicitud por API Management, lo que minimiza las solicitudes innecesarias al backend de OpenAI si el límite ya se ha superado.

Nota:

Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.

Modelos admitidos de Azure OpenAI Service

La directiva se usa con las API agregadas a API Management desde el Azure OpenAI Service de los siguientes tipos:

Tipo de API Modelos admitidos
Finalización del chat gpt-3.5

gpt-4
Completion gpt-3.5-turbo-instruct
Inserciones text-embedding-3-large

text-embedding-3-small

text-embedding-ada-002

Para obtener más información, consulte Modelos de servicio de OpenAI de Azure.

Instrucción de la directiva

<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 Descripción Necesario Valor predeterminado
counter-key Clave que se va a usar para la directiva de límite de tokens. En cada valor de clave, se usa un único contador para todos los ámbitos en los que se configura la directiva. Se permiten expresiones de directiva. N/D
tokens-per-minute Número máximo de tokens consumidos por petición y finalización por minuto. N/D
estimate-prompt-tokens Valor booleano que determina si se debe calcular el número de tokens necesarios para un mensaje:
- true: calcula el número de tokens en función del esquema de solicitud en la API; puede reducir el rendimiento.
- false: no calcule los tokens de solicitud.
N/D
retry-after-header-name Nombre de un encabezado de respuesta personalizado cuyo valor es el intervalo de reintento recomendado en segundos después de que se supere el tokens-per-minute especificado. No se permiten expresiones de directiva. No Retry-After
retry-after-variable-name Nombre de una variable que almacena el intervalo de reintento recomendado en segundos después de que se supere el tokens-per-minute especificado. No se permiten expresiones de directiva. No N/D
remaining-tokens-header-name Nombre de un encabezado de respuesta cuyo valor después de cada ejecución de directiva es el número de tokens restantes permitidos para el intervalo de tiempo. No se permiten expresiones de directiva. No N/D
remaining-tokens-variable-name El nombre de una variable que después de cada ejecución de directiva almacena el número de tokens restantes permitidos para el intervalo de tiempo. No se permiten expresiones de directiva. No N/D
tokens-consumed-header-name Nombre de un encabezado de respuesta cuyo valor es el número de tokens consumidos tanto por petición como por finalización. El encabezado se agrega a la respuesta solo después de recibir la respuesta del back-end. No se permiten expresiones de directiva. No N/D
tokens-consumed-variable-name Nombre de una variable inicializada en el número estimado de tokens del símbolo del sistema en backend sección de canalización si estimate-prompt-tokens es true y cero de lo contrario. La variable se actualiza con el recuento notificado al recibir la respuesta en outbound sección. No N/D

Uso

Notas de uso

  • Esta directiva se puede usar varias veces por definición de directiva.
  • Esta directiva se puede configurar opcionalmente al agregar una API desde el Azure OpenAI Service mediante el portal.
  • Algunos puntos de conexión de Azure OpenAI admiten el streaming de respuestas. Cuando se establece stream en true en la solicitud de API para habilitar el streaming, los tokens de solicitud siempre se estiman, independientemente del valor del atributo estimate-prompt-tokens.
  • API Management usa un único contador para cada valor counter-key que se especifique en la directiva. El contador se actualiza en todos los ámbitos en los que la directiva está configurada con ese valor de clave. Si quiere configurar contadores independientes en distintos ámbitos (por ejemplo, una API o un producto específicos), especifique valores de clave diferentes en los distintos ámbitos. Por ejemplo, anexe una cadena que identifique el ámbito al valor de una expresión.

Ejemplo

En el siguiente ejemplo, el límite de tokens de 5000 por minuto es la clave de la dirección IP de quien llama. La directiva no calcula el número de tokens necesarios para un mensaje. Después de cada ejecución de directiva, los tokens restantes permitidos en el período de tiempo se almacenan en 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>

Para más información sobre el trabajo con directivas, vea: