Intègre l'API Anthropic Claude dans tes applications Delphi
sgcWebSockets fournit un composant Delphi prêt pour la production couvrant l'intégralité de l'API Anthropic Claude — de la génération de texte et de la vision au tool use, à l'extended thinking et au-delà.
Anthropic Claude est l'une des familles de modèles d'IA les plus avancées disponibles aujourd'hui, réputée pour son raisonnement exceptionnel, sa conception axée sur la sécurité et ses capacités polyvalentes sur le texte, le code, la vision et les données structurées. Pour les développeurs Delphi qui veulent exploiter ces capacités, sgcWebSockets fournit TsgcHTTP_API_Anthropic — un composant natif complet qui encapsule toute la surface de l'API Anthropic.
Que tu construises des chatbots intelligents, que tu automatises l'analyse de documents, que tu orchestres des pipelines d'outils complexes ou que tu traites des milliers de requêtes par lot, ce composant te donne un accès direct à chaque fonctionnalité de Claude via du code Delphi propre et typé. Pas de REST boilerplate. Pas de manipulation JSON. Pose simplement le composant, définis ta clé API et commence à construire.
Couverture complète de l'API
Chaque fonctionnalité majeure de l'API Anthropic Claude est prise en charge dès le départ.
| Messages et streaming Envoie des messages avec des system prompts, reçois les réponses de manière synchrone ou streamées en temps réel via Server-Sent Events. |
Vision Analyse des images aux formats JPEG, PNG, GIF et WebP. Claude décrit, interprète et raisonne sur le contenu visuel. |
Tool use Définis des outils personnalisés avec JSON Schema et laisse Claude les appeler. Construis des workflows agentiques avec function calling. |
| Extended thinking Active le raisonnement pas à pas pour des tâches complexes. Idéal pour les maths, l'analyse et la résolution de problèmes en plusieurs étapes. |
Traitement de documents Envoie des PDF et des fichiers texte pour analyse, résumé et questions-réponses avec prise en charge des citations. |
Sorties structurées Force Claude à renvoyer du JSON valide conforme à ton schéma. Réponses parsables et typées garanties. |
| Recherche web Laisse Claude chercher sur le web des informations en temps réel pendant les conversations à l'aide d'outils côté serveur intégrés. | Prompt caching Met en cache les system prompts, les content blocks et les définitions d'outils. Réduis les coûts jusqu'à 90 % sur du contexte répété. | Message batches Traite des milliers de requêtes de manière asynchrone. Parfait pour la génération de contenu en masse et les pipelines de traitement de données. |
| API Files Téléverse, liste, télécharge et gère des fichiers sur les serveurs d'Anthropic. Référence-les sur plusieurs conversations. | Connecteur MCP Connecte Claude à des serveurs Model Context Protocol externes. Étends les capacités avec des outils et services tiers. | Comptage de tokens Compte les tokens avant d'envoyer des requêtes. Estime précisément les coûts et gère le budget de fenêtre de contexte. |
Premiers pas
Intègre Claude dans ton projet Delphi en moins d'une minute. Pose le composant, configure ta clé API et envoie ton premier message.
// Création du composant et configuration de la clé API
var
Anthropic: TsgcHTTP_API_Anthropic;
vResponse: string;
begin
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Try
Anthropic.AnthropicOptions.ApiKey := 'YOUR_API_KEY';
// Envoi d'un message simple à Claude
vResponse := Anthropic._CreateMessage(
'claude-sonnet-4-20250514', 'Hello, Claude!');
ShowMessage(vResponse);
Finally
Anthropic.Free;
End;
end;
Messages et streaming
L'API Messages est le fondement de chaque interaction avec Claude. Envoie du texte avec des system prompts optionnels, et reçois les réponses de manière synchrone ou streamées en temps réel.
System promptsContrôle le comportement de Claude en fournissant un system prompt qui définit le contexte, la personnalité ou les contraintes de la conversation.
vResponse := Anthropic._CreateMessageWithSystem( 'claude-sonnet-4-20250514', 'You are a helpful assistant that responds in Spanish.', 'What is the capital of France?'); // Retourne : "La capital de Francia es París."
Streaming en temps réel
Pour des interfaces utilisateur réactives, stream la réponse de Claude token par token via Server-Sent Events. Assigne le gestionnaire d'événements OnHTTPAPISSE et appelle _CreateMessageStream.
// Activer le 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 : type d'événement (par ex. content_block_delta)
// aData : charge utile JSON pour cet événement
Memo1.Lines.Add(aData);
end;
API typée avancée
Pour un contrôle total sur les paramètres de la requête — température, top-p, séquences d'arrêt, métadonnées — utilise les classes de requête et de réponse typées.
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.';
// ... ajouter le message à la requête, envoyer et traiter la réponse
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 — compréhension d'images
Claude peut analyser et raisonner sur des images. Envoie des photographies, des captures d'écran, des diagrammes ou des graphiques et reçois des descriptions détaillées, de l'extraction de données ou des Q&R visuelles.
Les formats pris en charge incluent JPEG, PNG, GIF et WebP. Les images sont envoyées sous forme de content blocks encodés en base64.
// Charger une image et demander à Claude de la décrire
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
Définis des outils personnalisés avec JSON Schema et Claude décidera quand et comment les invoquer. C'est la base pour construire des workflows agentiques multi-étapes.
Le flux de tool use suit un schéma clair : définir les outils, envoyer une requête, détecter tool_use dans la réponse, exécuter la fonction localement et renvoyer le résultat à Claude pour la réponse finale.
// Définir un outil météo avec une entrée JSON Schema
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"]}';
// Envoyer la requête avec les outils définis
oResponse := Anthropic.CreateMessage(oRequest);
// Vérifier si Claude veut appeler un outil
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;
// Exécuter l'outil et renvoyer le résultat à Claude
end;
end;
end;
Traitement de documents et citations
Envoie à Claude des documents PDF et des fichiers texte pour analyse, résumé et questions-réponses. Active les citations pour recevoir des références vérifiables vers le matériel source.
// Envoyer un PDF et demander à Claude de le résumer
vBase64 := sgcBase64Encode(LoadFileToBytes('annual-report.pdf'));
vResponse := Anthropic._CreateDocumentMessage(
'claude-sonnet-4-20250514',
'Summarize the key findings of this report.',
vBase64, 'application/pdf');
Citations
Active les citations sur les content blocks de documents pour recevoir des références sources — incluant numéros de page, plages de caractères et texte cité — dans la réponse de 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;
Connecteur MCP
Connecte Claude à des serveurs Model Context Protocol (MCP) externes pour étendre ses capacités avec des outils et services tiers — bases de données, CRMs, APIs internes et plus.
Anthropic.AnthropicOptions.BetaHeaders := 'mcp-client-2025-11-20'; // Connexion à un serveur MCP en un seul appel de méthode vResponse := Anthropic._CreateMessageWithMCP( 'claude-sonnet-4-20250514', 'What tools are available?', 'https://my-mcp-server.example.com/sse', 'my-mcp-server');
Serveurs MCP authentifiés
Pour les serveurs qui requièrent une authentification, l'API typée prend en charge les jetons 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';
