API RealTime do OpenAI

· Componentes

A partir do sgcWebSockets 2025.5.0, a OpenAI RealTime API é suportada (atualmente apenas no modo de transcrição).

A OpenAI Realtime API permite interações multimodais de baixa latência, incluindo experiências de conversação voz a voz e transcrição em tempo real.

O componente TsgcWSAPI_OpenAI implementa a RealTime OpenAI API.

Configuração

Use a propriedade method para selecionar Conversation ou Transcription; atualmente apenas o modo Transcription é suportado.

A propriedade InputAudio permite personalizar os seguintes dados:

OpenAI

A API OpenAI usa chaves de API para autenticação. Acesse a página de API Keys para recuperar a chave que você usará nas suas requisições.

Lembre-se de que sua chave de API é um segredo! Não a compartilhe com outras pessoas nem a exponha em código do lado do cliente (navegadores, aplicativos). As requisições em produção devem ser roteadas através do seu próprio servidor backend, onde a chave pode ser carregada com segurança a partir de uma variável de ambiente ou de um serviço de gerenciamento de chaves.

Esta API Key deve ser configurada na propriedade OpenAIOptions.ApiKey do componente. Opcionalmente, para usuários que pertencem a múltiplas organizações, você pode definir sua organização na propriedade OpenAIOptions.Organization caso sua conta pertença a uma organização.

Após configurar a API Key, veja abaixo a lista de funções disponíveis para interagir com a API OpenAI.

Azure

O cliente suporta Microsoft Azure OpenAI Services, portanto você pode usar sua conta Azure para interagir com a Azure OpenAI API também. Para configurar o cliente para trabalhar com Azure, siga os próximos passos:

  1. Configure a propriedade OpenAIOptions.Provider = oapvAzure
  2. Defina os valores de ResourceName e DeploymentId (esses valores podem ser encontrados na sua conta Azure)
    1. OpenAIOptions.AzureOptions.ResourceName = <seu nome de recurso>.
    2. OpenAIOptions.AzureOptions.DeploymentId = <seu deployment id>.
  3. Defina a API Key da sua conta Azure
    1. OpenAIOptions.ApiKey = <azure api key>.

Exemplo de Transcrição

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

 Veja abaixo um demo em Delphi mostrando os principais recursos da OpenAI RealTime API.