Armazenamento em cache de contexto

Em um fluxo de trabalho de IA típico, é possível transmitir os mesmos tokens de entrada várias vezes para um modelo. Com o recurso de armazenamento em cache de contexto da API Gemini, é possível transmitir algum conteúdo para o modelo uma vez, armazenar os tokens de entrada em cache e consultá-los para as próximas solicitações. Em determinados volumes, usar tokens em cache tem um custo menor (e pode ter uma latência menor) do que transmitir o mesmo corpus de tokens repetidamente.

Ao armazenar um conjunto de tokens em cache, é possível escolher por quanto tempo você quer que o cache exista antes que os tokens sejam excluídos automaticamente. Essa duração de armazenamento em cache é chamada de time to live (TTL). O custo de armazenamento em cache depende do tamanho do token de entrada e por quanto tempo você quer que os tokens persistam.

O armazenamento em cache de contexto tem suporte ao Gemini 1.5 Pro e ao Gemini 1.5 Flash.

Quando usar o armazenamento em cache de contexto

O armazenamento em cache do contexto é particularmente adequado para cenários em que um contexto inicial substancial é referenciado repetidamente por solicitações mais curtas. Considere usar o armazenamento em cache de contexto para casos de uso como estes:

  • Chatbots com instruções detalhadas do sistema
  • Análise repetitiva de arquivos de vídeo longos
  • Consultas recorrentes em grandes conjuntos de documentos
  • Análise frequente do repositório de código ou correção de bugs

Como o armazenamento em cache reduz custos

O armazenamento em cache de contexto é um recurso pago projetado para reduzir os custos operacionais gerais. O faturamento é baseado nos seguintes fatores:

  1. Contagem de tokens de cache:o número de tokens de entrada armazenados em cache, faturados a uma taxa reduzida quando incluídos nas solicitações subsequentes.
  2. Duração do armazenamento:a quantidade de tempo que os tokens em cache ficam armazenados (TTL), cobrados por hora. Não há limites mínimos ou máximos no TTL.
  3. Outros fatores: outras cobranças se aplicam, como tokens de entrada e tokens de saída não armazenados em cache.

Para conferir detalhes atualizados, consulte a página de preços da API Gemini. Para saber como contar tokens, consulte o guia de tokens.

Como usar o armazenamento em cache de contexto

Esta seção pressupõe que você instalou um SDK do Gemini e configurou uma chave de API, conforme mostrado no quickstart.

Outras considerações

Ao usar o armazenamento em cache de contexto, tenha em mente as seguintes considerações:

  • A contagem mínima de tokens de entrada para armazenamento em cache de contexto é 32.768, e a máxima é a mesma que a máxima para o modelo especificado. Para saber mais sobre a contagem de tokens, consulte o Guia de tokens.
  • É possível definir o time to live (TTL) do cache, conforme mostrado no código de exemplo. Se ela não for definida, o TTL será definido como uma hora por padrão.
  • O modelo não faz distinção entre tokens em cache e tokens de entrada regulares. O conteúdo em cache é simplesmente um prefixo do prompt.
  • O serviço de armazenamento em cache fornece uma operação de exclusão para remover manualmente conteúdo do cache. Para mais detalhes, consulte a documentação do SDK de sua preferência.
  • Para o nível pago, não há limites especiais de taxa ou de uso no armazenamento em cache de contexto. Os limites de taxa padrão para GenerateContent são aplicados e os limites de token incluem tokens em cache. Para o nível sem custo financeiro, há um limite de armazenamento de 1 milhão de tokens para o Gemini 1.5 Flash, e o armazenamento em cache não está disponível para o Gemini 1.5 Pro.
  • Não é possível recuperar ou visualizar conteúdo armazenado em cache, mas é possível recuperar os metadados (name, display_name, model, bem como os tempos de criação, atualização e expiração).
  • É possível definir um novo ttl ou expire_time. Não é possível alterar outras coisas no conteúdo em cache.
  • O número de tokens em cache é retornado em usage_metadata das operações de criação, recebimento e listagem do serviço de cache, e também em GenerateContent ao usar o cache.