OpenAI ChatBot 组件 — sgcAI | eSeGeCe

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.ModelTranscription.Language 配置 Whisper 调用。ChatCompletion.EnabledChatCompletion.Model 配置负责作答的模型。

OpenAIOptions

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

会话

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

以编程方式发起对话轮次

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

事件

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

规范与参考资料

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

继续探索

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

准备好开始了吗?

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