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:
- Criar um produto de API
- Como criar um proxy de API usando a interface
- Como anexar e configurar políticas na interface
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
CountOnlypara 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
EnforceOnlypara 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 comotrue, 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 incluemminute,hour,dayoumonth.<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:
- Criar um produto de API
- Como criar um proxy de API usando a interface
- Como anexar e configurar políticas na interface
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.