À partir de sgcWebSockets 2025.5.0, l'API OpenAI RealTime est prise en charge (actuellement uniquement en mode transcription).
L'API OpenAI Realtime permet des interactions multimodales à faible latence, dont des expériences conversationnelles speech-to-speech et la transcription en temps réel.
Le composant TsgcWSAPI_OpenAI implémente l'API OpenAI RealTime.Configuration
Utilise la propriété method pour sélectionner Conversation ou Transcription ; actuellement seul le mode Transcription est pris en charge.
La propriété InputAudio te permet de personnaliser les données suivantes :
- Language : par exemple anglais (value = 'en').
- Model : quel modèle sera utilisé, par exemple whisper-1.
- Prompt : prompt optionnel pour fournir des instructions au modèle.
OpenAI
L'API OpenAI utilise des clés API pour l'authentification. Visite ta page API Keys pour récupérer la clé API que tu utiliseras dans tes requêtes.
Rappelle-toi que ta clé API est un secret ! Ne la partage pas et ne l'expose pas dans du code côté client (navigateurs, apps). Les requêtes de production doivent être routées via ton propre serveur backend, où ta clé API peut être chargée de façon sécurisée depuis une variable d'environnement ou un service de gestion des clés.
Cette clé API doit être configurée dans la propriété OpenAIOptions.ApiKey du composant. Optionnellement, pour les utilisateurs qui appartiennent à plusieurs organisations, tu peux définir ton organisation dans la propriété OpenAIOptions.Organization si ton compte appartient à une organisation.
Une fois la clé API configurée, tu trouveras ci-dessous la liste des fonctions disponibles pour interagir avec l'API OpenAI.
Azure
Le client prend en charge Microsoft Azure OpenAI Services, donc tu peux utiliser ton compte Azure pour interagir avec l'API Azure OpenAI. Pour configurer le client avec Azure, suis les étapes suivantes :
- Configure la propriété OpenAIOptions.Provider = oapvAzure
- Définis les valeurs de ResourceName et DeploymentId (ces valeurs sont disponibles dans ton compte Azure)
- OpenAIOptions.AzureOptions.ResourceName = <ton nom de ressource>.
- OpenAIOptions.AzureOptions.DeploymentId = <ton deployment id>.
- Définis la clé API de ton compte Azure
- OpenAIOptions.ApiKey = <clé api azure>.
Exemple de transcription
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;
Démo
Tu trouveras ci-dessous une démo Delphi qui présente les principales fonctionnalités de l'API OpenAI RealTime
