Armazenamento de prompts em cache
O armazenamento de prompts em cache permite que você reduza, de modo geral, a latência da solicitação e os custos dos prompts mais longos que têm um conteúdo idêntico no início do prompt. "Prompt" nesse contexto se refere à entrada de dados que você envia para o modelo como parte da sua solicitação de preenchimento de chat. Em vez de reprocessar os mesmos tokens de entrada repetidamente, o modelo é capaz de manter um cache temporário dos dados de entrada processados para aprimorar o desempenho de modo geral. O armazenamento de prompts em cache não afeta o conteúdo do resultado retornado na resposta do modelo, descontando a redução da latência e do custo. Para modelos com suporte, os tokens armazenados em cache são cobrados com um desconto de 50% no preço do token de entrada.
Modelos com suporte
Atualmente, apenas os seguintes modelos são compatíveis com o armazenamento de prompts em cache do Azure OpenAI:
o1-preview-2024-09-12
o1-mini-2024-09-12
gpt-4o-2024-05-13
gpt-4o-2024-08-06
gpt-4o-mini-2024-07-18
Suporte a API
O suporte oficial ao armazenamento de prompts em cache foi adicionado pela primeira vez na versão 2024-10-01-preview
da API. No momento, apenas modelos o1-preview-2024-09-12
e o1-mini-2024-09-12
dão suporte ao parâmetro de resposta da API cached_tokens
.
Introdução
Para tirar o melhor proveito do armazenamento de prompts em cache, a solicitação deve ter as seguintes características:
- Um mínimo de 1.024 tokens de comprimento.
- Os primeiros 1.024 tokens no prompt precisam ser idênticos.
Quando uma correspondência é encontrada entre um prompt e o conteúdo atual do cache de prompt, isso é considerado um acerto de cache. Os acertos de cache serão exibidos como cached_tokens
em prompt_token_details
na resposta de preenchimentos do chat.
{
"created": 1729227448,
"model": "o1-preview-2024-09-12",
"object": "chat.completion",
"service_tier": null,
"system_fingerprint": "fp_50cdd5dc04",
"usage": {
"completion_tokens": 1518,
"prompt_tokens": 1566,
"total_tokens": 3084,
"completion_tokens_details": {
"audio_tokens": null,
"reasoning_tokens": 576
},
"prompt_tokens_details": {
"audio_tokens": null,
"cached_tokens": 1408
}
}
}
Após os primeiros 1.024 tokens, os acertos de cache ocorrerão para cada 128 tokens idênticos adicionais.
Uma única diferença de caractere nos primeiros 1.024 tokens resultará em uma perda de cache, que é caracterizada por um valor de cached_tokens
igual a 0. O armazenamento de prompts em cache é habilitado por padrão e nenhuma configuração adicional é necessária para os modelos compatíveis.
O que é armazenado em cache?
Os modelos da série o1 são somente texto e não são compatíveis com mensagens, imagens, uso de ferramentas/chamadas de funções ou saídas estruturadas do sistema. Isso limita a eficácia do armazenamento de prompts em cache para esses modelos nas partes de usuário/assistente da matriz de mensagens, que são menos propensas a ter um prefixo idêntico de 1.024 tokens.
Para modelos de gpt-4o
e gpt-4o-mini
, há suporte para o cache de prompts para:
Compatibilidade com Armazenamento em Cache | Descrição |
---|---|
Mensagens | A matriz de mensagens completa: conteúdo do sistema, do usuário e do assistente |
Imagens | Imagens incluídas nas mensagens de usuário, tanto como links quanto como dados codificados em base64. O parâmetro de detalhes deve ser configurado da mesma forma nas diversas solicitações. |
Uso de ferramentas | Tanto a matriz de mensagens quanto as definições de ferramenta |
Saídas estruturadas | O esquema de saída estruturado é acrescentado como um prefixo à mensagem do sistema |
Para aumentar a probabilidade de acertos de cache, você deve estruturar suas solicitações de modo que o conteúdo repetitivo ocorra no início da matriz de mensagens.
Posso desabilitar o armazenamento de prompts em cache?
O armazenamento de prompts em cache é habilitado por padrão. Não existe uma opção de recusa.
Como o cache de prompt funciona para implantações provisionadas?
Para modelos com suporte em implantações provisionadas, descontamos até 100% dos tokens de entrada armazenados em cache. Para obter mais informações, confira a Documentação de taxa de transferência provisionada.