API | OpenAI

OpenAI Realtime API umożliwia interakcje niskolatencyjne z obsługą wielu modalności, w tym konwersacje mowy na mowę oraz transkrypcję w czasie rzeczywistym.

 

Komponent TsgcWSAPI_OpenAI implementuje RealTime OpenAI API.

 

Konfiguracja

Należy użyć właściwości method, aby wybrać tryb Conversation lub Transcription; obecnie obsługiwany jest wyłącznie tryb Transcription.

 

Właściwość InputAudio umożliwia dostosowanie następujących danych:

 

 

OpenAI

 

OpenAI API używa kluczy API do uwierzytelniania. Należy odwiedzić stronę Klucze API, aby pobrać klucz API używany w żądaniach.

Klucz API jest informacją poufną — nie należy udostępniać go innym ani umieszczać w kodzie po stronie klienta (przeglądarki, aplikacje). Żądania produkcyjne muszą być kierowane przez własny serwer backendowy, gdzie klucz API może być bezpiecznie ładowany ze zmiennej środowiskowej lub usługi zarządzania kluczami.

 

Ten klucz API musi być skonfigurowany we właściwości OpenAIOptions.ApiKey komponentu. Opcjonalnie, dla użytkowników należących do wielu organizacji, można ustawić organizację we właściwości OpenAIOptions.Organization, jeśli konto należy do organizacji.

 

Po skonfigurowaniu klucza API poniżej znajduje się lista dostępnych funkcji do interakcji z OpenAI API.

 

Azure

 

Klient obsługuje Microsoft Azure OpenAI Services, dzięki czemu można używać konta Azure do interakcji z Azure OpenAI API. Aby skonfigurować klienta do pracy z Azure, należy wykonać następujące kroki:

 

  1. Skonfiguruj właściwość OpenAIOptions.Provider = oapvAzure
  2. Ustaw wartości ResourceName i DeploymentId (wartości te można znaleźć na koncie Azure)
    1. OpenAIOptions.AzureOptions.ResourceName = <nazwa zasobu>.
    2. OpenAIOptions.AzureOptions.DeploymentId = <identyfikator wdrożenia>.
  3. Ustaw klucz API swojego konta Azure
    1. OpenAIOptions.ApiKey = <azure api key>.

 

Przykład transkrypcji

Poniżej znajduje się przykład transkrypcji w czasie rzeczywistym z użyciem 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;