OpenAI ChatBot コンポーネント — sgcAI | eSeGeCe

OpenAI ChatBot

TsgcAIOpenAIChatBot は、音声対話のループ全体を 1 つのコンポーネントにまとめています。マイクで録音し、Whisper で音声を文字起こしし、その文字列を Chat Completions に送信します。必要に応じてベクトルストアのコンテキストで補強し、回答を音声で読み上げます。

TsgcAIOpenAIChatBot

OpenAI Whisper と Chat Completions を組み合わせた音声フロントエンドです。オーディオレコーダーとテキスト読み上げコンポーネントを、検索拡張の回答が必要であれば埋め込みコンポーネントも接続して、Start を呼び出すだけです。

コンポーネントクラス

TsgcAIOpenAIChatBot

用途

音声チャットボット(一気通貫)

プラットフォーム

Win32 および Win64

sgcAI は単体で完結しています。このコンポーネントは、土台となる sgcWebSockets Core ランタイムとともに sgcAI に同梱されているため、基本ライセンスを購入する必要はありません。

フォーム 1 枚で話すアシスタント

レコーダー、テキスト読み上げコンポーネント、チャットボットをフォームに配置し、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 の価格を見る

はじめてみませんか

無料体験版をダウンロードして、アプリケーションと会話してみましょう。