前回までにお話させて頂いた内容を、音声対話型の汎用AIアシスタントを作るという前提で改めてまとめると
■対話シナリオ
メリット: 入力に対して出力が1対1で正確。
デメリット: 入力パターンが膨大にある場合に処理できないものが発生してしまう。
■AI
メリット: 膨大な入力パターンに対応。推論で何かしらの応答を返すことができる。
デメリット: 応答がユーザーの考える「正しさ」と一致しない場合がある。
そこで、AIの推論を利用し、対話シナリオと組み合わせた処理をする仕組みを考えます。
※ 図では省略された処理があります。概略図として見てください。
対話シナリオで処理できないものを、AI(LLM)に渡し出力(回答)させるとともに、
入力と出力を対話シナリオに戻し(フィードバックし)て、学習をさせます。
すると、次回以降は、対話シナリオで処理が完結できるようになります。
さらに、この入出力の学習内容をユーザーが評価(追加・編集・削除)できるようにすれば、ユーザーカスタマイズ、パーソナライズ化ができるのではと考えています。
(もちろん、プロンプトエンジニアリング等でAI自体のパーソナライズ化をするというのも、並行すると良いと思います。)
また、この仕組みのもう1つのメリットとして、学習済みのものは対話シナリオで処理が完結しますので、都度AIに頼る必要がなく、処理負荷が軽くて済む点があります。
今、ACUAH のスマートフォンアプリを無料で公開させて頂いておりますが、
実際に使ってみて、
「話しかけた言葉に反応しないし、使えないな。」
と感じられた方も多くいらっしゃられたのではないかと思います。
※ アプリの利用マニュアル > 対話方法と学習について では、
「対話シナリオ(優先)+ ChatGPT (Function callingあり)」を
【推奨】とさせて頂いております。
使いにくい、分かりにくいという点は今後改善をしていく予定ですが、現時点では、この対話シナリオとAIを組み合わせた仕組みが、プロジェクトに適していると考えています。
次は、ACUAHの開発経緯について お話しさせていただく予定です。