Comienza a usar las políticas de tokens de LLM

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 mediante la limitación de tokens según el mensaje de la instrucción del usuario. La política PromptTokenLimit es como un arresto de picos para tus instrucciones de IA. Te ayuda a controlar la tasa de uso de tokens de las instrucciones del usuario para evitar el abuso y garantizar que tus servicios de backend no se sobrecarguen.
  • Política LLMTokenQuota: Controla los gastos de LLM y aplica la administración detallada de cuotas según los 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 PromptTokenLimit

Usa la política PromptTokenLimit cuando quieras proteger tus servicios de backend de aumentos repentinos en el uso de tokens de las 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 solicitud de tu proxy de API.

En el siguiente ejemplo de política PromptTokenLimit, se limita la tasa 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 tasa a la que se limitan los tokens.
  • <UserPromptSource>: Especifica de dónde obtener la instrucción del usuario de la solicitud.

Consulta la página de referencia de la política PromptTokenLimit para obtener 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 diferentes niveles de suscripción.

La política se puede usar de dos maneras principales:

  • Recuento de tokens: Usa la configuración CountOnly para 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 la configuración EnforceOnly para rechazar las llamadas a la API una vez que se haya excedido la cuota de tokens.

Agrega una política 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 usados en la respuesta del LLM.

En el siguiente ejemplo de política 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 en true, este elemento se usa para rechazar las llamadas a la API una vez que se haya excedido la cuota de tokens. Esto permite que los proveedores de API establezcan límites estrictos en la cantidad de tokens consumidos por las aplicaciones durante 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 incluyen minute, hour, day, o month.
  • <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 de tokens.
  • <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 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.
    • Es posible que la última solicitud permitida consuma más tokens que la cuota restante.
    • La política requiere la ruta JSON exacta para los tokens de LLM consumidos en la carga útil de la respuesta y no puede detectarla automáticamente.
  • 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, que puede diferir de la forma en que algunos proveedores de LLM cuentan los tokens.
    • La política requiere la ruta JSON exacta para el texto de la instrucción; no puede encontrarla de forma dinámica.

También consulta lo siguiente: