Esta página se aplica a Apigee, pero no a Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Descripción general
Las políticas de tokens de LLM de Apigee son fundamentales para el control de costos, la optimización del rendimiento y la estabilidad de la plataforma, ya que aprovechan el uso de tokens de LLM y las métricas de tokens de instrucciones del usuario para aplicar límites y proporcionar supervisión en tiempo real.
En este documento, se describe cómo comenzar a usar las siguientes políticas de tokens de LLM:
- Política PromptTokenLimit: Protege los destinos del abuso de tokens limitando los tokens según el mensaje de la instrucción del usuario. La política PromptTokenLimit es como un tope de seguridad para tus instrucciones de IA. Te ayuda a controlar la tasa de uso de tokens a partir de instrucciones del usuario para evitar abusos y garantizar que tus servicios de backend no se sobrecarguen.
- Política de LLMTokenQuota: Controla los gastos de LLM y aplica una administración de cuotas detallada basada en productos de API. La política LLMTokenQuota te permite aplicar límites de consumo de tokens para tus APIs de LLM durante un período específico (p.ej., por minuto, hora, día o mes). Esto es fundamental para administrar los costos y garantizar el uso justo de tus servicios de IA.
Política de PromptTokenLimit
Usa la política de PromptTokenLimit cuando quieras proteger tus servicios de backend de aumentos repentinos en el uso de tokens a partir de instrucciones del usuario. Por ejemplo, puedes limitar la cantidad de tokens por minuto a un número razonable para evitar que un solo usuario sobrecargue tu servicio.
Agrega esta política al flujo de solicitudes de tu proxy de API.
En el siguiente ejemplo de política de PromptTokenLimit, se limita la frecuencia de tokens a 1,000 tokens por minuto:
<PromptTokenLimit continueOnError="false" enabled="true" name="PTL-limitTokens-1">
<DisplayName>Limit Prompt Tokens</DisplayName>
<!-- The rate at which to limit tokens. Here, 1,000 per minute -->
<Rate>1000pm</Rate>
<!-- Specifies where to get the user's prompt from the request -->
<UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}</UserPromptSource>
</PromptTokenLimit>Aquí:
<Rate>: Es la frecuencia con la que se limitan los tokens.<UserPromptSource>: Especifica de dónde se obtiene la instrucción del usuario de la solicitud.
Consulta la página de referencia de la política PromptTokenLimit para obtener información sobre lo siguiente:
Configura la política PromptTokenLimit en la IU de Apigee cuando realices las siguientes tareas:
Política LLMTokenQuota
Usa la política LLMTokenQuota cuando quieras establecer y aplicar cuotas de consumo de tokens para diferentes productos de API, desarrolladores o apps. Por ejemplo, puedes ofrecer diferentes cuotas de tokens para los distintos niveles de suscripción.
La política se puede usar de dos formas principales:
-
Recuento de tokens: Usa el parámetro de configuración
CountOnlypara hacer un seguimiento del uso de tokens sin aplicar un límite estricto. Esto es útil para la supervisión y la generación de informes. -
Aplicación de cuotas: Usa el parámetro de configuración
EnforceOnlypara rechazar las llamadas a la API una vez que se haya superado la cuota de tokens.
Agrega una política de EnforceOnly al flujo de solicitud para verificar si se excedió la cuota. Agrega una política CountOnly al flujo de respuesta para contar los tokens que se usan en la respuesta del LLM.
En el siguiente ejemplo de política de LLMTokenQuota, se aplica una cuota de 10,000 tokens por hora, con la configuración obtenida de forma dinámica de un producto de API:
<LLMTokenQuota name="Quota-Enforce-Only" type="rollingwindow"> <EnforceOnly>true</EnforceOnly> <!-- The interval and time unit for the quota --> <Interval ref="verifyapikey.verify-api-key.apiproduct.developer.llmQuota.interval">1</Interval> <TimeUnit ref="verifyapikey.verify-api-key.apiproduct.developer.llmQuota.timeunit">hour</TimeUnit> <!-- The number of tokens allowed in the interval --> <Allow count="10000" countRef="verifyapikey.verify-api-key.apiproduct.developer.llmQuota.limit"/> <!-- Specifies where to get the token usage from the LLM's response --> <LLMTokenUsageSource>{jsonPath('$.usageMetadata.candidatesTokenCount',response.content,true)}</LLMTokenUsageSource> <!-- Specifies where to get the model name from the LLM's response --> <LLMModelSource>{jsonPath('$.model',response.content,true)}</LLMModelSource> </LLMTokenQuota>
Aquí:
<EnforceOnly>: Cuando se establece entrue, este elemento se usa para rechazar las llamadas a la API una vez que se supera la cuota de tokens. Esto permite que los proveedores de API establezcan límites estrictos en la cantidad de tokens que consumen las aplicaciones en un intervalo definido.<Interval>: Este elemento especifica el intervalo de tiempo durante el cual se calcula la cantidad de tokens de las respuestas del LLM. Se usa junto con<TimeUnit>y<Allow>para definir la cuota de tokens.<TimeUnit>: Este elemento define la unidad de tiempo para el<Interval>. Los valores válidos incluyenminute,hour,dayomonth.<Allow>: Este elemento define la cantidad de tokens permitidos en el<Interval>.<LLMTokenUsageSource>: Este elemento proporciona la fuente del uso de tokens de la respuesta del LLM. Debe ser una plantilla de mensaje que proporcione un solo valor del uso del token.<LLMModelSource>: Este elemento proporciona la fuente del modelo a partir de la respuesta o solicitud del LLM. Debe ser una plantilla de mensaje que proporcione un solo valor del nombre del modelo.
Consulta la página de referencia de la política LLMTokenQuota para obtener información sobre lo siguiente:
Configura la política LLMTokenQuota en la IU de Apigee como se describe en las siguientes secciones:
Limitaciones
Las políticas de tokens de LLM tienen las siguientes limitaciones:
- Limitaciones de la política LLMTokenQuota
- Actualmente, la política solo admite tokens basados en texto.
- La última solicitud permitida puede consumir más tokens que la cuota restante.
- La política requiere la ruta JSON exacta para los tokens del LLM que se consumen en la carga útil de la respuesta y no puede detectarla automáticamente.
- Actualmente, todos los eventos de SSE necesitan metadatos.
- Limitaciones de la política PromptTokenLimit
- Actualmente, la política solo admite tokens basados en texto.
- La política usa una biblioteca estándar para contar los tokens, lo que puede diferir de la forma en que algunos proveedores de LLM los cuentan.
- La política requiere la ruta JSON exacta para el texto de la instrucción, ya que no puede encontrarla de forma dinámica.