Esta página aplica-se ao Apigee, mas não ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
Vista geral
As políticas de tokens de MDIs do Apigee são cruciais para o controlo de custos, a otimização do desempenho e a estabilidade da plataforma, tirando partido da utilização de tokens de MDIs e das métricas de tokens de comandos do utilizador para aplicar limites e fornecer monitorização em tempo real.
Este documento descreve como começar a usar as seguintes políticas de tokens de MDIs:
- Política PromptTokenLimit: protege os alvos contra o abuso de tokens ao restringir os tokens com base na mensagem de comando do utilizador. A política PromptTokenLimit é como uma restrição de picos para os seus comandos de IA. Ajuda a controlar a taxa de utilização de tokens a partir de comandos do utilizador para evitar abusos e garantir que os seus serviços de back-end não ficam sobrecarregados.
- Política LLMTokenQuota: controla os gastos com o LLM e aplica a gestão de quotas detalhada com base nos produtos API. A política LLMTokenQuota permite-lhe aplicar limites de consumo de tokens para as suas APIs LLM durante um período específico (por exemplo, por minuto, hora, dia ou mês). Isto é fundamental para gerir os custos e garantir uma utilização justa dos seus serviços de IA.
Política PromptTokenLimit
Use a política PromptTokenLimit quando quiser proteger os seus serviços de back-end de picos súbitos na utilização de tokens de comandos do utilizador. Por exemplo, pode limitar o número de tokens por minuto a um número razoável para impedir que um único utilizador sobrecarregue o seu serviço.
Adicione esta política ao fluxo de pedidos do seu proxy de API.
O exemplo de política PromptTokenLimit seguinte limita a taxa 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>Onde:
<Rate>: a taxa à qual os tokens devem ser limitados.<UserPromptSource>: especifica onde obter o comando do utilizador a partir do pedido.
Consulte a página de referência da política PromptTokenLimit para:
Configure a política PromptTokenLimit na IU do Apigee quando realizar as seguintes tarefas:
Política LLMTokenQuota
Use a política LLMTokenQuota quando quiser definir e aplicar quotas de consumo de tokens para diferentes produtos de API, programadores ou apps. Por exemplo, pode oferecer quotas de tokens diferentes para diferentes níveis de subscrição.
A política pode ser usada de duas formas principais:
-
Contagem de tokens: use a definição
CountOnlypara acompanhar a utilização de tokens sem aplicar um limite máximo. Isto é útil para a monitorização e a criação de relatórios. -
Aplicar quotas: use a definição
EnforceOnlypara rejeitar chamadas de API assim que a quota de tokens for excedida.
Adicione uma política EnforceOnly ao fluxo de pedidos para verificar se a quota foi excedida. Adicione uma política CountOnly ao fluxo de resposta para contabilizar os tokens usados na resposta do MDG.
O exemplo de política LLMTokenQuota seguinte aplica uma quota de 10 000 tokens por hora, com as definições obtidas dinamicamente de um produto 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>
Onde:
<EnforceOnly>: quando definido comotrue, este elemento é usado para rejeitar chamadas API assim que a quota de tokens for excedida. Isto permite que os fornecedores de APIs definam limites rigorosos para o número de tokens consumidos pelas aplicações durante um intervalo definido.<Interval>: este elemento especifica o intervalo de tempo durante o qual é calculado o número de tokens das respostas do MDI/CE. É usado em conjunto com<TimeUnit>e<Allow>para definir a quota de tokens.<TimeUnit>: este elemento define a unidade de tempo para o elemento<Interval>. Os valores válidos incluemminute,hour,dayoumonth.<Allow>: este elemento define o número de tokens permitidos no elemento<Interval>.<LLMTokenUsageSource>: este elemento fornece a origem da utilização de tokens da resposta do GML. Deve ser um modelo de mensagem que forneça um único valor da utilização de tokens.<LLMModelSource>: este elemento fornece a origem do modelo a partir da resposta ou do pedido do MDI/CE. Deve 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 IU do Apigee, conforme descrito nas secções seguintes:
Limitações
As políticas de tokens de MDIs têm as seguintes limitações:
- Limitações da política LLMTokenQuota
- Atualmente, a política só suporta tokens baseados em texto.
- O último pedido permitido pode consumir mais tokens do que a quota restante.
- A política requer o caminho JSON exato para os tokens do GML consumidos no payload de resposta e não consegue detetá-lo automaticamente.
- Atualmente, todos os eventos SSE precisam de metadados.
- Limitações da política PromptTokenLimit
- Atualmente, a política só suporta tokens baseados em texto.
- A política usa uma biblioteca padrão para contabilizar os tokens, o que pode diferir da forma como alguns fornecedores de MDIs contabilizam os tokens.
- A política requer o caminho JSON exato para o texto do comando. Não é possível encontrá-lo dinamicamente.