DeepSeek Delphi API İstemcisi

· Bileşenler

DeepSeek, rakip hizmetlerin maliyetinin çok altında güçlü akıl yürütme, görüntü işleme ve araç çağırma yetenekleri sunarak en uygun maliyetli ve yetenekli yapay zeka model sağlayıcılarından biri olarak hızla öne çıktı. DeepSeek'in modellerinden yararlanmak isteyen Delphi geliştiricileri için sgcWebSockets, TsgcHTTP_API_DeepSeek bileşenini sağlar — tüm DeepSeek API'sini temiz, tür güvenli Delphi koduyla saran yerel bir bileşen.

İster akıllı chatbot'lar oluşturuyor, ister görüntü işliyor, ister işlev çağırma iş akışlarını düzenliyor veya kullanıcılarınıza gerçek zamanlı yanıtlar akıtıyor olun, bu bileşen size her DeepSeek özelliğine doğrudan erişim sağlar. REST kalıp kodu yok. JSON ile uğraşmak yok. Yalnızca bileşeni bırakın, API anahtarınızı ayarlayın ve geliştirmeye başlayın.

Eksiksiz API Kapsamı

DeepSeek API'sinin her temel özelliği kutudan çıktığı haliyle desteklenir.

Sohbet Tamamlamaları
Sistem istemleriyle mesaj gönderin, yanıtları senkron veya akış halinde alın. Sıcaklık (temperature), top-p, frekans ve varlık cezaları üzerinde tam kontrol.
Gerçek Zamanlı Akış
Server-Sent Events kullanarak yanıtları belirteç belirteç (token-by-token) akıtın. Yanıtları oluşturuldukça görüntüleyen duyarlı kullanıcı arayüzleri oluşturun.
Görüntü İşleme (Vision)
Metin istemlerinin yanı sıra base64 ile kodlanmış veri veya görüntü URL'leri göndererek görüntüleri analiz edin. DeepSeek, görsel içeriği açıklar, yorumlar ve hakkında akıl yürütür.
Araç Kullanımı — İşlev Çağırma
JSON Schema ile özel araçlar tanımlayın. DeepSeek bunları ne zaman çağıracağına karar vererek aracı (agentic), çok adımlı iş akışlarına olanak tanır.
Model Yönetimi
Mevcut tüm DeepSeek modellerini programatik olarak listeleyin. Model kimliklerini, sahiplerini ve yeteneklerini sorgulayın.
Yerleşik Yeniden Deneme ve Günlük Tutma
Yapılandırılabilir deneme sayıları ve bekleme aralıklarıyla geçici hatalarda otomatik yeniden deneme. Hata ayıklama için tam istek/yanıt günlük tutma.

Başlarken

DeepSeek'i Delphi projenize bir dakikadan kısa sürede entegre edin. Bileşeni bırakın, API anahtarınızı yapılandırın ve ilk mesajınızı gönderin.

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

İki API stili. Her özellik hem kolaylık metotları (dize tabanlı, minimum kod) hem de türlü istek/yanıt sınıfları (tam kontrol, tür güvenliği) sunar. Kullanım senaryonuza en uygun yaklaşımı seçin.

Sohbet Tamamlamaları ve Akış

Sohbet Tamamlamaları API'si, her DeepSeek etkileşiminin temelidir. İsteğe bağlı sistem istemleriyle metin gönderin ve yanıtları senkron veya gerçek zamanlı akış halinde alın.

Sistem İstemleri

Konuşma için bağlamı, kişiliği veya kısıtlamaları belirleyen bir sistem istemi sağlayarak DeepSeek'in davranışını kontrol edin.

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

Gerçek Zamanlı Akış

Duyarlı kullanıcı arayüzleri için, DeepSeek'in yanıtını Server-Sent Events kullanarak belirteç belirteç akıtın. OnHTTPAPISSE olay işleyicisini atayın ve _CreateMessageStream metodunu çağırın.

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

Gelişmiş Türlü API

İstek parametreleri üzerinde tam kontrol için — sıcaklık, top-p, frekans cezası, varlık cezası, durdurma dizileri — türlü istek ve yanıt sınıflarını kullanın.

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;

Görüntü İşleme — Görüntü Anlama

DeepSeek, görüntüleri analiz edebilir ve hakkında akıl yürütebilir. Bir metin isteminin yanı sıra fotoğraflar, ekran görüntüleri, diyagramlar veya belgeler gönderin ve ayrıntılı açıklamalar, veri çıkarımı veya görsel Soru-Cevap alın.

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

Kullanım senaryosu. Fatura işlemeyi otomatikleştirin, belgelerden metin çıkarın, çizelgeleri ve grafikleri analiz edin veya görüntü sınıflandırma hatları oluşturun — tümü DeepSeek'in rekabetçi fiyatlandırmasıyla yerel Delphi kodundan.

Araç Kullanımı — İşlev Çağırma

JSON Schema ile özel araçlar tanımlayın; DeepSeek bunları ne zaman ve nasıl çağıracağına karar verecektir. Bu, yapay zekayı iş mantığınıza bağlayan aracı (agentic), çok adımlı iş akışları oluşturmanın temelidir.

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

Model Yönetimi

Mevcut DeepSeek modellerini programatik olarak sorgulayın. Kullanıma sunuldukça yeni yetenekleri keşfetmek için tüm modelleri listeleyin.

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

Yapılandırma ve Seçenekler

Kapsamlı yapılandırma seçenekleriyle bileşen davranışını ince ayarlayın.

Özellik Açıklama
DeepSeekOptions.ApiKey DeepSeek API anahtarınız (zorunlu)
HttpOptions.ReadTimeout Milisaniye cinsinden HTTP okuma zaman aşımı (varsayılan: 60000)
LogOptions.Enabled İstek/yanıt günlük tutmayı etkinleştirir
RetryOptions.Enabled Geçici hatalarda otomatik yeniden deneme
RetryOptions.Retries Maksimum yeniden deneme sayısı (varsayılan: 3)
RetryOptions.Wait Milisaniye cinsinden yeniden denemeler arasındaki bekleme süresi (varsayılan: 3000)

İstek Parametreleri

Parametre Açıklama
Temperature Örnekleme sıcaklığı (0,0–2,0). Daha düşük değerler = daha belirleyici.
TopP Çekirdek örneklemesi (0,0–1,0). Kümülatif olasılık eşiğini kontrol eder.
MaxTokens Yanıttaki maksimum belirteç (token) sayısı (varsayılan: 4096).
FrequencyPenalty Belirteçleri, şimdiye kadarki metindeki frekanslarına göre cezalandırır.
PresencePenalty Belirteçleri, şimdiye kadarki metinde görünüp görünmediklerine göre cezalandırır.
ToolChoice Araç seçimini kontrol eder: 'auto', 'none' veya 'required'.

Maliyet avantajı. DeepSeek modelleri, benzer sağlayıcılara göre önemli ölçüde daha düşük fiyatlarla rekabetçi kalite sunar. sgcWebSockets bileşeninin yerleşik yeniden deneme mantığı ve günlük tutmasıyla birlikte, maliyetin çok altında üretime hazır bir yapay zeka entegrasyonu elde edersiniz.