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:
- Language: exemplo english (valor = 'en').
- Model: qual modelo será usado, exemplo: whisper-1
- Prompt: prompt opcional para fornecer instruções ao modelo.
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:
- Configure a propriedade OpenAIOptions.Provider = oapvAzure
- Defina os valores de ResourceName e DeploymentId (esses valores podem ser encontrados na sua conta Azure)
- OpenAIOptions.AzureOptions.ResourceName = <seu nome de recurso>.
- OpenAIOptions.AzureOptions.DeploymentId = <seu deployment id>.
- Defina a API Key da sua conta Azure
- 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.
