Client API Delphi DeepSeek

· Composants

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.