Delphi OpenAI İstemcisi — ChatGPT, GPT-4, Embeddings, Whisper

OpenAI REST ve Realtime API'leri için yerel bir Delphi istemcisi. Token akışı, function calling ve yapılandırılmış çıktılarla sohbet tamamlamaları; embeddings; Whisper konuşmadan metne; TTS; DALL-E görüntü oluşturma; dosya aramalı Assistants v2; ve WebSocket üzerinden GPT-4o Realtime ses API'si — hepsi tek bir Pascal bileşeninden.

Tek bir bileşende eksiksiz OpenAI yüzeyi

ChatGPT API'sini Delphi'den çağırmak eskiden HTTP isteklerini, JSON serileştiricileri, multipart yükleyicileri ve SSE akış ayrıştırıcılarını elle yazmak anlamına gelirdi. Bunun yerine tek bir bileşen bırakın.

Bir Delphi OpenAI istemcisi, VCL / FMX uygulamanız ile OpenAI platformu arasındaki köprüdür: doğal dil muhakemesi için ChatGPT, anlamsal arama ve RAG için embeddings, transkripsiyon için Whisper, sözlü çıktı için TTS, görüntü oluşturma için DALL-E ve düşük gecikmeli ses aracıları için Realtime API. sgcWebSockets, her genel uç noktayı Pascal'a özgü özellikler, metotlar ve olaylarla saran tek bir görsel olmayan bileşen olan TsgcHTTP_API_OpenAI'yi sunar.

Bileşen, kütüphanenin geri kalanıyla aynı HTTP/2 yığını üzerine kurulu olduğundan, Server-Sent Events aracılığıyla token akışı, otomatik JSON-şema marshalling ile tam function calling (artık “tools”), paralel araç çağrıları, yapılandırılmış çıktılar (JSON-şema kısıtlamalı yanıtlar), Assistants v2 thread/run/message yaşam döngüsü, dosya araması için vektör depoları ve çift yönlü ses akışıyla WebSocket üzerinden GPT-4o Realtime API elde edersiniz. Aynı bileşen Azure OpenAI ile, Anthropic, Groq, Together, Mistral ve DeepSeek tarafından sunulan OpenAI uyumlu uç noktalarla ve yerel OpenAI uyumlu sunucularla (Ollama, LM Studio, vLLM) konuşur.

Bileşen sınıfı

TsgcHTTP_API_OpenAI

Taşıma

HTTP/2 + SSE akışı + WebSocket (Realtime)

Platformlar

Windows, macOS, Linux, iOS, Android, .NET

Uyumlu arka uçlar

OpenAI, Azure OpenAI, Ollama, DeepSeek, Groq, Together, Mistral, vLLM

Sarmalanmış her OpenAI uç noktası

Uç nokta başına bir metot, güçlü tipli parametreler, akış yanıtları için asenkron olaylar.

Sohbet tamamlamaları

Tam mesaj-dizisi desteği, system / user / assistant / tool rolleri, vision (image_url içeriği), muhakeme modelleri (o1, o3) ve JSON-şema yapılandırılmış çıktılarla ChatCompletions().

Akış

StreamChatCompletions() her delta token için OnChatCompletionStreamChunk tetikler — sıfır SSE ayrıştırma koduyla VCL grid'inizde veya FMX metin görünümünüzde daktilo deneyimi.

Function calling / tools

JSON-şema parametreli bir araç listesi kaydedin; model bir tanesini çağırdığında, ayrıştırılan argümanlarla OnChatCompletionToolCall alırsınız. Sonucu geri gönderin ve devam edin.

Embeddings

text-embedding-3-small / -large ile Embeddings() — Pascal verileriniz üzerinde anlamsal arama, kümeleme ve RAG'in temeli.

Whisper (STT)

AudioTranscription() ve AudioTranslation() — bir WAV/MP3/M4A yükleyin, zaman damgaları ve kelime düzeyinde güvenle bir transkript veya İngilizce çeviri alın.

TTS

AudioSpeech() MP3, Opus, AAC veya FLAC olarak sentezlenmiş konuşma döndürür — bir ses seçin, sonucu akışla oynatın.

DALL-E

DALL-E 2 / 3 ve gpt-image-1 ile ImageGeneration(), ImageEdit(), ImageVariation(). URL'ler veya base64 ile kodlanmış PNG döndürür.

Assistants v2

Thread'ler, run'lar, mesajlar, dosyalar, vektör depoları ve code interpreter — yoklama yapmamanız için run-streaming olaylarıyla.

Realtime API

Giriş/çıkış ses arabellekleri, ses etkinliği algılama, function calling ve GPT-4o gecikmesi ile çift yönlü WebSocket — doğal şekilde sözü kesen ses aracıları oluşturun.

