OpenAI RealTime API

· Componentes

Desde sgcWebSockets 2025.5.0 la OpenAI RealTime API es compatible (actualmente solo el modo transcripción).

La OpenAI Realtime API permite interacciones multimodales de baja latencia, incluyendo experiencias conversacionales speech-to-speech y transcripción en tiempo real.

El componente TsgcWSAPI_OpenAI implementa la OpenAI RealTime API.

Configuración

Utiliza la propiedad method para seleccionar Conversation o Transcription; actualmente solo está soportado el modo Transcription.

La propiedad InputAudio permite personalizar los siguientes datos:

OpenAI

La API de OpenAI utiliza API keys para la autenticación. Visita tu página de API Keys para obtener la API key que usarás en tus peticiones.

Recuerda que tu API key es un secreto. No la compartas ni la expongas en código del lado del cliente (navegadores, apps). Las peticiones en producción deben enrutarse a través de tu propio servidor backend, donde la API key se pueda cargar 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, puedes asignar tu Organización en la propiedad OpenAIOptions.Organization si tu cuenta pertenece a una organización.

Una vez configurada la API Key, encontrarás a continuación una lista de las funciones disponibles para interactuar con la API de OpenAI.

Azure

El cliente admite Microsoft Azure OpenAI Services, así que también puedes usar tu cuenta de Azure para interactuar con la API de Azure OpenAI. Para configurar el cliente para trabajar con Azure, sigue estos pasos:

  1. Configura la propiedad OpenAIOptions.Provider = oapvAzure
  2. Establece los valores de ResourceName y DeploymentId (puedes encontrarlos en tu cuenta de Azure)
    1. OpenAIOptions.AzureOptions.ResourceName = <tu resource name>.
    2. OpenAIOptions.AzureOptions.DeploymentId = <tu deployment id>.
  3. Establece la API Key de tu cuenta de Azure
    1. OpenAIOptions.ApiKey = <azure api key>.

Ejemplo de transcripción

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

 A continuación encontrarás una demo en Delphi que muestra las principales características de la OpenAI RealTime API