DeepSeek s'est rapidement imposé comme l'un des fournisseurs de modèles IA les plus rentables et capables, offrant un raisonnement puissant, des capacités de vision et d'appel d'outils à une fraction du coût des services concurrents. Pour les développeurs Delphi qui cherchent à tirer parti des modèles DeepSeek, sgcWebSockets fournit TsgcHTTP_API_DeepSeek — un composant natif qui encapsule toute l'API DeepSeek avec du code Delphi propre et typé.
Que tu construises des chatbots intelligents, traites des images, orchestres des workflows d'appel de fonctions ou diffuses des réponses en temps réel à tes utilisateurs, ce composant te donne un accès direct à chaque fonctionnalité de DeepSeek. Pas de code REST répétitif. Pas de manipulation JSON. Il te suffit de poser le composant, de définir ta clé API et de commencer à construire.
Couverture complète de l'API
Chaque fonctionnalité majeure de l'API DeepSeek est prise en charge nativement.
|
Complétions de chat Envoie des messages avec des prompts système, reçois des réponses de manière synchrone ou en streaming. Contrôle total sur temperature, top-p, pénalités de fréquence et de présence. |
Streaming en temps réel Diffuse les réponses token par token via Server-Sent Events. Construis des interfaces réactives qui affichent les réponses au fur et à mesure de leur génération. |
Vision Analyse des images en envoyant des données encodées en base64 ou des URL d'images en parallèle des prompts texte. DeepSeek décrit, interprète et raisonne sur le contenu visuel. |
|
Utilisation d'outils — appel de fonctions Définis des outils personnalisés avec JSON Schema. DeepSeek décide quand les invoquer, ce qui permet des workflows agentiques en plusieurs étapes. |
Gestion des modèles Liste tous les modèles DeepSeek disponibles par programme. Interroge les IDs des modèles, leurs propriétaires et leurs capacités. |
Réessai et journalisation intégrés Réessai automatique en cas d'échecs transitoires avec nombre de tentatives et intervalles d'attente configurables. Journalisation complète des requêtes/réponses pour le débogage. |
Premiers pas
Intègre DeepSeek dans ton projet Delphi en moins d'une minute. Pose le composant, configure ta clé API et envoie ton premier message.
// Create the component and configure the API key
var
DeepSeek: TsgcHTTP_API_DeepSeek;
vResponse: string;
begin
DeepSeek := TsgcHTTP_API_DeepSeek.Create(nil);
Try
DeepSeek.DeepSeekOptions.ApiKey := 'YOUR_API_KEY';
// Send a simple message to DeepSeek
vResponse := DeepSeek._CreateMessage(
'deepseek-chat', 'Hello, DeepSeek!');
ShowMessage(vResponse);
Finally
DeepSeek.Free;
End;
end;
Deux styles d'API. Chaque fonctionnalité propose à la fois des méthodes pratiques (basées sur des chaînes, code minimal) et des classes typées de requête/réponse (contrôle total, sécurité de typage). Choisis l'approche qui convient le mieux à ton cas d'usage.
Complétions de chat et streaming
L'API Chat Completions est le fondement de chaque interaction avec DeepSeek. Envoie du texte avec des prompts système optionnels et reçois des réponses de manière synchrone ou en streaming temps réel.
Prompts système
Contrôle le comportement de DeepSeek en fournissant un prompt système qui définit le contexte, la personnalité ou les contraintes de la conversation.
vResponse := DeepSeek._CreateMessageWithSystem(
'deepseek-chat',
'You are a helpful assistant that responds in Spanish.',
'What is the capital of France?');
// Returns: "La capital de Francia es París."
Streaming en temps réel
Pour des interfaces utilisateur réactives, diffuse la réponse de DeepSeek token par token via Server-Sent Events. Assigne le gestionnaire d'événements OnHTTPAPISSE et appelle _CreateMessageStream.
// Enable streaming via SSE
DeepSeek.OnHTTPAPISSE := OnSSEEvent;
DeepSeek._CreateMessageStream('deepseek-chat',
'Explain the theory of relativity.');
procedure TForm1.OnSSEEvent(Sender: TObject;
const aEvent, aData: string; var Cancel: Boolean);
begin
// aData: JSON payload with generated content
Memo1.Lines.Add(aData);
end;
API typée avancée
Pour un contrôle total sur les paramètres de la requête — temperature, top-p, pénalité de fréquence, pénalité de présence, séquences d'arrêt — utilise les classes typées de requête et de réponse.
var
oRequest: TsgcDeepSeekClass_Request_ChatCompletion;
oMessage: TsgcDeepSeekClass_Request_Message;
oResponse: TsgcDeepSeekClass_Response_ChatCompletion;
begin
oRequest := TsgcDeepSeekClass_Request_ChatCompletion.Create;
Try
oRequest.Model := 'deepseek-chat';
oRequest.MaxTokens := 2048;
oRequest.Temperature := 0.7;
oRequest.TopP := 0.9;
oRequest.FrequencyPenalty := 0.5;
oMessage := TsgcDeepSeekClass_Request_Message.Create;
oMessage.Role := 'user';
oMessage.Content := 'Explain quantum computing in simple terms.';
oRequest.Messages.Add(oMessage);
oResponse := DeepSeek.CreateMessage(oRequest);
Try
if Length(oResponse.Choices) > 0 then
ShowMessage(oResponse.Choices[0].MessageContent);
Finally
oResponse.Free;
End;
Finally
oRequest.Free;
End;
end;
Vision — compréhension des images
DeepSeek peut analyser et raisonner sur des images. Envoie des photographies, captures d'écran, diagrammes ou documents en parallèle d'un prompt texte et reçois des descriptions détaillées, l'extraction de données ou du Q&R visuel.
// Load an image and ask DeepSeek to analyze it
var
vBase64: string;
begin
vBase64 := sgcBase64Encode(LoadFileToBytes('invoice.png'));
ShowMessage(DeepSeek._CreateVisionMessage(
'deepseek-chat',
'Extract all line items and totals from this invoice.',
vBase64, 'image/png'));
end;
Cas d'usage. Automatise le traitement des factures, extrais du texte de documents, analyse des graphiques et des diagrammes ou construis des pipelines de classification d'images — le tout depuis du code Delphi natif avec la tarification compétitive de DeepSeek.
Utilisation d'outils — appel de fonctions
Définis des outils personnalisés avec JSON Schema, et DeepSeek décidera quand et comment les invoquer. C'est la base pour construire des workflows agentiques en plusieurs étapes qui connectent l'IA à ta logique métier.
// Define a tool with JSON Schema
oTool := TsgcDeepSeekClass_Request_Tool.Create;
oTool.Name := 'get_stock_price';
oTool.Description := 'Get the current stock price for a ticker symbol';
oTool.Parameters :=
'{"type":"object","properties":{"symbol":{"type":"string",' +
'"description":"Stock ticker symbol"}},"required":["symbol"]}';
oRequest.Tools.Add(oTool);
oResponse := DeepSeek.CreateMessage(oRequest);
// Check if DeepSeek wants to call a tool
if oResponse.Choices[0].FinishReason = 'tool_calls' then
begin
for i := 0 to Length(oResponse.Choices[0].ToolCalls) - 1 do
begin
vToolId := oResponse.Choices[0].ToolCalls[i].Id;
vFuncName := oResponse.Choices[0].ToolCalls[i].FunctionName;
vFuncArgs := oResponse.Choices[0].ToolCalls[i].FunctionArguments;
// Execute the tool and return the result
end;
end;
Gestion des modèles
Interroge par programme les modèles DeepSeek disponibles. Liste tous les modèles pour découvrir les nouvelles capacités au fur et à mesure de leur disponibilité.
// List all available DeepSeek models
vModels := DeepSeek._GetModels;
// Typed API: access model properties directly
var
oModels: TsgcDeepSeekClass_Response_Models;
i: Integer;
begin
oModels := DeepSeek.GetModels;
Try
for i := 0 to Length(oModels.Data) - 1 do
Memo1.Lines.Add(oModels.Data[i].Id);
Finally
oModels.Free;
End;
end;
Configuration et options
Affine le comportement du composant avec des options de configuration complètes.
| Propriété | Description |
|---|---|
DeepSeekOptions.ApiKey |
Ta clé API DeepSeek (obligatoire) |
HttpOptions.ReadTimeout |
Délai de lecture HTTP en millisecondes (par défaut : 60000) |
LogOptions.Enabled |
Active la journalisation des requêtes/réponses |
RetryOptions.Enabled |
Réessai automatique en cas d'échecs transitoires |
RetryOptions.Retries |
Nombre maximum de tentatives de réessai (par défaut : 3) |
RetryOptions.Wait |
Temps d'attente entre les réessais en millisecondes (par défaut : 3000) |
Paramètres de requête
| Paramètre | Description |
|---|---|
Temperature |
Température d'échantillonnage (0.0–2.0). Des valeurs plus basses = plus déterministe. |
TopP |
Échantillonnage nucleus (0.0–1.0). Contrôle le seuil de probabilité cumulative. |
MaxTokens |
Nombre maximum de tokens dans la réponse (par défaut : 4096). |
FrequencyPenalty |
Pénalise les tokens en fonction de leur fréquence dans le texte jusqu'ici. |
PresencePenalty |
Pénalise les tokens selon qu'ils apparaissent ou non dans le texte jusqu'ici. |
ToolChoice |
Contrôle la sélection d'outils : 'auto', 'none' ou 'required'. |
Avantage de coût. Les modèles DeepSeek offrent une qualité compétitive à des prix nettement inférieurs à ceux de fournisseurs comparables. Combinés à la logique de réessai et à la journalisation intégrées du composant sgcWebSockets, tu obtiens une intégration IA prête pour la production à une fraction du coût.
