Limitar el uso de tokens de API del modelo de lenguaje grande
SE APLICA A: Desarrollador | Básico | Básico v2 | Estándar | Standard v2 | Premium |Premium v2
La directiva de llm-token-limit
impide picos de uso de la API de modelo de lenguaje grande (LLM) por clave limitando el consumo de tokens LLM 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 LLM, 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 back-end de LLM si ya se ha superado el límite.
Nota:
Esta directiva está actualmente en versión preliminar.
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
Use la directiva con las API de LLM agregadas a Azure API Management que están disponibles a través de la API de inferencia de modelos de Azure AI.
Instrucción de la directiva
<llm-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. | Sí | N/D |
tokens-per-minute | Número máximo de tokens consumidos por petición y finalización por minuto. | Sí | 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. Cuando se establece en false , los tokens restantes por counter-key se calculan usando la utilización real de tokens a partir de la respuesta del modelo. Esto podría dar lugar a que se enviaran indicaciones al modelo que excedieran el límite de tokens. En tal caso, esto se detectará en la respuesta, y todas las solicitudes sucesivas serán bloqueadas por la directiva hasta que el límite de tokens se libere de nuevo. |
Sí | 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
- Secciones de la directiva: inbound (entrada)
- Ámbitos de la directiva: global, área de trabajo, producto, API, operación
- Puertas de enlace: clásico, v2, autohospedado, área de trabajo
Notas de uso
- Esta directiva se puede usar varias veces por definición de directiva.
- Si está disponible cuando
estimate-prompt-tokens
se establece enfalse
, los valores de la sección de uso de la respuesta de la API de LLM se usan para determinar el uso del token. - Algunos puntos de conexión de LLM admiten el streaming de respuestas. Cuando se establece
stream
entrue
en la solicitud de API para habilitar el streaming, los tokens de solicitud siempre se estiman, independientemente del valor del atributoestimate-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 />
<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>
Directivas relacionadas
- Limitación de frecuencia y cuotas
- azure-openai-token-limitdirectiva
- directivallm-emit-token-metric policy
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Kit de herramientas de directivas de Azure API Management
- Creación de directivas mediante Microsoft Copilot en Azure