DeepSeek Delphi API-client

· Componenten

DeepSeek is razendsnel uitgegroeid tot een van de meest kostenefficiente en capabele AI-modelaanbieders, met krachtige mogelijkheden voor redeneren, vision en tool-calling voor een fractie van de prijs van concurrerende diensten. Voor Delphi-ontwikkelaars die de modellen van DeepSeek willen benutten, biedt sgcWebSockets TsgcHTTP_API_DeepSeek — een native component dat de volledige DeepSeek-API verpakt in nette, type-veilige Delphi-code.

Of je nu intelligente chatbots bouwt, afbeeldingen verwerkt, function-calling-workflows orkestreert of realtime-antwoorden naar je gebruikers streamt: dit component geeft je rechtstreeks toegang tot elke DeepSeek-functie. Geen REST-boilerplate. Geen JSON-gepuzzel. Plaats het component, stel je API-sleutel in en begin met bouwen.

Volledige API-dekking

Elke belangrijke functie van de DeepSeek-API wordt direct ondersteund.

Chat Completions
Verstuur berichten met system-prompts en ontvang antwoorden synchroon of gestreamd. Volledige controle over temperature, top-p, frequency- en presence-penalty.
Realtime-streaming
Stream antwoorden token voor token via Server-Sent Events. Bouw responsive UI's die antwoorden tonen terwijl ze worden gegenereerd.
Vision
Analyseer afbeeldingen door base64-gecodeerde data of afbeeldings-URL's naast tekst-prompts mee te sturen. DeepSeek beschrijft, interpreteert en redeneert over visuele inhoud.
Tool Use — function calling
Definieer eigen tools met JSON Schema. DeepSeek beslist wanneer hij ze aanroept, waardoor agentische, meerstaps workflows mogelijk worden.
Modelbeheer
Vraag programmatisch alle beschikbare DeepSeek-modellen op. Bekijk model-ID's, eigenaren en mogelijkheden.
Ingebouwde retry & logging
Automatisch opnieuw proberen bij tijdelijke storingen met instelbare pogingen en wachttijden. Volledige request/response-logging voor debuggen.

Aan de slag

Integreer DeepSeek binnen een minuut in je Delphi-project. Plaats het component, configureer je API-sleutel en verstuur je eerste bericht.

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

Twee API-stijlen. Elke functie biedt zowel gemaks-methoden (op basis van strings, minimale code) als getypte request/response-klassen (volledige controle, typeveiligheid). Kies de aanpak die het beste past bij jouw use case.

Chat Completions & streaming

De Chat-Completions-API is de basis van elke interactie met DeepSeek. Verstuur tekst met een optionele system-prompt en ontvang antwoorden synchroon of in realtime gestreamd.

System-prompts

Stuur het gedrag van DeepSeek bij door een system-prompt mee te geven die de context, persoonlijkheid of beperkingen voor het gesprek vastlegt.

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

Realtime-streaming

Stream voor responsive-gebruikersinterfaces het antwoord van DeepSeek token voor token via Server-Sent Events. Wijs de event-handler OnHTTPAPISSE toe en roep _CreateMessageStream aan.

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

Geavanceerde getypeerde API

Gebruik de getypte request- en response-klassen voor volledige controle over request-parameters — temperature, top-p, frequency-penalty, presence-penalty, stop-sequences.

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 — beeldherkenning

DeepSeek kan afbeeldingen analyseren en erover redeneren. Stuur foto's, screenshots, diagrammen of documenten naast een tekst-prompt mee en ontvang gedetailleerde beschrijvingen, data-extractie of visuele Q&A.

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

Use case. Automatiseer facturenverwerking, extraheer tekst uit documenten, analyseer grafieken en diagrammen of bouw beeldclassificatie-pipelines — allemaal vanuit native Delphi-code met de concurrerende prijzen van DeepSeek.

Tool Use — function calling

Definieer eigen tools met JSON Schema en DeepSeek beslist wanneer en hoe hij ze aanroept. Dit is de basis voor het bouwen van agentische, meerstaps workflows die de AI verbinden met je bedrijfslogica.

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

Modelbeheer

Vraag programmatisch de beschikbare DeepSeek-modellen op. Toon alle modellen om nieuwe mogelijkheden te ontdekken zodra ze beschikbaar komen.

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

Configuratie & opties

Verfijn het gedrag van het component met uitgebreide configuratie-opties.

Eigenschap Beschrijving
DeepSeekOptions.ApiKey Je DeepSeek-API-sleutel (verplicht)
HttpOptions.ReadTimeout HTTP-leestime-out in milliseconden (standaard: 60000)
LogOptions.Enabled Schakel request/response-logging in
RetryOptions.Enabled Automatisch opnieuw proberen bij tijdelijke storingen
RetryOptions.Retries Maximaal aantal nieuwe pogingen (standaard: 3)
RetryOptions.Wait Wachttijd tussen pogingen in milliseconden (standaard: 3000)

Request-parameters

Parameter Beschrijving
Temperature Sampling-temperatuur (0,0–2,0). Lagere waarden = deterministischer.
TopP Nucleus-sampling (0,0–1,0). Bepaalt de cumulatieve waarschijnlijkheidsgrens.
MaxTokens Maximaal aantal tokens in het antwoord (standaard: 4096).
FrequencyPenalty Geef tokens een penalty op basis van hoe vaak ze al voorkomen in de tekst.
PresencePenalty Geef tokens een penalty op basis van of ze tot dusver voorkomen in de tekst.
ToolChoice Bepaal de tool-selectie: 'auto', 'none' of 'required'.

Kostenvoordeel. DeepSeek-modellen leveren concurrerende kwaliteit voor aanzienlijk lagere prijzen dan vergelijkbare aanbieders. Gecombineerd met de ingebouwde retry-logica en logging van het sgcWebSockets-component krijg je productieklare AI-integratie voor een fractie van de kosten.