API | OpenAI

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

 

组件 TsgcWSAPI_OpenAI 实现了 RealTime OpenAI API。

 

配置

使用 method 属性 选择 ConversationTranscription,目前仅支持 Transcription 模式。

 

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

 

 

OpenAI

 

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

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

 

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

 

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

 

Azure

 

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

 

  1. 将属性 OpenAIOptions.Provider 配置为 oapvAzure
  2. 设置 ResourceName 和 DeploymentId 的值(这些值可以在您的 Azure 账户中找到)
    1. OpenAIOptions.AzureOptions.ResourceName = <您的资源名称>。
    2. OpenAIOptions.AzureOptions.DeploymentId = <您的部署 ID>。
  3. 设置您 Azure 账户的 API 密钥
    1. OpenAIOptions.ApiKey = <azure api key>。

 

转录示例

以下是使用 OpenAI API 进行实时转录的示例

 


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;