Anthropic | プロンプトキャッシング

プロンプトキャッシングにより、API 呼び出し間で頻繁に使用するコンテキストをキャッシュし、キャッシュ読み取り時のコストを最大 90% 削減してレイテンシーを改善できます。キャッシュされたコンテンツは cache_control パラメータでマークされ、キャッシュ TTL ウィンドウ内のリクエスト間で再利用されます。

システムプロンプトキャッシング

すべてのリクエストで再処理されないように長いシステムプロンプトをキャッシュします。SystemCacheControl を True に設定すると、システムプロンプトを 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;

コンテンツブロックキャッシング

個々のコンテンツブロックで CacheControl を 'ephemeral' に設定することで、特定のコンテンツブロック(大きなドキュメントやコンテキストなど)をキャッシュします。


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

ツール定義のキャッシング

すべてのリクエストで再処理されないようにツール定義をキャッシュします。これは、リクエスト間で一定のままである多数のツール定義がある場合に役立ちます。


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

プロパティ

価格設定