OpenAI RealTime API

· 组件

sgcWebSockets 2025.5.0 起,OpenAI RealTime API 已受支持(目前仅支持转录模式)。

OpenAI Realtime API 支持低延迟、多模态交互,包括语音对话体验和实时转录。

组件 TsgcWSAPI_OpenAI 实现了 RealTime OpenAI API。

配置

使用 method 属性选择 Conversation(对话)或 Transcription(转录),目前仅支持转录模式。

InputAudio 属性允许自定义以下数据:

OpenAI

OpenAI API 使用 API 密钥进行身份验证。访问您的 API 密钥页面以获取请求中使用的 API 密钥。

请记住,您的 API 密钥是机密!不要与他人共享或在任何客户端代码(浏览器、应用程序)中暴露。生产请求必须通过您自己的后端服务器路由,API 密钥应从环境变量或密钥管理服务中安全加载。

API 密钥必须在组件的 OpenAIOptions.ApiKey 属性中配置。对于属于多个组织的用户,如果您的账户属于某个组织,可以在 OpenAIOptions.Organization 属性中设置您的组织。

配置 API 密钥后,以下是可与 OpenAI API 交互的可用功能列表。

Azure

客户端支持 Microsoft Azure OpenAI Services,因此您也可以使用 Azure 账户与 Azure OpenAI API 进行交互。要将客户端配置为使用 Azure,请按照以下步骤操作:

  1. 将属性 OpenAIOptions.Provider 设置为 oapvAzure
  2. 设置 ResourceNameDeploymentId 的值(这些值可在您的 Azure 账户中找到)
    1. OpenAIOptions.AzureOptions.ResourceName = <your resource name>.
    2. OpenAIOptions.AzureOptions.DeploymentId = <your deployment id>.
  3. 设置您的 Azure 账户 API 密钥
    1. OpenAIOptions.ApiKey = <azure api key>.

转录示例

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; 

示例

以下是展示 OpenAI RealTime API 主要功能的 Delphi 示例。