Die OpenAI Realtime API ermöglicht latenzarme, multimodale Interaktionen einschließlich Speech-to-Speech-Konversationserlebnissen und Echtzeit-Transkription.
Die Komponente TsgcWSAPI_OpenAI implementiert die OpenAI-RealTime-API.
Verwenden Sie die Eigenschaft method , um Conversation oder Transcription auszuwählen, derzeit wird nur der Transcription-Modus unterstützt.
Die Eigenschaft InputAudio ermöglicht Ihnen, die folgenden Daten anzupassen:
OpenAI
Die OpenAI-API verwendet API-Schlüssel zur Authentifizierung. Besuchen Sie Ihre Seite API Keys, um den API-Schlüssel abzurufen, den Sie in Ihren Anfragen verwenden.
Denken Sie daran, dass Ihr API-Schlüssel geheim ist! Geben Sie ihn nicht an andere weiter und legen Sie ihn nicht in clientseitigem Code (Browser, Apps) offen. Produktionsanfragen müssen über Ihren eigenen Backend-Server geleitet werden, wo Ihr API-Schlüssel sicher aus einer Umgebungsvariablen oder einem Schlüsselverwaltungsdienst geladen werden kann.
Dieser API Key muss in der Eigenschaft OpenAIOptions.ApiKey der Komponente konfiguriert werden. Optional können Sie für Benutzer, die mehreren Organisationen angehören, Ihre Organisation in der Eigenschaft OpenAIOptions.Organization festlegen, falls Ihr Konto zu einer Organisation gehört.
Sobald der API Key konfiguriert ist, finden Sie nachfolgend eine Liste der verfügbaren Funktionen zur Interaktion mit der OpenAI-API.
Azure
Der Client unterstützt Microsoft Azure OpenAI Services, sodass Sie Ihr Azure-Konto verwenden können, um auch mit der Azure OpenAI API zu interagieren. Um den Client für die Arbeit mit Azure zu konfigurieren, befolgen Sie die nächsten Schritte:
Nachfolgend finden Sie ein Beispiel für Echtzeit-Transkription mit der openAI-API
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;