OpenAI RealTime API

· Komponenten

Ab sgcWebSockets 2025.5.0 wird die OpenAI RealTime API unterstützt (derzeit nur Transcription-Modus).

Die OpenAI Realtime API ermöglicht latenzarme, multimodale Interaktionen, darunter Speech-to-Speech-Konversationen und Echtzeit-Transkription.

Die Komponente TsgcWSAPI_OpenAI implementiert die OpenAI RealTime API.

Konfiguration

Über die Eigenschaft method wählst du zwischen Conversation oder Transcription; derzeit wird nur der Transcription-Modus unterstützt.

Mit der Eigenschaft InputAudio kannst du folgende Daten anpassen:

OpenAI

Die OpenAI-API verwendet API-Keys zur Authentifizierung. Rufe deine API-Keys-Seite auf, um den API-Key abzurufen, den du in deinen Anfragen verwendest.

Denk daran, dass dein API-Key geheim ist! Gib ihn nicht an andere weiter und stelle ihn nicht in Client-Code (Browsern, Apps) bereit. Produktionsanfragen müssen über deinen eigenen Backend-Server geroutet werden, auf dem der API-Key sicher aus einer Umgebungsvariable oder einem Key-Management-Service geladen werden kann.

Dieser API-Key muss in der Eigenschaft OpenAIOptions.ApiKey der Komponente konfiguriert werden. Optional kannst du für Nutzer, die mehreren Organisationen angehören, in der Eigenschaft OpenAIOptions.Organization deine Organisation setzen, falls dein Konto zu einer Organisation gehört.

Sobald der API-Key konfiguriert ist, findest du unten eine Liste der verfügbaren Funktionen zur Interaktion mit der OpenAI-API.

Azure

Der Client unterstützt Microsoft Azure OpenAI Services, sodass du auch dein Azure-Konto nutzen kannst, um mit der Azure-OpenAI-API zu interagieren. Um den Client für Azure zu konfigurieren, folge diesen Schritten:

  1. Setze die Eigenschaft OpenAIOptions.Provider = oapvAzure
  2. Setze die Werte von ResourceName und DeploymentId (diese Werte findest du in deinem Azure-Konto)
    1. OpenAIOptions.AzureOptions.ResourceName = <dein Resource-Name>.
    2. OpenAIOptions.AzureOptions.DeploymentId = <deine Deployment-ID>.
  3. Setze den API-Key deines Azure-Kontos
    1. OpenAIOptions.ApiKey = <Azure-api-Key>.

Transcription-Beispiel

WSClient := TsgcWebSocketClient.Create(nil);
oAudio := TsgcAudioRecorderWave.Create(nil);
OpenAI := TsgcWSAPI_OpenAI.Create(nil);
OpenAI.Client := WSClient;
OpenAI.AudioRecorder := oAudio;
OpenAI.OpenAIOptions.APIKey := 'your-api-key-here';
OpenAI.OpenAIOptions.method := sgcoaimTranscription;
OpenAI.OpenAIOptions.provider := sgcoaipOpenAI;
OpenAI.InputAudio.Language := 'en';
OpenAI.InputAudio.Model := 'whisper-1';
procedure OnOpenAIAudioTranscriptionCompleted(Sender: TObject; const aItem: TsgcWSOpenAIConversation_Item_Completed);
begin
  Log('#transcription_completed: ' + aItem.Transcript);
end; 

Demo

 Unten findest du eine Delphi-Demo, die die wichtigsten Funktionen der OpenAI RealTime API zeigt