Anthropic API voor Delphi

· Componenten

Integreer de Anthropic Claude-API in je Delphi-toepassingen

sgcWebSockets levert een productieklare Delphi-component voor de volledige Anthropic Claude-API — van tekstgeneratie en vision tot tool-use, extended thinking en meer. 

Anthropic Claude is een van de meest geavanceerde AI-modelfamilies die vandaag beschikbaar zijn, bekend om zijn uitzonderlijke redeneervermogen, safety-first-design en veelzijdige mogelijkheden voor tekst, code, vision en gestructureerde data. Voor Delphi-ontwikkelaars die deze mogelijkheden willen benutten, biedt sgcWebSockets TsgcHTTP_API_Anthropic — een uitgebreide, native component die het gehele oppervlak van de Anthropic-API omvat.

Of je nu intelligente chatbots bouwt, documentanalyse automatiseert, complexe tool-pipelines orkestreert of duizenden requests in batch verwerkt: deze component geeft je directe toegang tot elke Claude-functie via heldere, type-veilige Delphi-code. Geen REST-boilerplate. Geen geworstel met JSON. Plaats gewoon de component, stel je API-sleutel in en begin met bouwen.

Volledige API-dekking

 Elke belangrijke functie van de Anthropic Claude-API wordt out-of-the-box ondersteund.

Messages en streaming

Verstuur berichten met system-prompts, ontvang antwoorden synchroon of in realtime gestreamd via Server-Sent Gebeurtenissen.
Vision

Analyseer afbeeldingen in JPEG-, PNG-, GIF- en WebP-formaat. Claude beschrijft, interpreteert en redeneert over visuele inhoud.
Tool use

Definieer custom tools met JSON Schema en laat Claude ze aanroepen. Bouw agentic workflows met function calling.
Extended thinking

Schakel stapsgewijs redeneren in voor complexe taken. Ideaal voor wiskunde, analyse en multi-step problem solving.
Documentverwerking

Verstuur PDF-documenten en tekstbestanden voor analyse, samenvatting en vraag-en-antwoord met citation-ondersteuning.
Gestructureerde outputs

Forceer Claude om geldige JSON terug te geven volgens jouw schema. Gegarandeerd parseerbare, type-veilige antwoorden.
Web search

Laat Claude tijdens gesprekken het web doorzoeken naar realtime-informatie met behulp van ingebouwde server-side tools.
Prompt caching

Cache system-prompts, content-blocks en tool-definities. Verlaag kosten met tot 90% op herhaalde context.
Message batches

Verwerk asynchroon duizenden requests. Perfect voor bulk content-generatie en data processing-pipelines.
Files-API

Upload, lijst op, download en beheer bestanden op de servers van Anthropic. Verwijs ernaar in meerdere gesprekken.
MCP-connector

Verbind Claude met externe Model Context Protocol-servers. Breid mogelijkheden uit met tools en diensten van derden.
Token counting

Tel tokens voordat je requests verstuurt. Schat nauwkeurig kosten in en beheer je context window-budget.

Aan de slag

Integreer Claude binnen een minuut in je Delphi-project. Plaats de component, configureer je API-sleutel en verstuur je eerste bericht. 

// Create the component and configure the API key
var
  Anthropic: TsgcHTTP_API_Anthropic;
  vResponse: string;
begin
  Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
  Try
    Anthropic.AnthropicOptions.ApiKey := 'YOUR_API_KEY';
    // Send a simple message to Claude
    vResponse := Anthropic._CreateMessage(
      'claude-sonnet-4-20250514', 'Hello, Claude!');
    ShowMessage(vResponse);
  Finally
    Anthropic.Free;
  End;
end; 

Messages en streaming

De Messages-API vormt de basis van elke Claude-interactie. Verstuur tekst met optionele system-prompts en ontvang antwoorden synchroon of in realtime gestreamd.

System-prompts

Stuur het gedrag van Claude door een system-prompt op te geven die de context, persoonlijkheid of beperkingen voor het gesprek vastlegt. 

vResponse := Anthropic._CreateMessageWithSystem(
  'claude-sonnet-4-20250514',
  'You are a helpful assistant that responds in Spanish.',
  'What is the capital of France?');
// Returns: "La capital de Francia es París." 

Realtime streaming

Voor responsieve gebruikersinterfaces stream je het antwoord van Claude token-voor-token via Server-Sent Gebeurtenissen. Wijs de event-handler OnHTTPAPISSE toe en roep _CreateMessageStream aan. 

// Enable streaming via SSE
Anthropic.OnHTTPAPISSE := OnSSEEvent;
Anthropic._CreateMessageStream('claude-sonnet-4-20250514',
  'Tell me a story about a brave explorer.');
procedure TForm1.OnSSEEvent(Sender: TObject;
  const aEvent, aData: string; var Cancel: Boolean);
begin
  // aEvent: event type (e.g., content_block_delta)
  // aData: JSON payload for this event
  Memo1.Lines.Add(aData);
end; 

Geavanceerde getypeerde API

Voor volledige controle over request-parameters — temperature, top-p, stop sequences, metadata — gebruik je de getypeerde request- en response-klassen. 

var
  oRequest: TsgcAnthropicClass_Request_Messages;
  oMessage: TsgcAnthropicClass_Request_Message;
  oResponse: TsgcAnthropicClass_Response_Messages;
