Anthropic Claude
Anthropic est une entreprise de sécurité IA qui développe des systèmes d'IA fiables, interprétables et orientables. Leur famille de modèles phare est Claude, qui excelle dans le dialogue réfléchi, la création de contenu, le raisonnement complexe, le codage, et plus encore.
La bibliothèque sgcWebSockets fournit un composant Delphi TsgcHTTP_API_Anthropic pour interagir avec l'API Anthropic Claude.
API Anthropic
L'API Anthropic donne accès aux modèles Claude pour créer des applications alimentées par l'IA. L'API prend en charge la génération de texte, la vision (compréhension d'images), l'utilisation d'outils (appel de fonctions), la réflexion étendue, le traitement de documents/PDF, la mise en cache des invites, les citations, la recherche web, la diffusion en continu, le comptage de jetons et les lots de messages.
Fonctionnalités
Configuration
L'API Anthropic utilise des clés API pour l'authentification. Consultez votre page Clés API dans la console Anthropic pour récupérer la clé API que vous utiliserez dans vos requêtes.
N'oubliez pas que votre clé API est secrète ! Ne la partagez pas avec d'autres personnes ni ne l'exposez dans du code côté client.
Cette clé API doit être configurée dans la propriété AnthropicOptions.ApiKey du composant. La propriété AnthropicOptions.AnthropicVersion spécifie la version de l'API (par défaut : 2023-06-01).
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'YOUR_API_KEY';
Propriétés
AnthropicOptions
- ApiKey : La clé API pour l'authentification avec l'API Anthropic.
- AnthropicVersion : La chaîne de version de l'API (par défaut : 2023-06-01).
- BetaHeaders : En-têtes de fonctionnalités bêta optionnels pour activer les fonctionnalités d'API en prépublication (p. ex. files-api-2025-04-14, mcp-client-2025-11-20).
- HttpOptions : paramètres de connexion HTTP.
- ReadTimeout : Délai d'attente en millisecondes pour la lecture des réponses HTTP. Par défaut 0 (pas de délai d'attente).
- LogOptions : Configuration de la journalisation.
- Enabled : Lorsque True, les requêtes et réponses HTTP sont journalisées dans un fichier.
- FileName : Le chemin du fichier où la sortie de journal est écrite.
- RetryOptions : Configuration de nouvelle tentative automatique pour les requêtes API échouées.
- Enabled : Lorsque True, les requêtes échouées sont automatiquement relancées.
- Retries : Nombre maximum de tentatives.
- Wait : Temps d'attente en millisecondes entre les tentatives.
Messages
Envoyez une liste structurée de messages d'entrée avec du contenu textuel et/ou des images, et le modèle générera le prochain message dans la conversation.
- CreateMessage : Crée un message avec le modèle et les paramètres spécifiés.
- Model : Le modèle à utiliser (par ex. claude-sonnet-4-20250514).
- Message : Le contenu du message utilisateur.
- MaxTokens : Le nombre maximum de jetons à générer (requis, par défaut 4096).
- CreateMessageWithSystem: Crée un message avec une invite système.
- System: Invite système qui définit le comportement de l'assistant.
- CreateMessageStream : Crée un message avec le streaming (SSE) activé. Les événements sont transmis via le gestionnaire d'événements OnHTTPAPISSE.
- CreateMessageJSON : Crée un message qui retourne du JSON structuré conforme à un schéma JSON fourni.
- Schema : Une chaîne de schéma JSON définissant le format de sortie.
- CreateMessageWithThinking : Crée un message avec la réflexion étendue activée.
- BudgetTokens : Budget maximum de jetons pour la réflexion (minimum 1024).
- CreateDocumentMessage : Crée un message avec un document base64 (PDF ou texte).
- DocumentBase64 : Les données du document encodées en base64.
- MediaType : Le type MIME (ex. application/pdf).
Vision
Claude peut comprendre les images passées comme blocs de contenu encodés en base64 dans les messages.
- CreateVisionMessage : Envoie une image avec une invite textuelle.
- ImageBase64 : Les données d'image encodées en base64.
- MediaType : Le type MIME (image/jpeg, image/png, image/gif, image/webp).
- Prompt : L'invite textuelle accompagnant l'image.
Utilisation d'outils
Claude peut utiliser des outils (appel de fonction) pour interagir avec des systèmes externes. Vous définissez des outils avec leurs noms, descriptions et schémas d'entrée, et Claude générera des blocs de contenu tool_use lorsqu'il souhaitera appeler un outil.
Modèles
Lister et décrire les modèles Claude disponibles.
- GetModels : Liste tous les modèles disponibles.
- GetModel : Récupère les informations d'un modèle spécifique.
- ModelId : L'identifiant du modèle à récupérer.
Réflexion étendue
La réflexion étendue permet à Claude de raisonner étape par étape avant de répondre, améliorant la qualité pour les tâches complexes comme les mathématiques, le codage et l'analyse.
- ThinkingType : Définissez à 'enabled' pour activer la réflexion, 'disabled' pour la désactiver.
- ThinkingBudgetTokens : Budget de jetons pour la réflexion (min 1024, doit être inférieur à MaxTokens).
- CreateMessageWithAdaptiveThinking : Crée un message avec la réflexion adaptative, laissant Claude décider automatiquement de la profondeur de réflexion.
Documents
Claude peut traiter des documents PDF et des fichiers texte envoyés sous forme de blocs de contenu. Prend en charge les types de source base64, texte et URL.
- CreateDocumentMessage : Envoie un document avec un texte d'invite.
- DocumentBase64 : Les données du document encodées en base64.
- MediaType : Le type MIME (application/pdf, text/plain).
Mise en cache des invites
Mettez en cache le contexte fréquemment utilisé (prompts système, blocs de contenu, définitions d'outils) entre les appels API pour réduire les coûts jusqu'à 90 % sur les lectures de cache.
- SystemCacheControl : Définissez à True dans la requête pour mettre en cache l'invite système.
- CacheControl : Définir à 'ephemeral' sur les blocs de contenu ou les définitions d'outils.
- BetaHeaders : En-têtes de fonctionnalités bêta optionnels dans AnthropicOptions.
Citations
Lorsque des documents sont envoyés avec les citations activées, Claude inclut des références de source dans sa réponse. Les types de citation incluent char_location (texte), page_location (PDF), content_block_location (contenu personnalisé) et web_search_result_location (recherche web).
Recherche web
Claude peut rechercher sur le web des informations en temps réel à l'aide de l'outil intégré web_search. Les autres outils intégrés incluent code_execution et computer use.
- CreateMessageWithWebSearch : Crée un message avec la recherche web activée.
- Model : Le modèle à utiliser.
- Message : La requête de l'utilisateur.
Comptage de jetons
Compter le nombre de tokens dans un message avant de l'envoyer.
- CountTokens : Compte le nombre de jetons d'entrée pour un message.
- Model : Le modèle à utiliser pour le comptage de jetons.
- Message : Le contenu du message pour lequel compter les jetons.
Lots de messages
L'API Message Batches vous permet de traiter de grands volumes de messages de manière asynchrone.
- ListBatches : Répertorie tous les lots de messages.
- GetBatch : Récupère un lot spécifique par son identifiant.
- CancelBatch: Annule un batch toujours en cours de traitement.
- GetBatchResults : Récupère les résultats d'un lot terminé.
Sorties structurées
Forcer Claude à retourner du JSON valide conforme à un schéma JSON fourni. Combinez avec le paramètre Effort pour contrôler la qualité de la sortie par rapport au coût.
- CreateMessageJSON : Crée un message avec une sortie au format schéma JSON.
- Schema : Une chaîne JSON Schema définissant le format de sortie.
- OutputFormatSchema : (Propriété de la requête) Schéma JSON pour la sortie structurée.
- Effort : (propriété Request) Contrôle le rapport qualité/coût : 'low', 'medium', 'high', 'max'.
- Strict : (propriété de l'outil) Lorsque True, les entrées de l'outil sont garanties de correspondre à l'input_schema.
API des fichiers
Télécharger, lister, récupérer, télécharger et supprimer des fichiers. Les fichiers téléchargés peuvent être référencés dans les messages en utilisant des blocs de contenu de document avec le type de source fichier. Nécessite l'en-tête bêta files-api-2025-04-14.
- UploadFile : Téléverse un fichier local. Retourne les métadonnées du fichier.
- ListFiles : Liste les fichiers téléchargés avec pagination.
- GetFile : Récupère les métadonnées d'un fichier spécifique.
- DownloadFile : télécharge le contenu d'un fichier.
- DeleteFile : Supprime définitivement un fichier.
Paramètres de la requête
Paramètres de demande supplémentaires disponibles sur l'API Messages.
- ServiceTier : Contrôle l'utilisation du niveau de priorité : 'auto' (par défaut) ou 'standard_only'.
- InferenceGeo : Contrôle la géographie d'inférence : 'global' (par défaut) ou 'us'.
- Container : Identifiant de conteneur pour la réutilisation des environnements d'exécution de code entre les requêtes.
- IsError : (propriété de bloc de contenu) Définissez True sur les blocs tool_result pour indiquer un échec de l'exécution de l'outil.
- CacheTTL : Durée de vie du cache étendue : '5m' (par défaut) ou '1h'.
- ThinkingType : Définissez à 'adaptive' pour laisser Claude décider automatiquement de la profondeur de réflexion.
MCP Connector
Connecter Claude à des serveurs MCP (Model Context Protocol) externes pour accéder à des outils tiers. Nécessite l'en-tête bêta mcp-client-2025-11-20.
- CreateMessageWithMCP : crée un message avec une connexion au serveur MCP.
- MCPServerUrl : URL HTTPS du serveur MCP.
- MCPServerName : nom unique pour le serveur.
- MCPServers : (propriété Request) Tableau de définitions de serveurs MCP avec ServerType, Url, Name, AuthorizationToken.
- MCPServerName : (propriété d'outil) Référence un serveur MCP lorsque ToolType est 'mcp_toolset'.