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é.
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;
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
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