OpenAI ChatBot

TsgcAIOpenAIChatBot 把整条语音回路接进了一个组件。它录制麦克风、用 Whisper 转写音频、把转写文本发送给 Chat Completions,可选地用向量存储中的上下文加以增强,然后把答案朗读出来。

TsgcAIOpenAIChatBot

构建在 OpenAI Whisper 和 Chat Completions 之上的语音前端。关联一个音频录制器、一个文本转语音组件,如果需要检索增强的回答,再关联一个嵌入向量组件,然后调用 Start。

组件类

TsgcAIOpenAIChatBot

用途

端到端语音聊天机器人

平台

Win32 和 Win64

sgcAI 是自包含的。该组件随 sgcAI 一同交付,并附带它所基于的 sgcWebSockets Core 运行时。

一个窗体上的会说话的助手

在窗体上放一个录制器、一个文本转语音组件和这个聊天机器人,设置 API 密钥,然后调用 Start。

uses
  sgcAI, sgcAI_OpenAI_Audio_ChatBot,
  sgcAI_AudioRecorder_MCI, sgcAI_TextToSpeech_System;

var
  oBot: TsgcAIOpenAIChatBot;
begin
  oBot := TsgcAIOpenAIChatBot.Create(nil);
  oBot.OpenAIOptions.ApiKey := 'sk-...';
  oBot.AudioRecorder := sgcAudioRecorderMCI1;
  oBot.TextToSpeech  := sgcTextToSpeechSystem1;

  oBot.ChatBotOptions.Transcription.Model    := 'whisper-1';
  oBot.ChatBotOptions.Transcription.Language := 'en';
  oBot.ChatBotOptions.ChatCompletion.Model   := 'gpt-4o';

  oBot.OnTranscription  := BotTranscription;
  oBot.OnChatCompletion := BotChatCompletion;

  oBot.Start;   // Stop ends the session

  // A turn can also be pushed from code, no microphone involved.
  oBot.ChatAsUser('Summarise the last order in one line.');
end;

procedure TForm1.BotTranscription(Sender: TObject;
  var Text: string; var Accept: Boolean);
begin
  // Inspect or rewrite what Whisper heard, or drop the turn.
  Accept := Trim(Text) <> '';
end;
// includes: sgcAI.hpp, sgcAI_OpenAI_Audio_ChatBot.hpp

TsgcAIOpenAIChatBot *oBot = new TsgcAIOpenAIChatBot(NULL);
oBot->OpenAIOptions->ApiKey = "sk-...";
oBot->AudioRecorder = sgcAudioRecorderMCI1;
oBot->TextToSpeech  = sgcTextToSpeechSystem1;

oBot->ChatBotOptions->ChatCompletion->Model = "gpt-4o";
oBot->OnChatCompletion = BotChatCompletion;

oBot->Start();

// Push a turn without speaking.
oBot->ChatAsUser("Summarise the last order in one line.");

关键属性与方法

您最常使用的成员。

组件关联

AudioRecorder 提供麦克风输入,TextToSpeech 朗读答案,Embeddings 则可选地在调用模型之前从向量存储中提供检索到的上下文。

ChatBotOptions

Transcription.Model 和 Transcription.Language 配置 Whisper 调用。ChatCompletion.Enabled 和 ChatCompletion.Model 配置负责作答的模型。

OpenAIOptions

该组件发起的每次调用所用的 API 密钥、端点、HTTP、重试和日志设置,也包括 Azure OpenAI 变体。

会话

Start 开始采集,Stop 结束采集。当录制器处于自动模式时,组件会在答案播放完毕后重新开始采集,从而让对话免提持续进行。

以编程方式发起对话轮次

ChatAsUser 注入一条用户消息,ChatAsSystem 注入一条系统消息并可选择朗读它,GetEmbedding 则为任意提示词查找上下文。

事件

OnTranscription 让您在 Whisper 听到的内容抵达模型之前对其进行编辑或否决。OnChatCompletion 报告答案的角色和内容。OnAudioStart 和 OnAudioStop 跟踪采集过程。

规范与参考资料

该组件所用服务和协议的权威资料来源。

继续探索

在线帮助sgcAI 组件的完整 API 参考和使用指南。
所有 sgcAI 组件浏览全部 15 个组件的完整功能矩阵。
下载免费试用版用您自己的 OpenAI 密钥构建一个会说话的助手。
价格Single、Team 和 Site 授权,均含完整源代码。
超值之选:All-AccesseSeGeCe 全部产品,含高级支持,每年 €1,059 起。
查看 All-Access 价格

准备好开始了吗?

下载免费试用版,与您的应用程序对话。