Grok Delphi API Client

· Bileşenler

xAI tarafından geliştirilen Grok, gerçek zamanlı bilgi ve gelişmiş akıl yürütme yetenekleriyle hızlı, akıllı yanıtlar için tasarlanmış yüksek performanslı bir yapay zeka modelidir. Grok'u uygulamalarına entegre etmek isteyen Delphi geliştiricileri için sgcWebSockets, TsgcHTTP_API_Grok sunar; bu, tüm xAI Grok API'sini temiz, tip güvenli Delphi koduyla saran yerel bir bileşendir.

İster sohbet asistanları oluşturuyor, görüntü analiz ediyor, araçla zenginleştirilmiş iş akışlarını düzenliyor ister gerçek zamanlı yanıtlar akıtıyor olun, bu bileşen her Grok özelliğine doğrudan erişim sağlar. REST kalıp kodu yok. JSON ile boğuşmak yok. Yalnızca bileşeni bırakın, API anahtarınızı ayarlayın ve oluşturmaya başlayın.

Tam API Kapsamı

xAI Grok API'sinin her büyük özelliği kutudan çıkar çıkmaz desteklenir.

Sohbet Tamamlamaları
Sistem istemleriyle mesaj gönderin, yanıtları senkron olarak veya akış halinde alın. Temperature, top-p, frekans ve varlık cezaları üzerinde tam denetim.
Gerçek Zamanlı Akış
Server-Sent Events kullanarak yanıtları belirteç belirteç akıtın. Yanıtları üretildikçe gösteren duyarlı arayüzler oluşturun.
Görüntü (Vision)
Metin istemleriyle birlikte base64 kodlu veri veya görüntü URL'leri göndererek görüntüleri analiz edin. Grok, görsel içeriği tanımlar, 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. Grok bunları ne zaman çağıracağına karar vererek aracılı, çok adımlı iş akışlarını mümkün kılar.
Model Yönetimi
Mevcut tüm Grok modellerini programatik olarak listeleyin. En uygun olanı seçmek için model kimliklerini ve yeteneklerini sorgulayın.
Yerleşik Yeniden Deneme & Günlük Kaydı
Yapılandırılabilir deneme ve bekleme aralıklarıyla geçici hatalarda otomatik yeniden deneme. Hata ayıklama için tam istek/yanıt günlük kaydı.

Başlarken

xAI Grok'u 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
  Grok: TsgcHTTP_API_Grok;
  vResponse: string;
begin
  Grok := TsgcHTTP_API_Grok.Create(nil);
  Try
    Grok.GrokOptions.ApiKey := 'YOUR_API_KEY';
    // Send a simple message to Grok
    vResponse := Grok._CreateMessage(
      'grok-3', 'Hello, Grok!');
    ShowMessage(vResponse);
  Finally
    Grok.Free;
  End;
end;

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

Sohbet Tamamlamaları & Akış

Chat Completions API'si, her Grok etkileşiminin temelidir. İsteğe bağlı sistem istemleriyle metin gönderin ve yanıtları senkron olarak 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 Grok'un davranışını denetleyin.

