Empezar a usar las políticas de tokens de LLMs

Esta página se aplica a Apigee, pero no a Apigee Hybrid.

Consulta la documentación de Apigee Edge.

Información general

Las políticas de tokens de LLM de Apigee son fundamentales para controlar los costes, optimizar el rendimiento y mantener la estabilidad de la plataforma. Para ello, aprovechan el uso de tokens de LLM y las métricas de tokens de las peticiones de los usuarios para aplicar límites y ofrecer monitorización en tiempo real.

En este documento se describe cómo empezar a usar las siguientes políticas de tokens de LLMs:

  • Política PromptTokenLimit: protege los destinos frente al abuso de tokens limitando los tokens en función del mensaje de petición del usuario. La política PromptTokenLimit es como un freno para tus peticiones de IA. Te ayuda a controlar la frecuencia de uso de tokens de las peticiones de los usuarios para evitar abusos y asegurarte de que tus servicios backend no se saturen.
  • Política LLMTokenQuota: controla los gastos de LLM y aplica una gestión de cuotas granular basada en productos de API. La política LLMTokenQuota le permite aplicar límites de consumo de tokens a sus APIs de LLM durante un periodo específico (por ejemplo, por minuto, hora, día o mes). Esto es fundamental para gestionar los costes y asegurar un uso justo de tus servicios de IA.

Política PromptTokenLimit

Usa la política PromptTokenLimit cuando quieras proteger tus servicios backend frente a picos repentinos en el uso de tokens procedentes de las peticiones de los usuarios. Por ejemplo, puede limitar el número de tokens por minuto a una cifra razonable para evitar que un solo usuario sobrecargue su servicio.

Añade esta política al flujo de solicitudes de tu proxy de API.

En el siguiente ejemplo de política PromptTokenLimit,se limita la frecuencia de tokens a 1000 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>

Donde:

  • <Rate>: la frecuencia a la que se limitan los tokens.
  • <UserPromptSource>: especifica de dónde se obtiene la petición del usuario.

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 interfaz de usuario de Apigee cuando realices las siguientes tareas:

Política LLMTokenQuota

Usa la política LLMTokenQuota cuando quieras definir y aplicar cuotas de consumo de tokens para diferentes productos de API, desarrolladores o aplicaciones. Por ejemplo, puedes ofrecer diferentes cuotas de tokens para diferentes niveles de suscripción.

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

  • Contar tokens: usa el ajuste CountOnly para monitorizar el uso de tokens sin aplicar un límite estricto. Esto es útil para monitorizar y generar informes.
  • Aplicar cuotas: usa el ajuste EnforceOnly para rechazar las llamadas a la API una vez que se haya superado la cuota de tokens.

Añade una política de EnforceOnly al flujo de solicitudes para comprobar si se ha superado la cuota. Añade una política CountOnly al flujo de respuesta para contar los tokens usados en la respuesta de LLM.

En el siguiente ejemplo de política LLMTokenQuota se aplica una cuota de 10.000 tokens por hora, con los ajustes obtenidos dinámicamente 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>

Donde:

  • <EnforceOnly>: Si se le asigna el valor true, este elemento se usa para rechazar las llamadas a la API una vez que se ha superado la cuota de tokens. De esta forma, los proveedores de APIs pueden establecer límites estrictos en el número de tokens que consumen las aplicaciones durante un intervalo definido.
  • <Interval>: este elemento especifica el intervalo de tiempo en el que se calcula el número 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 de <Interval>. Los valores válidos son minute, hour, day o month.
  • <Allow>: este elemento define el número de tokens permitidos en <Interval>.
  • <LLMTokenUsageSource>: este elemento proporciona la fuente del uso del token de la respuesta del LLM. Debe ser una plantilla de mensaje que proporcione un único valor del uso del token.
  • <LLMModelSource>: este elemento proporciona la fuente del modelo a partir de la respuesta o la solicitud del LLM. Debe ser una plantilla de mensaje que proporcione un único 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 interfaz de usuario 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 de los tokens de LLM consumidos 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 LLMs cuentan los tokens.
    • La política requiere la ruta JSON exacta del texto de la petición; no puede encontrarla de forma dinámica.

Consulta también