La API Realtime de OpenAI permite interacciones multimodales de baja latencia, incluyendo experiencias conversacionales de voz a voz y transcripción en tiempo real.
El componente TsgcWSAPI_OpenAI implementa la API RealTime de OpenAI.
Use la propiedad method para seleccionar Conversation o Transcription; actualmente solo se admite el modo Transcription.
La propiedad InputAudio permite personalizar los siguientes datos:
OpenAI
La API de OpenAI utiliza claves API para la autenticación. Visite su página de Claves API para obtener la clave API que utilizará en sus solicitudes.
Recuerde que su clave API es secreta. No la comparta con otros ni la exponga en ningún código del lado del cliente (navegadores, aplicaciones). Las solicitudes de producción deben enrutarse a través de su propio servidor backend, donde la clave API pueda cargarse de forma segura desde una variable de entorno o un servicio de gestión de claves.
Esta API Key debe configurarse en la propiedad OpenAIOptions.ApiKey del componente. Opcionalmente, para los usuarios que pertenezcan a varias organizaciones, puede establecer su organización en la propiedad OpenAIOptions.Organization si su cuenta pertenece a una organización.
Una vez configurada la clave de API, consulte a continuación la lista de funciones disponibles para interactuar con la API de OpenAI.
Azure
El cliente es compatible con Microsoft Azure OpenAI Services, por lo que también puede utilizar su cuenta de Azure para interactuar con la API de Azure OpenAI. Para configurar el cliente para trabajar con Azure, siga los pasos a continuación:
A continuación se muestra un ejemplo de transcripción en tiempo real utilizando la API de openAI
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;