Anthropic | Prompt Caching

El almacenamiento en caché de prompts le permite guardar en caché el contexto de uso frecuente entre llamadas a la API, reduciendo los costes hasta un 90% en lecturas de caché y mejorando la latencia. El contenido almacenado en caché se marca con un parámetro cache_control y se reutiliza entre solicitudes dentro de la ventana TTL de la caché.

Almacenamiento en caché de indicaciones del sistema

Almacene en caché un prompt de sistema largo para evitar reprocesarlo en cada solicitud. Establezca SystemCacheControl en True para envolver automáticamente el prompt del sistema con 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;

Caché de Bloques de Contenido

Almacene en caché bloques de contenido específicos (p. ej., documentos grandes o contexto) estableciendo CacheControl en 'ephemeral' en bloques de contenido individuales.


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

Caché de definiciones de herramientas

Almacene en caché las definiciones de herramientas para evitar reprocesarlas en cada solicitud. Esto resulta útil cuando dispone de muchas definiciones de herramientas que permanecen constantes entre solicitudes.


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

Propiedades

Precios