DeepSeek szybko stał się jednym z najbardziej opłacalnych i wydajnych dostawców modeli SI, oferującym zaawansowane możliwości rozumowania, analizy obrazu i wywoływania narzędzi po ułamku ceny konkurencyjnych usług. Dla programistów Delphi chcących wykorzystać modele DeepSeek sgcWebSockets udostępnia TsgcHTTP_API_DeepSeek — natywny komponent, który opakowuje całe API DeepSeek czystym, bezpiecznym typowo kodem Delphi.
Niezależnie od tego, czy budujesz inteligentne chatboty, przetwarzasz obrazy, orkiestrujesz przepływy z wywoływaniem funkcji, czy strumieniujesz odpowiedzi w czasie rzeczywistym do swoich użytkowników, ten komponent daje ci bezpośredni dostęp do każdej funkcji DeepSeek. Bez boilerplate'u REST. Bez męczenia się z JSON-em. Po prostu upuść komponent, ustaw klucz API i zaczynaj budować.
Pełne pokrycie API
Każda kluczowa funkcja API DeepSeek jest obsługiwana od razu po zainstalowaniu.
|
Uzupełnienia czatu Wysyłaj wiadomości z systemowymi promptami, odbieraj odpowiedzi synchronicznie lub strumieniowo. Pełna kontrola nad temperature, top-p, frequency i presence penalty. |
Strumieniowanie w czasie rzeczywistym Strumieniuj odpowiedzi token po tokenie przy użyciu Server-Sent Events. Buduj responsywne interfejsy, które wyświetlają odpowiedzi w miarę ich generowania. |
Wizja Analizuj obrazy, wysyłając dane zakodowane w base64 lub adresy URL obrazów wraz z promptami tekstowymi. DeepSeek opisuje, interpretuje i rozumuje na temat treści wizualnych. |
|
Użycie narzędzi — wywoływanie funkcji Definiuj niestandardowe narzędzia w JSON Schema. DeepSeek decyduje, kiedy je wywołać, umożliwiając agentowe, wieloetapowe przepływy. |
Zarządzanie modelami Wyświetl programowo wszystkie dostępne modele DeepSeek. Sprawdzaj ID modeli, właścicieli i możliwości. |
Wbudowane ponawianie i logowanie Automatyczne ponawianie przy przejściowych błędach z konfigurowalną liczbą prób i odstępami. Pełne logowanie żądań/odpowiedzi do debugowania. |
Pierwsze kroki
Zintegruj DeepSeek ze swoim projektem Delphi w mniej niż minutę. Upuść komponent, skonfiguruj swój klucz API i wyślij pierwszą wiadomość.
// 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;
Dwa style API. Każda funkcja oferuje zarówno metody pomocnicze (oparte na stringach, minimalny kod), jak i typowane klasy żądań/odpowiedzi (pełna kontrola, bezpieczeństwo typów). Wybierz podejście najlepiej pasujące do twojego przypadku użycia.
Uzupełnienia czatu i strumieniowanie
API Chat Completions to fundament każdej interakcji z DeepSeek. Wysyłaj tekst z opcjonalnymi promptami systemowymi i odbieraj odpowiedzi synchronicznie lub strumieniowo w czasie rzeczywistym.
Prompty systemowe
Kontroluj zachowanie DeepSeek, dostarczając prompt systemowy, który ustawia kontekst, osobowość lub ograniczenia rozmowy.
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."
Strumieniowanie w czasie rzeczywistym
Aby zapewnić responsywne interfejsy użytkownika, strumieniuj odpowiedź DeepSeek token po tokenie przy użyciu Server-Sent Events. Przypisz obsługę zdarzenia OnHTTPAPISSE i wywołaj _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;
Zaawansowane typowane API
Aby uzyskać pełną kontrolę nad parametrami żądania — temperature, top-p, frequency penalty, presence penalty, sekwencje stop — użyj typowanych klas żądania i odpowiedzi.
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;
Wizja — rozumienie obrazów
DeepSeek potrafi analizować obrazy i rozumować na ich temat. Wysyłaj zdjęcia, zrzuty ekranu, diagramy lub dokumenty wraz z promptem tekstowym i odbieraj szczegółowe opisy, ekstrakcję danych lub wizualne pytania i odpowiedzi.
// 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;
Przykład zastosowania. Automatyzuj przetwarzanie faktur, wyciągaj tekst z dokumentów, analizuj wykresy i grafy lub buduj potoki klasyfikacji obrazów — wszystko z natywnego kodu Delphi w konkurencyjnej cenie DeepSeek.
Użycie narzędzi — wywoływanie funkcji
Definiuj niestandardowe narzędzia w JSON Schema, a DeepSeek zdecyduje, kiedy i jak je wywołać. To fundament budowania agentowych, wieloetapowych przepływów łączących SI z logiką biznesową.
// 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;
Zarządzanie modelami
Sprawdzaj programowo dostępne modele DeepSeek. Wyświetl wszystkie modele, aby odkrywać nowe możliwości, gdy się pojawiają.
// 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;
Konfiguracja i opcje
Dopracuj zachowanie komponentu za pomocą kompleksowych opcji konfiguracji.
| Właściwość | Opis |
|---|---|
DeepSeekOptions.ApiKey |
Twój klucz API DeepSeek (wymagane) |
HttpOptions.ReadTimeout |
Timeout odczytu HTTP w milisekundach (domyślnie: 60000) |
LogOptions.Enabled |
Włącz logowanie żądań/odpowiedzi |
RetryOptions.Enabled |
Automatyczne ponawianie przy przejściowych błędach |
RetryOptions.Retries |
Maksymalna liczba prób ponowienia (domyślnie: 3) |
RetryOptions.Wait |
Czas oczekiwania między ponowieniami w milisekundach (domyślnie: 3000) |
Parametry żądania
| Parametr | Opis |
|---|---|
Temperature |
Temperatura próbkowania (0,0–2,0). Niższe wartości = bardziej deterministyczne. |
TopP |
Próbkowanie nucleus (0,0–1,0). Kontroluje próg skumulowanego prawdopodobieństwa. |
MaxTokens |
Maksymalna liczba tokenów w odpowiedzi (domyślnie: 4096). |
FrequencyPenalty |
Karze tokeny na podstawie częstości w dotychczasowym tekście. |
PresencePenalty |
Karze tokeny na podstawie tego, czy pojawiają się w dotychczasowym tekście. |
ToolChoice |
Kontrolowanie wyboru narzędzia: 'auto', 'none' lub 'required'. |
Przewaga kosztowa. Modele DeepSeek oferują konkurencyjną jakość po znacznie niższych cenach niż porównywalni dostawcy. W połączeniu z wbudowaną logiką ponawiania i logowaniem komponentu sgcWebSockets dostajesz gotową do produkcji integrację SI po ułamku ceny.
