Comece a usar as políticas de tokens de MDIs

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 CountOnly para 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 EnforceOnly para 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 como true, 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 incluem minute, hour, day ou month.
  • <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.

Veja também