ChatGPT相当のモデルとシナリオ対話を組み合わせたら、チャットボットの会話が超自然になった話
はじめに
こんにちは、maKunugiです。
今大注目の「ChatGPT」ですが、OpenAIの提供する「GPT-3.5」という言語モデルを利用すると、様々なプロダクトでChatGPT並の制度を誇るAIを活用することが可能です。
私は「mebo(ミーボ)」という会話AI構築サービスを開発・運営しています。先日meboはGPT-3.5に対応し、プログラムを書くことなくGPT-3.5を搭載したチャットボットを構築できるようになりました。
(GIGAZINEでも取り上げていただきました!)
今回はmeboとGPT-3.5を組み合わせて利用することで見えてきた、有用な活用方法の1つをご紹介したいと思います。
従来のチャットボットの特徴
従来のチャットボットの特徴を2つ挙げます。
シナリオ対話
ルールベースの対話
シナリオ対話とは、会話のシナリオ(フロー)を予め設定し、それに沿った会話を行うチャットボットです。また、ルールベースの対話とは、予め決められたルールに則って応答を返すチャットボットです。いずれも予め想定した会話のみ行なえます。こういったチャットボットが一般的でした。決められた範囲内でしか応答を返せないため、どうしても機械的に感じてしまったり、柔軟性にかけてしまうことから、実際の人間同士の会話とはかけ離れたやりとりになってしまっていました。
ChatGPTの登場
ChatGPTの登場によって、AIが人間と遜色ないレベルの会話ができるようになったのは、周知の事実かと思います。AIの会話能力は、シナリオやルールベースの設定をせずとも自然に会話ができる域に達しています。この技術革新が、チャットボットのユーザー体験に大きな進化をもたらそうとしています。
ChatGPTによってすぐにチャットボットが置き換えられるのか?
ChatGPTですぐに今世の中に出回っているチャットボットをすぐに置き換えられるかというと、そうでもありません。いくつかの理由がありますが、1つの理由は、チャットボットへの期待要件は「フリートーク」ではないことです。
チャットボットには必ず行わせたい要件がありますし、ユーザーから必要な情報を聞き出さなくてはなりません。チャットボットは管理者にとってコントローラブルなものではないといけないと言うことです。
シナリオ対話とGPT-3.5を組み合わせるとどうなるのか?
ここからが本題です。ここで試したいのが、上記の課題を考慮しつつ、最新のAIモデルの会話能力をフルに生かしたチャットボットを構築したいという実験です。
仮設: 会話の流れの大枠を人間が設定し、深堀りをAIに行わせる
今回試したいことはこれです。
会話のフローを人間が設定し、チャットボットがユーザに尋ねてほしいことを定義しておきます。そして、GPT-3.5によってそれぞれの質問に対する応答に対して深堀りを行い、会話を膨らませます。そうすることにより、より自然なやり取りが実現できます。また、ユーザーの応答を深ぼることで、より重要なインサイトを取得できる可能性もあります。
meboは先述したとおり、GPT-3.5の応答を利用することができます。上記のシナリオエディタの中で、GPT−3.5による応答を仕込み、利用することができます。それでは、試してみましょう。
検証
お題
下記の設定で、チャットボットを用意してみます。
チャットボットの名前: 「AIインタビュアー」
用途: 「チャットボットが役立っていると感じているかどうかをインタビューする。」
チャットボットの必須要件:
①ユーザーの名前を収集する
②ユーザーのチャットボットの利用有無を収集する
③利用したことがある場合、どのような利用をしたかを収集する
④利用したことがない場合、なぜ利用しないかを収集する
チャットボットの作成
meboでチャットボットを作成していきます。meboでは様々なAIモデルを使ったチャットボットが構築できますが、今回はGPT-3.5を利用したチャットボットを構築します。下記の記事に詳細な作り方が書いてあるので、その記事の内容に従ってチャットボットを作成します。
シナリオの作成
次に、meboのトレーニング一覧画面の「シナリオ対話の作成」から、シナリオを作成していきます。
下記のような流れでシナリオを組み立てて行きます。
1. アイスブレイク (名前を聞いて、雑談)
2. チャットボットの今までの利用有無を確認
3. (ある場合) どんなことに利用したかを尋ねる
4. (ない場合) なぜ利用しなかったのかを尋ねる
5. 終わり
従来のチャットボットであれば、上記の1〜5のやりとりをそれぞれ行って終了です。ここからAIによる応答を絡ませていきましょう。
meboのシナリオの1つの発話は「ノード」と呼びます。ノードを開いてみましょう。ノードには「発話種別」という項目があります。
フリートークを設定していると、次の会話への遷移条件が満たされるまで、AIがそのノードの話題で深堀りを続けます。
ノードには会話例を設定できます。会話例を設定しておくと、そのノードの話題を深ぼる際にAIが考慮します。
ノードとノードをつなげる条件の線を、meboでは「エッジ」と呼んでいます。エッジはノードからノードに移る条件を指定できます。この条件に「直前のエージェントの応答が疑問文でなかった」を指定します。
これを指定しておくと、AIが深堀りを終える、つまり疑問文による質問が終わるタイミングで、シナリオが進行します。この条件を使うことで、自然なタイミングでシナリオが推移していきます。
この要領で全体のシナリオを構築していきます。
このシナリオで会話を試してみます。
ai: 「今日はお時間をいただきありがとうございます!😊 インタビューを始めるにあたり、あなたのお名前を教えていただけますか?」
user: 「田中と申します。」
ai: 「田中さん、はじめまして!今日はどのようなことをして過ごしていたのですか?」
user: 「今日は家でゴロゴロしてました。」
ai: 「リラックスできたようで良かったです。身体は休まりましたか?」
user: 「はい!とっても休まりました。」
ai: 「それなら良かったです!さて、それでは本題に移らせていただきます。田中さんは普段チャットボットを利用することはありますか?」
user: 「たまにあります。」
ai: 「そうだったのですね!どういった場面でチャットボットを活用しますか?」
user: 「服を買ったりするときにLINEのチャットボットを利用します。」
ai: 「なぜ服を買うときにチャットボットを活用するのでしょうか?」
user: 「Webサイトで探すのは手間だからです。」
ai: 「チャットボットを活用すると手間ではないのはなぜでしょうか?」
user: 「話しながら探せるからだと思います。」
ai: 「なるほど、対話形式でおすすめをしてくれるのは手間が省けますね。頻度はどの程度でしょうか?」
user: 「スマホで服を買うときはほぼ使ってますね。」
ai: 「なるほど、よくわかりました。私もスマホで服をよく買うので参考になりました。以上でインタビューは終了です。ご協力ありがとうございました。」
上記のような自然な会話が可能になりました。もはやどこからが手動で設定した文章かわかりません。GPT-3.5レベルの言語モデルを利用すると、AIがノード間の会話を盛り上げ、非常に会話をスムーズに進めてくれます。
まとめ
ここまで紹介を下通り、既存のチャットボットで広く使われている「シナリオ対話」の会話フローにAIの応答を織り交ぜると、非常に自然なやり取りになることがわかりました。これだけ自然なやり取りができれば、デプスインタビューやコーチングなど様々な用途に利用が可能なチャットボットが構築できそうです。
実は本記事で紹介した、シナリオ対話にAIの応答を織り交ぜる機能は、GPT-3.5にmeboを連携させる前から存在していました。過去の試みがこちらです。
このときと比較しても、さらに自然な会話ができるようになっています。シナリオ対話内でAIを利用する場合は、AIが会話するコンテキストが絞れており、突拍子のない発言をする可能性も少ないです。かなり実用的になってきたのではないでしょうか。
以上、シナリオ対話とAIによる応答を組み合わせることの可能性を紹介しました。会話AIの応用に興味がある方のご参考になれば幸いです。最後までお読みいただきありがとうございました。この記事への質問、FB、ご要望は下記Twitterアカウントまでお寄せください。
https://twitter.com/maKunugi
そして、本記事のようなAIに対応したチャットボットを構築したい方は、ぜひmeboをご活用ください!(無料で利用開始できます。)