vResponse := Grok._CreateMessageWithSystem(
  'grok-3',
  '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, Server-Sent Events kullanarak Grok'un yanıtını belirteç belirteç akıtın. OnHTTPAPISSE olay işleyicisini atayın ve _CreateMessageStream çağırın.

// Enable streaming via SSE
Grok.OnHTTPAPISSE := OnSSEEvent;
Grok._CreateMessageStream('grok-3',
  '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ş Tipli API

İstek parametreleri üzerinde tam denetim için (temperature, top-p, frekans cezası, varlık cezası, durdurma dizileri, tamamlama sayısı) tipli istek ve yanıt sınıflarını kullanın.

var
  oRequest: TsgcGrokClass_Request_ChatCompletion;
  oMessage: TsgcGrokClass_Request_Message;
  oResponse: TsgcGrokClass_Response_ChatCompletion;
begin
  oRequest := TsgcGrokClass_Request_ChatCompletion.Create;
  Try
    oRequest.Model := 'grok-3';
    oRequest.MaxTokens := 2048;
    oRequest.Temperature := 0.7;
    oRequest.TopP := 0.9;
    oRequest.FrequencyPenalty := 0.5;
    oRequest.N := 1;
    oMessage := TsgcGrokClass_Request_Message.Create;
    oMessage.Role := 'user';
    oMessage.Content := 'Explain quantum computing in simple terms.';
    oRequest.Messages.Add(oMessage);
    oResponse := Grok.CreateMessage(oRequest);
    Try
      if Length(oResponse.Choices) > 0 then
        ShowMessage(oResponse.Choices[0].Message.Content);
    Finally
      oResponse.Free;
    End;
  Finally
    oRequest.Free;
  End;
end;

Görüntü (Vision), Görüntü Anlama

Grok, görüntüleri analiz edebilir ve hakkında akıl yürütebilir. Bir metin istemiyle birlikte fotoğraflar, ekran görüntüleri, diyagramlar veya grafikler gönderin ve ayrıntılı açıklamalar, veri çıkarımı veya görsel soru-cevap alın.

// Load an image and ask Grok to analyze it
var
  vBase64: string;
begin
  vBase64 := sgcBase64Encode(LoadFileToBytes('dashboard-screenshot.png'));
  ShowMessage(Grok._CreateVisionMessage(
    'grok-3',
    'Analyze this dashboard and summarize the key metrics.',
    vBase64, 'image/png'));
end;

Kullanım senaryosu. Rapor analizini otomatikleştirin, ekran görüntülerinden veri çıkarın, görsel içeriğin açıklamalarını üretin veya görüntüden haberdar asistanlar oluşturun; hepsi yerel Delphi kodundan.

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

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

var
  oRequest: TsgcGrokClass_Request_ChatCompletion;
  oTool: TsgcGrokClass_Request_Tool;
  oResponse: TsgcGrokClass_Response_ChatCompletion;
begin
  // Define a tool with JSON Schema
  oTool := TsgcGrokClass_Request_Tool.Create;
  oTool.Name := 'search_database';
  oTool.Description := 'Search the product database by keyword';
  oTool.Parameters :=
    '{"type":"object","properties":{"query":{"type":"string",' +
    '"description":"Search keyword"}},"required":["query"]}';
  oRequest.Tools.Add(oTool);
  oRequest.ToolChoice := 'auto';
  oResponse := Grok.CreateMessage(oRequest);
  // Check if Grok wants to call a tool
  if oResponse.Choices[0].FinishReason = 'tool_calls' then
  begin
    for i := 0 to Length(oResponse.Choices[0].Message.ToolCalls) - 1 do
    begin
      vToolId   := oResponse.Choices[0].Message.ToolCalls[i].Id;
      vFuncName := oResponse.Choices[0].Message.ToolCalls[i].FunctionCall.Name;
      vFuncArgs := oResponse.Choices[0].Message.ToolCalls[i].FunctionCall.Arguments;
      // Execute the tool and return the result
    end;
  end;

Model Yönetimi

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

// List all available Grok models
vModels := Grok._GetModels;
// Typed API: access model properties directly
var
  oModels: TsgcGrokClass_Response_Models;
  i: Integer;
begin
  oModels := Grok.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 & Seçenekler

Bileşen davranışını kapsamlı yapılandırma seçenekleriyle ince ayarlayın.

Özellik Açıklama
GrokOptions.ApiKey xAI 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 kaydını 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ı bekleme süresi (varsayılan: 3000)

İstek Parametreleri

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

Neden Grok? xAI tarafından yardımseverliğe ve gerçek zamanlı bilgiye odaklanılarak oluşturulan Grok, güncel bilgi ve incelikli akıl yürütme gerektiren görevlerde üstünlük gösterir. sgcWebSockets bileşeni, Delphi kodunuzu temiz ve tutarlı tutarken Grok ile diğer yapay zeka sağlayıcıları arasında geçiş yapmayı kolaylaştırır.