begin
  oRequest := TsgcAnthropicClass_Request_Messages.Create;
  Try
    oRequest.Model := 'claude-sonnet-4-20250514';
    oRequest.MaxTokens := 1024;
    oRequest.System := 'You are a helpful assistant.';
    oRequest.Temperature := 0.7;
    oMessage := TsgcAnthropicClass_Request_Message.Create;
    oMessage.Role := 'user';
    oMessage.Content := 'Explain quantum computing in simple terms.';
    // ... add message to request, send, and process response
    oResponse := Anthropic.CreateMessage(oRequest);
    Try
      if Length(oResponse.Content) > 0 then
        ShowMessage(oResponse.Content[0].Text);
    Finally
      oResponse.Free;
    End;
  Finally
    oMessage.Free;
    oRequest.Free;
  End;
end; 

Vision — afbeeldingen begrijpen

 Claude kan afbeeldingen analyseren en erover redeneren. Verstuur foto's, screenshots, diagrammen of grafieken en ontvang gedetailleerde beschrijvingen, data-extractie of visuele vraag-en-antwoord.

Ondersteunde formaten zijn onder andere JPEG, PNG, GIF en WebP. Afbeeldingen worden verzonden als base64-gecodeerde content-blocks.

// Load an image and ask Claude to describe it
var
  vBase64: string;
begin
  vBase64 := sgcBase64Encode(LoadFileToBytes('product-photo.png'));
  ShowMessage(Anthropic._CreateVisionMessage(
    'claude-sonnet-4-20250514',
    'Describe this product image for an e-commerce listing.',
    vBase64, 'image/png'));
end; 

Tool use — function calling

Definieer custom tools met JSON Schema, en Claude bepaalt wanneer en hoe deze aan te roepen. Dit is de basis voor het bouwen van agentic, multi-step workflows.

De tool-use-flow volgt een duidelijk patroon: definieer tools, verstuur een request, detecteer tool_use in het antwoord, voer de functie lokaal uit en geef het resultaat terug aan Claude voor het uiteindelijke antwoord. 

// Define a weather tool with JSON Schema input
oTool := TsgcAnthropicClass_Request_Tool.Create;
oTool.Name := 'get_weather';
oTool.Description := 'Get the current weather in a given location';
oTool.InputSchema :=
  '{"type":"object","properties":{"location":{"type":"string",' +
  '"description":"The city and state"}},"required":["location"]}';
// Send request with tools defined
oResponse := Anthropic.CreateMessage(oRequest);
// Check if Claude wants to call a tool
if oResponse.StopReason = 'tool_use' then
begin
  for i := 0 to Length(oResponse.Content) - 1 do
  begin
    if oResponse.Content[i].ContentType = 'tool_use' then
    begin
      vToolUseId := oResponse.Content[i].Id;
      vToolName  := oResponse.Content[i].Name;
      vToolInput := oResponse.Content[i].Input;
      // Execute the tool and return the result to Claude
    end;
  end;
end; 

Documentverwerking en citations

Verstuur PDF-documenten en tekstbestanden naar Claude voor analyse, samenvatting en vraag-en-antwoord. Schakel citations in om verifieerbare verwijzingen terug naar het bronmateriaal te ontvangen. 

// Send a PDF and ask Claude to summarize it
vBase64 := sgcBase64Encode(LoadFileToBytes('annual-report.pdf'));
vResponse := Anthropic._CreateDocumentMessage(
  'claude-sonnet-4-20250514',
  'Summarize the key findings of this report.',
  vBase64, 'application/pdf'); 

Citations

Schakel citations in op document-content-blocks om bronverwijzingen — inclusief paginanummers, tekenreeksen en geciteerde tekst — te ontvangen in het antwoord van Claude. 

oDocBlock := TsgcAnthropicClass_Request_Content_Block.Create;
oDocBlock.ContentType := 'document';
oDocBlock.SourceType := 'base64';
oDocBlock.MediaType := 'application/pdf';
oDocBlock.Data := vBase64;
oDocBlock.Title := 'Annual Report';
oDocBlock.CitationsEnabled := True;   

MCP-connector

Verbind Claude met externe Model Context Protocol (MCP)-servers om zijn mogelijkheden uit te breiden met tools en diensten van derden — databases, CRM's, interne API's en meer. 

Anthropic.AnthropicOptions.BetaHeaders := 'mcp-client-2025-11-20';
// Connect to an MCP server with one method call
vResponse := Anthropic._CreateMessageWithMCP(
  'claude-sonnet-4-20250514',
  'What tools are available?',
  'https://my-mcp-server.example.com/sse',
  'my-mcp-server'); 

Geauthenticeerde MCP-servers

Voor servers die authenticatie vereisen, ondersteunt de getypeerde API OAuth Bearer-tokens. 

oServer := TsgcAnthropicClass_Request_MCPServer.Create;
oServer.ServerType := 'url';
oServer.Url := 'https://my-mcp-server.example.com/sse';
oServer.Name := 'my-server';
oServer.AuthorizationToken := 'OAUTH_TOKEN';
oTool := TsgcAnthropicClass_Request_Tool.Create;
oTool.ToolType := 'mcp_toolset';
oTool.MCPServerName := 'my-server';