Anthropic | Documents

Claude kann PDF-Dokumente und Textdateien verarbeiten, die als Content-Blocks innerhalb von Nachrichten gesendet werden. Dokumente werden als base64-codierte Daten oder per URL gesendet, und Claude kann ihren Inhalt analysieren, zusammenfassen und Fragen dazu beantworten.

Einfaches Beispiel

Sendet ein PDF-Dokument mit einer Frage über die Komfortmethode.


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

// Load PDF file and encode to base64
vBase64 := sgcBase64Encode(LoadFileToBytes('document.pdf'));
WriteLn(Anthropic._CreateDocumentMessage('claude-sonnet-4-20250514',
  'Summarize this document.', vBase64, 'application/pdf'));

Erweitertes Beispiel mit Citations

Verwenden Sie die typisierten Klassen, um ein Dokument mit aktivierten Zitaten zu senden. Wenn Zitate aktiviert sind, enthält Claudes Antwort Verweise auf bestimmte Teile des Quelldokuments.


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;

  // Create document content block
  oDocBlock := TsgcAnthropicClass_Request_Content_Block.Create;
  oDocBlock.ContentType := 'document';
  oDocBlock.SourceType := 'base64';
  oDocBlock.MediaType := 'application/pdf';
  oDocBlock.Data := sgcBase64Encode(LoadFileToBytes('report.pdf'));
  oDocBlock.Title := 'Annual Report';
  oDocBlock.CitationsEnabled := True;

  // Create text prompt block
  oTextBlock := TsgcAnthropicClass_Request_Content_Block.Create;
  oTextBlock.ContentType := 'text';
  oTextBlock.Text := 'What are the key findings?';

  // Build message with content blocks
  oMessage := TsgcAnthropicClass_Request_Message.Create;
  oMessage.Role := 'user';
  oBlocks := oMessage.ContentBlocks;
  SetLength(oBlocks, 2);
  oBlocks[0] := oDocBlock;
  oBlocks[1] := oTextBlock;
  oMessage.ContentBlocks := oBlocks;

  oMessages := oRequest.Messages;
  SetLength(oMessages, 1);
  oMessages[0] := oMessage;
  oRequest.Messages := oMessages;

  oResponse := Anthropic.CreateMessage(oRequest);
  Try
    if Length(oResponse.Content) > 0 then
      WriteLn(oResponse.Content[0].Text);
  Finally
    oResponse.Free;
  End;
Finally
  oDocBlock.Free;
  oTextBlock.Free;
  oMessage.Free;
  oRequest.Free;
End;

Properties

Unterstützte Formate