DeepSeek è rapidamente emerso come uno dei provider di modelli IA più capaci e convenienti, offrendo potenti capacità di ragionamento, visione e tool-calling a una frazione del costo dei servizi concorrenti. Per gli sviluppatori Delphi che vogliono sfruttare i modelli di DeepSeek, sgcWebSockets fornisce TsgcHTTP_API_DeepSeek — un componente nativo che incapsula l'intera API DeepSeek con codice Delphi pulito e type-safe.
Che tu stia costruendo chatbot intelligenti, elaborando immagini, orchestrando workflow di function calling o facendo streaming di risposte in tempo reale ai tuoi utenti, questo componente ti dà accesso diretto a ogni funzionalità di DeepSeek. Niente boilerplate REST. Niente JSON da gestire manualmente. Basta inserire il componente, impostare la tua API key e iniziare a costruire.
Copertura API completa
Ogni funzionalità principale dell'API DeepSeek è supportata pronta all'uso.
|
Chat completion Invia messaggi con system prompt, ricevi risposte in modo sincrono o in streaming. Pieno controllo su temperature, top-p, frequency e presence penalty. |
Streaming in tempo reale Ricevi le risposte token per token via Server-Sent Events. Costruisci UI reattive che mostrano le risposte man mano che vengono generate. |
Vision Analizza le immagini inviando dati codificati in base64 o URL di immagini insieme ai prompt testuali. DeepSeek descrive, interpreta e ragiona sui contenuti visivi. |
|
Tool use — function calling Definisci tool personalizzati con JSON Schema. DeepSeek decide quando invocarli, abilitando workflow agentici multi-step. |
Gestione dei modelli Elenca tutti i modelli DeepSeek disponibili in modo programmatico. Interroga ID, owner e capabilities dei modelli. |
Retry e logging integrati Retry automatico in caso di errori transitori, con tentativi e intervalli di attesa configurabili. Logging completo di richieste e risposte per il debug. |
Per iniziare
Integra DeepSeek nel tuo progetto Delphi in meno di un minuto. Inserisci il componente, configura la tua API key e invia il tuo primo messaggio.
// 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;
Due stili di API. Ogni funzionalità offre sia metodi di comodo (basati su stringhe, codice minimo) sia classi tipizzate di richiesta/risposta (pieno controllo, type safety). Scegli l'approccio più adatto al tuo caso d'uso.
Chat completion e streaming
L'API Chat Completions è il fondamento di ogni interazione con DeepSeek. Invia testo con system prompt opzionali e ricevi risposte in modo sincrono o in streaming in tempo reale.
System prompt
Controlla il comportamento di DeepSeek fornendo un system prompt che imposta il contesto, la personalità o i vincoli della conversazione.
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 in tempo reale
Per interfacce utente reattive, ricevi la risposta di DeepSeek token per token via Server-Sent Events. Assegna il gestore di eventi OnHTTPAPISSE e chiama _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 tipizzata avanzata
Per il pieno controllo sui parametri della richiesta (temperature, top-p, frequency penalty, presence penalty, stop sequence) usa le classi tipizzate di richiesta e risposta.
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 — comprensione delle immagini
DeepSeek può analizzare e ragionare sulle immagini. Invia fotografie, screenshot, diagrammi o documenti insieme a un prompt testuale e ricevi descrizioni dettagliate, estrazione di dati o Q&A visivi.
// 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;
Caso d'uso. Automatizza l'elaborazione di fatture, estrai testo da documenti, analizza grafici e diagrammi o costruisci pipeline di classificazione di immagini, il tutto da codice Delphi nativo con i prezzi competitivi di DeepSeek.
Tool use — function calling
Definisci tool personalizzati con JSON Schema e DeepSeek deciderà quando e come invocarli. Questo è il fondamento per costruire workflow agentici multi-step che collegano l'IA alla tua logica di business.
// 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;
Gestione dei modelli
Interroga in modo programmatico i modelli DeepSeek disponibili. Elenca tutti i modelli per scoprire nuove capabilities man mano che diventano disponibili.
// 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;
Configurazione e opzioni
Affina il comportamento del componente con opzioni di configurazione complete.
| Proprietà | Descrizione |
|---|---|
DeepSeekOptions.ApiKey |
La tua API key DeepSeek (obbligatoria) |
HttpOptions.ReadTimeout |
Timeout di lettura HTTP in millisecondi (default: 60000) |
LogOptions.Enabled |
Abilita il logging di richieste e risposte |
RetryOptions.Enabled |
Retry automatico in caso di errori transitori |
RetryOptions.Retries |
Numero massimo di tentativi di retry (default: 3) |
RetryOptions.Wait |
Tempo di attesa tra i retry in millisecondi (default: 3000) |
Parametri della richiesta
| Parametro | Descrizione |
|---|---|
Temperature |
Temperatura di campionamento (0,0–2,0). Valori più bassi = più deterministico. |
TopP |
Nucleus sampling (0,0–1,0). Controlla la soglia di probabilità cumulativa. |
MaxTokens |
Numero massimo di token nella risposta (default: 4096). |
FrequencyPenalty |
Penalizza i token in base alla frequenza nel testo fino a quel momento. |
PresencePenalty |
Penalizza i token in base al fatto che appaiano nel testo fino a quel momento. |
ToolChoice |
Controlla la selezione dei tool: 'auto', 'none' o 'required'. |
Vantaggio di costo. I modelli DeepSeek offrono qualità competitiva a prezzi nettamente inferiori rispetto ai provider comparabili. Combinati con la logica di retry e il logging integrati nel componente sgcWebSockets, ottieni un'integrazione IA pronta per la produzione a una frazione del costo.
