Anthropic | Prompt Caching

Il caching dei prompt consente di memorizzare nella cache il contesto utilizzato frequentemente tra le chiamate API, riducendo i costi fino al 90% sulle letture dalla cache e migliorando la latenza. Il contenuto memorizzato nella cache è contrassegnato con un parametro cache_control e viene riutilizzato tra le richieste all'interno della finestra TTL della cache.

Memorizzazione nella cache del prompt di sistema

Memorizzare nella cache un lungo prompt di sistema per evitare di rielaborarlo ad ogni richiesta. Impostare SystemCacheControl su True per includere automaticamente il prompt di sistema in cache_control.


Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'API_KEY';

oRequest := TsgcAnthropicClass_Request_Messages.Create;
Try
  oRequest.Model := 'claude-sonnet-4-20250514';
  oRequest.MaxTokens := 4096;
  oRequest.System := 'You are an expert legal assistant... (long system prompt)';
  oRequest.SystemCacheControl := True;  // Enable caching for system prompt

  oMessage := TsgcAnthropicClass_Request_Message.Create;
  oMessage.Role := 'user';
  oMessage.Content := 'Analyze this contract clause.';
  oMessages := oRequest.Messages;
  SetLength(oMessages, 1);
  oMessages[0] := oMessage;
  oRequest.Messages := oMessages;

  oResponse := Anthropic.CreateMessage(oRequest);
  Try
    // Check cache usage in response
    WriteLn('Cache created: ' +
      IntToStr(oResponse.Usage.CacheCreationInputTokens));
    WriteLn('Cache read: ' +
      IntToStr(oResponse.Usage.CacheReadInputTokens));
    WriteLn(oResponse.Content[0].Text);
  Finally
    oResponse.Free;
  End;
Finally
  oMessage.Free;
  oRequest.Free;
End;

Caching dei blocchi di contenuto

Memorizzare nella cache blocchi di contenuto specifici (ad es. documenti di grandi dimensioni o contesto) impostando CacheControl su 'ephemeral' su singoli blocchi di contenuto.


oBlock := TsgcAnthropicClass_Request_Content_Block.Create;
oBlock.ContentType := 'text';
oBlock.Text := '(large reference text to cache)';
oBlock.CacheControl := 'ephemeral';  // Mark for caching

Memorizzazione nella cache delle definizioni degli strumenti

Memorizza nella cache le definizioni degli strumenti per evitare di rielaborarle a ogni richiesta. Questo è utile quando ha molte definizioni di strumenti che rimangono costanti tra le richieste.


oTool := TsgcAnthropicClass_Request_Tool.Create;
oTool.Name := 'search_database';
oTool.Description := 'Search the database for records.';
oTool.InputSchema := '{"type":"object","properties":{"query":{"type":"string"}}}';
oTool.CacheControl := 'ephemeral';  // Cache this tool definition

Proprietà

Prezzi