Começar a usar políticas de tokens do LLM

Esta página se aplica à Apigee, mas não à Apigee híbrida.

Confira a documentação da Apigee Edge.

Visão geral

As políticas de token de LLM da Apigee são cruciais para o controle de custos, a otimização de desempenho e a estabilidade da plataforma. Elas aproveitam o uso de tokens de LLM e as métricas de token de comandos do usuário para aplicar limites e fornecer monitoramento em tempo real.

Este documento descreve como começar a usar as seguintes políticas de token de LLM:

  • Política PromptTokenLimit: protege os destinos contra abuso de tokens ao limitar os tokens com base na mensagem de comando do usuário. A política PromptTokenLimit é como uma proteção contra picos para seus comandos de IA. Ele ajuda a controlar a taxa de uso de tokens de comandos do usuário para evitar abusos e garantir que seus serviços de back-end não sejam sobrecarregados.
  • Política LLMTokenQuota: controla os gastos com LLMs e aplica um gerenciamento granular de cotas com base em produtos de API. A política LLMTokenQuota permite aplicar limites de consumo de tokens para suas APIs de LLM em um período específico (por exemplo, por minuto, hora, dia ou mês). Isso é fundamental para gerenciar custos e garantir o uso justo dos seus serviços de IA.

Política PromptTokenLimit

Use a política PromptTokenLimit quando quiser proteger seus serviços de back-end contra picos repentinos no uso de tokens de comandos do usuário. Por exemplo, você pode limitar o número de tokens por minuto a um valor razoável para evitar que um único usuário sobrecarregue seu serviço.

Adicione essa política ao fluxo de solicitação do proxy de API.

O exemplo de política PromptTokenLimit a seguir limita a taxa de tokens a 1.000 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>

Em que:

  • <Rate>: a taxa em que os tokens serão limitados.
  • <UserPromptSource>: especifica de onde extrair o comando do usuário da solicitação.

Consulte a página de referência da política PromptTokenLimit para:

Configure a política PromptTokenLimit na interface da Apigee ao realizar as seguintes tarefas:

Política LLMTokenQuota

Use a política LLMTokenQuota quando quiser definir e aplicar cotas de consumo de tokens para diferentes produtos de API, desenvolvedores ou apps. Por exemplo, você pode oferecer cotas de token diferentes para níveis de assinatura diferentes.

A política pode ser usada de duas maneiras principais:

  • Contagem de tokens: use a configuração CountOnly para rastrear o uso de tokens sem impor um limite absoluto. Isso é útil para monitoramento e geração de relatórios.
  • Imposição de cotas: use a configuração EnforceOnly para rejeitar chamadas de API quando a cota de token for excedida.

Adicione uma política EnforceOnly ao fluxo de solicitação para verificar se a cota foi excedida. Adicione uma política CountOnly ao fluxo de resposta para contar os tokens usados na resposta do LLM.

O exemplo de política LLMTokenQuota a seguir impõe uma cota de 10.000 tokens por hora, com as configurações originadas dinamicamente de um produto 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>

Em que:

  • <EnforceOnly>: quando definido como true, esse elemento é usado para rejeitar chamadas de API depois que a cota de token é excedida. Isso permite que os provedores de API definam limites estritos para o número de tokens consumidos por aplicativos em um intervalo definido.
  • <Interval>: esse elemento especifica o intervalo de tempo em que o número de tokens das respostas do LLM é calculado. Ele é usado com <TimeUnit> e <Allow> para definir a cota de tokens.
  • <TimeUnit>: esse elemento define a unidade de tempo para o <Interval>. Os valores válidos incluem minute, hour, day ou month.
  • <Allow>: esse elemento define o número de tokens permitidos no <Interval>.
  • <LLMTokenUsageSource>: esse elemento fornece a origem do uso de tokens da resposta do LLM. Ele precisa ser um modelo de mensagem que forneça um único valor do uso do token.
  • <LLMModelSource>: esse elemento fornece a origem do modelo da resposta ou solicitação do LLM. Ele precisa ser um modelo de mensagem que forneça um único valor do nome do modelo.

Consulte a página de referência da política LLMTokenQuota para:

Configure a política LLMTokenQuota na interface da Apigee, conforme descrito nas seções a seguir:

Limitações

As políticas de token de LLM têm as seguintes limitações:

  • Limitações da política LLMTokenQuota
    • No momento, a política só é compatível com tokens baseados em texto.
    • A última solicitação permitida pode consumir mais tokens do que a cota restante.
    • A política exige o caminho JSON exato para os tokens do LLM consumidos no payload da resposta e não pode detectá-lo automaticamente.
    • No momento, todos os eventos SSE precisam de metadados.
  • Limitações da política PromptTokenLimit
    • No momento, a política só é compatível com tokens baseados em texto.
    • A política usa uma biblioteca padrão para contar os tokens, o que pode ser diferente de como alguns provedores de LLM fazem essa contagem.
    • A política exige o caminho JSON exato para o texto do comando. Ela não consegue encontrá-lo dinamicamente.

Consulte também