Bir function tool ile akışlı sohbet

Token'ları akıtan ve konuşma ortasında bir Delphi işlevini çağırabilen bir ChatGPT çağrısı.

uses
  sgcHTTP_API_OpenAI, sgcHTTP_API_OpenAI_Types;

var
  OpenAI: TsgcHTTP_API_OpenAI;
  oChat:  TsgcHTTPOpenAIChatCompletionRequest;
  oTool:  TsgcHTTPOpenAITool;
begin
  OpenAI := TsgcHTTP_API_OpenAI.Create(nil);
  OpenAI.ApiKey := 'sk-...';
  OpenAI.OnChatCompletionStreamChunk := DoChunk;
  OpenAI.OnChatCompletionToolCall    := DoToolCall;

  oChat := TsgcHTTPOpenAIChatCompletionRequest.Create;
  try
    oChat.Model := 'gpt-4o';
    oChat.Messages.AddSystem('You are a Delphi assistant.');
    oChat.Messages.AddUser('What is the weather in Madrid?');

    oTool := oChat.Tools.AddFunction('get_weather',
      'Return current weather for a city.');
    oTool.Parameters
      .AddString('city', 'City name', True);

    OpenAI.StreamChatCompletions(oChat);
  finally
    oChat.Free;
  end;
end;

procedure TForm1.DoChunk(Sender: TObject;
  const aChunk: TsgcHTTPOpenAIChatCompletionStreamChunk);
begin
  Memo1.Text := Memo1.Text + aChunk.Content;
end;

procedure TForm1.DoToolCall(Sender: TObject;
  const aToolCall: TsgcHTTPOpenAIChatCompletionToolCall);
var
  vCity, vJSON: string;
begin
  if aToolCall.FunctionName = 'get_weather' then
  begin
    vCity := aToolCall.Arguments.S['city'];
    vJSON := MyWeatherLookup(vCity);  // your own Delphi code
    OpenAI.SubmitToolOutput(aToolCall.Id, vJSON);
  end;
end;

WebSocket üzerinden GPT-4o ses aracıları

OpenAI Realtime API, giriş ses çerçevelerinden oluşan bir akışı kabul eden ve çıkış ses çerçevelerinden oluşan bir akış yayan bir WebSocket uç noktasıdır — saniyenin altında gecikme, yerel barge-in (kullanıcı konuşmaya başladığında model durur), sunucu tarafı ses etkinliği algılama ve REST API ile aynı araç çağırma yüzeyiyle. sgcWebSockets bunu TsgcHTTP_API_OpenAI_Realtime ile sarar; bu da her sunucu mesajı için tipli olaylar (OnSessionUpdated, OnConversationItemCreated, OnInputAudioBufferSpeechStarted, OnResponseAudioDelta, vb.) verir, böylece onu doğrudan TBass, TMediaPlayer veya herhangi bir ses kuyruğuna takabilirsiniz.

Aynı bileşen, birden çok arka uç

Azure OpenAI

Endpoint değerini Azure kaynak URL'nize ve ApiKey değerini kaynak anahtarına ayarlayın — dağıtım kimlikleri model adlarının yerini alır.

Ollama / LM Studio

Endpoint değerini http://localhost:11434/v1 adresine yönlendirin — aynı bileşen yerel Llama, Mistral, Qwen ve Phi modellerini yönetir.

DeepSeek, Groq, Together, Mistral

Tümü OpenAI uyumlu uç noktalar sunar; yalnızca temel URL ve API anahtarı değişir.

vLLM, SGLang, llama.cpp sunucusu

OpenAI uyumlu REST ile kendi sunucunuzda barındırılan çıkarım sunucuları — akış SSE yolu bayt düzeyinde aynıdır.

Derinlemesine kaynaklar

OpenAI bileşen referansı

TsgcHTTP_API_OpenAI için tam özellik / metot / olay referansı.

Yapay Zeka / LLM merkezi

Anthropic Claude, Google Gemini, Mistral, Ollama, Pinecone, MCP, RAG.

Blog: OpenAI Realtime API

Adım adım ses aracısı incelemesi.

Blog: Function calling

Modelin Delphi kodunuzu çağırmasına izin verme deseni.

Blog: Yapay zeka destekli Delphi uygulamaları oluşturma

ChatGPT + embeddings kullanan uçtan uca uygulama mimarisi.

Blog: Delphi'de Assistants v2

Thread'ler, run'lar, dosya araması, code interpreter.

Yapay zeka özelliklerini Delphi uygulamanızda bugün yayınlayın

Denemeyi indirin — OpenAI demosu, derlemeye hazır sohbet, akış, araçlar, Whisper, TTS ve DALL-E örnekleriyle gelir.