API Anthropic per Delphi

· Componenti

Integra l'API Anthropic Claude nelle tue applicazioni Delphi

sgcWebSockets offre un componente Delphi pronto per la produzione per l'intera API Anthropic Claude: dalla generazione di testo e dalla visione all'uso di strumenti, all'extended thinking e oltre. 

Anthropic Claude è una delle famiglie di modelli IA più avanzate oggi disponibili, rinomata per il suo ragionamento eccezionale, il design orientato alla sicurezza e le capacità versatili su testo, codice, visione e dati strutturati. Per gli sviluppatori Delphi che vogliono sfruttare queste capacità, sgcWebSockets fornisce TsgcHTTP_API_Anthropic: un componente nativo e completo che incapsula l'intera superficie dell'API Anthropic.

Che tu stia costruendo chatbot intelligenti, automatizzando l'analisi di documenti, orchestrando pipeline di tool complesse o elaborando migliaia di richieste in batch, questo componente ti dà accesso diretto a ogni funzionalità di Claude attraverso codice Delphi pulito e type-safe. Niente boilerplate REST. Niente JSON da gestire manualmente. Basta inserire il componente, impostare la tua API key e iniziare a costruire.

Copertura API completa

 Ogni funzionalità principale dell'API Anthropic Claude è supportata pronta all'uso.

Messaggi e streaming

Invia messaggi con system prompt, ricevi risposte in modo sincrono o in streaming in tempo reale tramite Server-Sent Events.
Vision

Analizza immagini nei formati JPEG, PNG, GIF e WebP. Claude descrive, interpreta e ragiona sui contenuti visivi.
Tool use

Definisci tool personalizzati con JSON Schema e lascia che Claude li chiami. Costruisci workflow agentici con function calling.
Extended Thinking

Abilita il ragionamento passo-passo per task complessi. Ideale per matematica, analisi e risoluzione di problemi multi-step.
Elaborazione di documenti

Invia documenti PDF e file di testo per analisi, sintesi e domande/risposte con supporto delle citazioni.
Output strutturati

Forza Claude a restituire JSON valido conforme al tuo schema. Risposte garantite parsabili e type-safe.
Web search

Lascia che Claude cerchi sul web informazioni in tempo reale durante le conversazioni usando strumenti server-side integrati.
Prompt caching

Memorizza in cache system prompt, content block e definizioni di tool. Riduci i costi fino al 90% sul contesto ripetuto.
Message Batches

Elabora migliaia di richieste in modo asincrono. Perfetto per la generazione di contenuti in massa e per pipeline di elaborazione dati.
API Files

Carica, elenca, scarica e gestisci file sui server di Anthropic. Riferisciti ad essi in più conversazioni.
MCP Connector

Collega Claude a server Model Context Protocol esterni. Estendi le capacità con tool e servizi di terze parti.
Conteggio token

Conta i token prima di inviare le richieste. Stima accuratamente i costi e gestisci i budget della context window.

Per iniziare

Integra Claude nel tuo progetto Delphi in meno di un minuto. Inserisci il componente, configura la tua API key e invia il tuo primo messaggio. 

// 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; 

Messaggi e streaming

L'API Messages è il fondamento di ogni interazione con Claude. Invia testo con system prompt opzionali e ricevi risposte in modo sincrono o in streaming in tempo reale.

System prompt

Controlla il comportamento di Claude fornendo un system prompt che imposta il contesto, la personalità o i vincoli della conversazione. 

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." 

Streaming in tempo reale

Per interfacce utente reattive, ricevi la risposta di Claude token per token via Server-Sent Events. Assegna il gestore di eventi OnHTTPAPISSE e chiama _CreateMessageStream

// 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; 

API tipizzata avanzata

Per il pieno controllo sui parametri della richiesta (temperature, top-p, stop sequence, metadata) usa le classi tipizzate di richiesta e risposta. 

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: comprensione delle immagini

 Claude può analizzare e ragionare sulle immagini. Invia fotografie, screenshot, diagrammi o grafici e ricevi descrizioni dettagliate, estrazione di dati o Q&A visivi.

I formati supportati includono JPEG, PNG, GIF e WebP. Le immagini vengono inviate come content block codificati in base64.

// 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

Definisci tool personalizzati con JSON Schema e Claude deciderà quando e come invocarli. Questo è il fondamento per costruire workflow agentici multi-step.

Il flusso di tool use segue uno schema chiaro: definisci i tool, invia una richiesta, rileva tool_use nella risposta, esegui la funzione localmente e restituisci il risultato a Claude per la risposta finale. 

// 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; 

Elaborazione di documenti e citazioni

Invia documenti PDF e file di testo a Claude per analisi, sintesi e domande/risposte. Abilita le citazioni per ricevere riferimenti verificabili al materiale di origine. 

// 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'); 

Citazioni

Abilita le citazioni sui content block di tipo documento per ricevere riferimenti alla fonte (inclusi numeri di pagina, range di caratteri e testo citato) nella risposta di 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

Collega Claude a server Model Context Protocol (MCP) esterni per estenderne le capacità con tool e servizi di terze parti: database, CRM, API interne e altro. 

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'); 

Server MCP autenticati

Per i server che richiedono autenticazione, l'API tipizzata supporta i token OAuth Bearer. 

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';