sgcWebSockets 2026.4.0, OpenAI API entegrasyonunda büyük bir genişleme sunarak şunlara tam destek getirir: yeni Responses API (kullanımdan kaldırılan Assistants API'sinin resmi yerini alır), Audio Speech metin-konuşma, Fine-Tuning Jobs yönetimi, asenkron toplu işleme için Batch API, büyük dosya işleme için Uploads API ve araç çağırma ile yapılandırılmış çıktı desteğine sahip modernleştirilmiş Chat Completions. Bu makale, her yeni metodu, parametrelerini ve pratik Delphi kod örneklerini kapsar.
İçindekiler
- Responses API (Assistants'ın Yerini Alır)
- Audio Speech (Metin-Konuşma)
- Fine-Tuning Jobs
- Chat Completions Güncellemeleri
- Batch API
- Uploads API
1. Responses API (Assistants'ın Yerini Alır)
Responses API, bu sürümdeki en önemli eklentidir. Kullanımdan kaldırılan Assistants API'sinin yerini
/responses uç noktası aracılığıyla sunulan, sadeleştirilmiş, durumsuz bir arayüzle alır.
Tüm metotlar TsgcHTTP_API_OpenAI bileşeninde kullanılabilir.
Assistants'tan farklı olarak, her Responses API çağrısı; araç tanımlarını, dosya aramayı,
web aramayı ve yapılandırılmış çıktıyı tek bir istekte içerebilen tek bir gidiş-dönüştür.
Metotlar
| Metot | Açıklama | Endpoint |
|---|---|---|
CreateResponse |
Yeni bir model yanıtı oluşturur. Bir model tanımlayıcısını ve girdi metnini (veya yapılandırılmış girdi dizisini) kabul eder. Modelin ürettiği çıktıyı, varsa araç çağrılarıyla birlikte döndürür. | POST /responses |
RetrieveResponse |
Daha önce oluşturulmuş bir yanıtı benzersiz kimliğine göre alır. Tamamlanmış yanıtları yoklamak veya denetlemek için kullanışlıdır. | GET /responses/{response_id} |
DeleteResponse |
Depolanmış bir yanıtı kalıcı olarak siler. Yalnızca oluşturma sırasında store: true kullanıldığında geçerlidir. |
DELETE /responses/{response_id} |
CancelResponse |
Devam eden bir yanıtı iptal eder. Arka plan modunda oluşturulan yanıtlar için geçerlidir. | POST /responses/{response_id}/cancel |
ListInputItems |
Bir yanıtla ilişkili girdi öğelerini listeler. Modele gönderilen konuşma bağlamını incelemek için kullanışlıdır. | GET /responses/{response_id}/input_items |
Delphi Örneği
var
OpenAI: TsgcHTTP_API_OpenAI;
vResponse: String;
begin
OpenAI := TsgcHTTP_API_OpenAI.Create(nil);
Try
OpenAI.OpenAIOptions.ApiKey := 'sk-your-api-key';
// Create a simple response
vResponse := OpenAI._CreateResponse('gpt-4o', 'Explain quantum computing');
ShowMessage(vResponse);
// Retrieve a previously created response
vResponse := OpenAI._RetrieveResponse('resp_abc123');
ShowMessage(vResponse);
// Delete a stored response
OpenAI._DeleteResponse('resp_abc123');
Finally
OpenAI.Free;
end;
end;
2. Audio Speech (Metin-Konuşma)
Audio Speech API, OpenAI'nin TTS modellerini kullanarak metin-konuşma yetenekleri sağlar. İki model kademesini destekler:
düşük gecikmeli akış kullanım senaryoları için tts-1 ve
daha yüksek kaliteli çıktı için tts-1-hd.
Altı yerleşik ses mevcuttur: alloy, echo, fable,
onyx, nova ve shimmer.
Çıktı mp3, opus, aac, flac, wav veya pcm biçiminde döndürülebilir.
Metotlar
| Metot | Açıklama | Endpoint |
|---|---|---|
CreateSpeech |
Belirtilen model ve sesi kullanarak sağlanan metin girdisinden ses üretir. Ses içeriğini ikili bir akış olarak döndürür. | POST /audio/speech |
Delphi Örneği
var
OpenAI: TsgcHTTP_API_OpenAI;
vAudioStream: TMemoryStream;
begin
OpenAI := TsgcHTTP_API_OpenAI.Create(nil);
Try
OpenAI.OpenAIOptions.ApiKey := 'sk-your-api-key';
// Generate speech using the 'alloy' voice
oStream := TFileStream.Create('stream.mpeg', fmCreate or fmOpenRead);
Try
OpenAI._CreateSpeech('tts-1', 'Hello world', 'alloy', oStream);
Finally
oStream.Free;
End;
// Generate high-definition speech with 'nova' voice
oStream := TFileStream.Create('stream.mpeg', fmCreate or fmOpenRead);
Try
OpenAI._CreateSpeech('tts-1-hd', 'Welcome to sgcWebSockets.', 'nova', oStream);
Finally
oStream.Free;
End;
Finally
OpenAI.Free;
end;
end;
Not: tts-1 modeli
gerçek zamanlı, düşük gecikmeli uygulamalar için optimize edilmiştir; tts-1-hd ise
biraz artan gecikme pahasına daha yüksek ses kalitesi sağlar. Uygulama gereksinimlerinize göre seçim yapın.
3. Fine-Tuning Jobs
Fine-Tuning Jobs API, kullanımdan kaldırılan /fine-tunes uç noktasının yerini
yeni /fine_tuning/jobs uç noktasıyla alır.
İnce ayar işlemleri için tam yaşam döngüsü yönetimi sağlar: işler oluşturma, etkin ve tamamlanmış işleri listeleme,
ayrıntıları alma, devam eden işleri iptal etme ve eğitim olaylarını akıtma. Bu API,
kendi eğitim verilerinizi kullanarak gpt-4o-mini-2024-07-18 gibi modellerin ince ayarını destekler.
Metotlar
| Metot | Açıklama | Endpoint |
|---|---|---|
CreateFineTuningJob |
Belirtilen bir temel modeli ve daha önce yüklenmiş bir eğitim dosyasını kullanarak yeni bir ince ayar işi oluşturur. İş nesnesini kimliği ve durumuyla birlikte döndürür. | POST /fine_tuning/jobs |
ListFineTuningJobs |
Organizasyon için tüm ince ayar işlerini sayfalama desteğiyle listeler. İşleri oluşturma tarihine göre sıralı olarak döndürür. | GET /fine_tuning/jobs |
RetrieveFineTuningJob |
Belirli bir ince ayar işi hakkında durum, hiperparametreler ve sonuç dosyaları dahil olmak üzere ayrıntılı bilgi alır. | GET /fine_tuning/jobs/{job_id} |
CancelFineTuningJob |
Devam eden bir ince ayar işini iptal eder. İş durumu "cancelled" olarak değişir ve başka eğitim gerçekleşmez. | POST /fine_tuning/jobs/{job_id}/cancel |
ListFineTuningJobEvents |
Bir ince ayar işi için eğitim kaybı, doğrulama metrikleri ve tamamlanma durumu dahil olmak üzere durum olaylarını listeler. Sayfalamayı destekler. | GET /fine_tuning/jobs/{job_id}/events |
Delphi Örneği
var
OpenAI: TsgcHTTP_API_OpenAI;
vResponse: String;
begin
OpenAI := TsgcHTTP_API_OpenAI.Create(nil);
Try
OpenAI.OpenAIOptions.ApiKey := 'sk-your-api-key';
// Create a fine-tuning job
vResponse := OpenAI._CreateFineTuningJob('gpt-4o-mini-2024-07-18', 'file-abc123');
ShowMessage(vResponse);
// List all fine-tuning jobs
vResponse := OpenAI._ListFineTuningJobs;
ShowMessage(vResponse);
// Retrieve a specific job
vResponse := OpenAI._RetrieveFineTuningJob('ftjob-xyz789');
ShowMessage(vResponse);
// List events for a job
vResponse := OpenAI._ListFineTuningJobEvents('ftjob-xyz789');
ShowMessage(vResponse);
// Cancel an in-progress job
OpenAI._CancelFineTuningJob('ftjob-xyz789');
Finally
OpenAI.Free;
end;
end;
4. Chat Completions Güncellemeleri
sgcWebSockets 2026.4.0'daki Chat Completions API'si, birkaç yeni istek özelliği ve yanıt alanıyla modernleştirildi. Bu eklemeler; araç/işlev çağırma, yapılandırılmış JSON çıktısı, seed'ler aracılığıyla deterministik üretim ve paralel araç yürütme için tam destek getirir.
Yeni İstek Özellikleri
| Özellik | Açıklama | Endpoint |
|---|---|---|
Tools |
Modelin çağırabileceği bir araçlar (işlevler) listesi tanımlar. Her araç bir ad, açıklama ve parametreleri için bir JSON Schema içerir. | POST /chat/completions |
ToolChoice |
Modelin araçları nasıl seçtiğini denetler. Seçenekler: auto, none, required veya belirli bir işlev adı. |
POST /chat/completions |
ResponseFormat |
Çıktı biçimini belirtir. Garantili JSON çıktısı için json_object'i veya sağlanan bir şemaya uygun yapılandırılmış çıktı için json_schema'yı kullanın. |
POST /chat/completions |
Seed |
Deterministik örnekleme için bir tamsayı seed. Aynı seed ve parametreler kullanıldığında, model aynı çıktıyı üretmeye çalışır. | POST /chat/completions |
MaxCompletionTokens |
Modelin yanıtta üretebileceği token sayısına bir üst sınır koyar. Daha eski max_tokens parametresinin yerini alır. |
POST /chat/completions |
ParallelToolCalls |
Etkinleştirildiğinde, model tek bir yanıtta birden çok araç çağrısı yapabilir ve istemci tarafında paralel yürütmeye olanak tanır. | POST /chat/completions |
StreamOptions |
Akış yanıtları için yapılandırma. Son akış parçasında token kullanım istatistiklerini almak üzere include_usage gibi seçenekler içerir. |
POST /chat/completions |
Yeni Yanıt Alanları
| Alan | Açıklama | Endpoint |
|---|---|---|
ToolCalls |
Asistan mesajındaki araç çağrısı nesnelerinin dizisi. Her biri, istemci tarafı yürütme için bir kimlik, işlev adı ve argümanlar içerir. | POST /chat/completions |
Refusal |
Modelin, güvenlik veya içerik politikası kısıtlamaları nedeniyle bir isteği yerine getirmeyi reddettiğinde verdiği ret mesajını içerir. | POST /chat/completions |
SystemFingerprint |
Yanıtı üretmek için kullanılan arka uç yapılandırmasını temsil eden bir parmak izi. Seed kullanırken deterministik çıktıyı doğrulamak için kullanışlıdır. |
POST /chat/completions |
Delphi Örneği
var
OpenAI: TsgcHTTP_API_OpenAI;
vResponse: String;
begin
OpenAI := TsgcHTTP_API_OpenAI.Create(nil);
Try
OpenAI.OpenAIOptions.ApiKey := 'sk-your-api-key';
// Configure Chat Completions with new properties
OpenAI.ChatCompletions.Model := 'gpt-4o';
OpenAI.ChatCompletions.MaxCompletionTokens := 1024;
OpenAI.ChatCompletions.Seed := 42;
OpenAI.ChatCompletions.ParallelToolCalls := True;
OpenAI.ChatCompletions.ResponseFormat := 'json_object';
// Add a user message and create the completion
OpenAI.ChatCompletions.AddMessage('user', 'List 3 benefits of Delphi in JSON format.');
vResponse := OpenAI._CreateChatCompletion;
ShowMessage(vResponse);
Finally
OpenAI.Free;
end;
end;
5. Batch API
Batch API, asenkron işleme için büyük API istek gruplarını göndermenize olanak tanır. Bu;
toplu sınıflandırma, embedding üretimi veya büyük ölçekli içerik denetimi gibi anında yanıt gerektirmeyen
iş yükleri için idealdir. Toplu istekler genellikle 24 saat içinde tamamlanır ve senkron API çağrılarına kıyasla
%50 maliyet azaltımı sunar. Tüm toplu metotlar,
TsgcHTTP_API_OpenAI bileşeninde,
/batches uç noktası aracılığıyla kullanılabilir.
Metotlar
| Metot | Açıklama | Endpoint |
|---|---|---|
CreateBatch |
API istekleri içeren, daha önce yüklenmiş bir JSONL dosyasından yeni bir toplu iş oluşturur. Girdi dosyası kimliğini ve hedef uç noktayı gerektirir. | POST /batches |
RetrieveBatch |
Bir toplu işin geçerli durumunu ve ayrıntılarını, ilerleme sayıları ve çıktı dosyası referansları dahil olmak üzere alır. | GET /batches/{batch_id} |
ListBatches |
Organizasyon için tüm toplu işleri listeler. after ve limit parametreleri aracılığıyla sayfalamayı destekler. |
GET /batches |
CancelBatch |
Devam eden bir toplu işi iptal eder. Toplu işteki tamamlanmış istekler etkilenmez. | POST /batches/{batch_id}/cancel |
Delphi Örneği
var
OpenAI: TsgcHTTP_API_OpenAI;
vResponse: String;
begin
OpenAI := TsgcHTTP_API_OpenAI.Create(nil);
Try
OpenAI.OpenAIOptions.ApiKey := 'sk-your-api-key';
// Create a batch job targeting chat completions
vResponse := OpenAI._CreateBatch('file-abc123', '/v1/chat/completions');
ShowMessage(vResponse);
// Check batch status
vResponse := OpenAI._RetrieveBatch('batch_xyz789');
ShowMessage(vResponse);
// List all batches
vResponse := OpenAI._ListBatches;
ShowMessage(vResponse);
// Cancel a batch if needed
OpenAI._CancelBatch('batch_xyz789');
Finally
OpenAI.Free;
end;
end;
Not: CreateBatch için girdi dosyası, purpose batch ile Files API aracılığıyla
yüklenmiş bir JSONL dosyası olmalıdır. Dosyadaki her satır,
özel bir kimlik, metot, URL ve gövdeye sahip tek bir API isteğini temsil eder.
6. Uploads API
Uploads API, büyük dosyaların birden çok parça halinde yüklenmesini sağlar; bu,
tek istek yükleme limitini (genellikle 512 MB) aşan dosyalarla çalışırken gereklidir. İş akışı; bir yükleme oturumu oluşturmayı,
parçaları sıralı olarak eklemeyi ve ardından bir
yükleme oturumunu tamamlayarak diğer API uç noktalarıyla kullanılabilen bir File nesnesi almayı içerir.
Tüm metotlar,
TsgcHTTP_API_OpenAI bileşeninde,
/uploads uç noktası aracılığıyla kullanılabilir.
Metotlar
| Metot | Açıklama | Endpoint |
|---|---|---|
CreateUpload |
Yeni bir çok parçalı yükleme oturumu başlatır. Dosya adını, amacı, toplam bayt sayısını ve MIME türünü gerektirir. Benzersiz kimliğe sahip bir yükleme nesnesi döndürür. | POST /uploads |
AddUploadPart |
Devam eden bir yüklemeye bir dosya verisi parçası ekler. Parçalar sıralı olarak eklenmelidir ve her parça, tamamlama için gereken bir parça kimliği döndürür. | POST /uploads/{upload_id}/parts |
CompleteUpload |
Sıralı parça kimlikleri listesini sağlayarak çok parçalı yüklemeyi tamamlar. Diğer API'lerle kullanılabilen son File nesnesini döndürür. |
POST /uploads/{upload_id}/complete |
CancelUpload |
Devam eden bir yükleme oturumunu iptal eder. Yüklenen tüm parçalar atılır ve yükleme kimliği geçersiz hale gelir. | POST /uploads/{upload_id}/cancel |
Delphi Örneği
var
OpenAI: TsgcHTTP_API_OpenAI;
vUploadResponse: String;
vPartResponse: String;
vCompleteResponse: String;
begin
OpenAI := TsgcHTTP_API_OpenAI.Create(nil);
Try
OpenAI.OpenAIOptions.ApiKey := 'sk-your-api-key';
// Step 1: Create an upload session
vUploadResponse := OpenAI._CreateUpload(
'training_data.jsonl', 'fine-tune', 104857600, 'application/jsonl');
ShowMessage(vUploadResponse);
// Step 2: Add file parts
vPartResponse := OpenAI._AddUploadPart('upload_abc123', 'C:\data\part1.jsonl');
ShowMessage(vPartResponse);
vPartResponse := OpenAI._AddUploadPart('upload_abc123', 'C:\data\part2.jsonl');
ShowMessage(vPartResponse);
// Step 3: Complete the upload
vCompleteResponse := OpenAI._CompleteUpload('upload_abc123',
'["part_def456", "part_ghi789"]');
ShowMessage(vCompleteResponse);
Finally
OpenAI.Free;
end;
end;
Not: Yükleme oturumları bir saatlik etkinlik olmamasının ardından sona erer. Her parça en az 5 MB olmalıdır (son parça
hariç) ve parçalar birleştirilecekleri sırayla eklenmelidir. Maksimum toplam yükleme boyutu 8 GB'dir.
