
Pepperの自然な会話を作ってみよう!拡張機能「会話系AI」を使ってみた【ミワ ムラタのRobo Blocks奮闘記】
こんにちは!Robo Blocksチームのムラタ ミワです。プログラミング初心者ながら、プログラミングツールRobo Blocksを担当しています。
今回は、Pepperとの自然な会話を実現すべく、Robo Blocksの拡張機能「会話系AI」を使ってみようと思います。これは、チャットボットを自ら作れる、GoogleのDialogflowを利用した機能です。
チャットボットとは自動会話プログラムです。アプリやWebのサービスで、問い合わせをしようとした際に、電話やメールでの問い合わせ窓口以外に、チャットの自動応答の問い合わせ窓口がある場合がありますが、あれらはチャットボットを使った事例の1つです。
「会話系AI」では、ユーザーからの問いかけに対して、あらかじめ回答を設定しておくことができます。Robo Blocksの既存の聞き取りブロック/言葉を聞き取ったときブロックを利用した会話よりも、応答のバリエーションをより柔軟に作ることができます。
では、早速、わたしが使ってみた様子をご紹介。簡単に1ターンの応答を作ってみました。(2023年3月16日時点の情報です)
Dialogflowで会話を作る
1. Dialogflow画面を開く
こちらのURLを開いてください
https://dialogflow.cloud.google.com/
2.Googleアカウントでサインイン
※既にGoogleアカウントでサインイン済みのChromeで開いた場合は、この画面は表示されません。3に進んでください。
この画面が表示された場合は、任意のGoogleアカウントでサインインしてください。
「Sign-in with Google」ボタンをクリック

メールアドレスまたは電話番号を入力し、「次へ」ボタンをクリック

パスワードを入力し、「次へ」ボタンをクリック

3.AGENTを作成
右下の「CREATE AGENT」ボタンをクリック

AGENT NAMEに、任意の名前を英字で入力。DEFAULT LANGUAGEに使いたい言語を設定。ここでは日本語(Japnese)を設定。

「CREATE」ボタンをクリック

4.会話を設定
画面左のメニューから「Intents」を選択し、「CREATE INTENT」ボタンをクリック

Intent nameを入力します。ここでは、朝のあいさつを作ろうと思うので、”おはよう”にしました。

まずは、ユーザーのセリフを入力します。ユーザーのセリフは、Training phrasesです。「ADD TRAINING PHRASES」をクリック。

ユーザーのセリフを入力。複数のセリフを入力できます。ユーザーから言われそうなパターンを想像して入力します

続いて、Pepperの返答を入力します。画面を下にスクロールしてResponsesを探します。「ADD RESPONSE」をクリック

Pepperの返答を入力。ユーザーのセリフ同様、複数入力できます。ランダムで複数の言い方で返答できます。

6.試してみる
想定している通りに動くかどうかを試すことができます。画面右のTry it nowに、ユーザーのセリフを入力します

Pepperからの返答が表示されます。

7.保存する
「SAVE」ボタンをクリック

Dialogflowで作った会話をRobo Blocksで使えるようにする
1.Dialogflowで認証用のJsonファイルを取得
画面左のメニューの上にある歯車マークをクリック

Project IDの青字部分をクリック。

Google Cloudの画面が開きます。画面左のメニューから「IAMと管理」、「サービスアカウント」をクリック。

※このとき、左側にメニューが表示されていない場合は、画面左上のメニューアイコンをクリックし、メニューを表示してください。

「サービスアカウントを作成」をクリック

「サービスアカウント名」に好きな名前を入力。後で変更可能
※「サービスアカウントID」は、サービスアカウント名を入力すると自動で入る
※後で変更不可なのでご注意ください。
「サービスアカウントの説明」は、任意で入力。
※後で変更可能
「作成して続行」をクリック

「ロールを選択」をクリック

「フィルタ(フィルタ テキストを入力」に、「Dialogflow」と入力
「Dialogflow APIクライアント」をクリック
※「Dialogflow API クライアント」以外の権限(ロール)を与えると、Google Cloud Platformが不正に利用されるリスクが高まります。必ずDialogflow API クライアントのみ選択されていることを確認してください

作成したサービスアカウントの右端の操作ボタンをクリックし「鍵を管理」を選択

「鍵を追加」をクリックし「新しい鍵を作成」を選択

「JSON」を選択し「作成」をクリック。JSONファイルがダウンロードされる

「閉じる」をクリック

2.RoboBlocksでJsonファイルをアップロード
画面左下の「拡張機能」をクリック

「会話_会話系AI」をクリック

「会話」タブと、会話のブロックが追加されます。追加された「会話」タブをクリック

「会話モデルを追加」をクリック

「ファイルを選択」し、任意でタイトルを入力したら、「送る」をクリック

「OK」をクリック

アップロードした会話モデルが表示されます

※Jsonファイルをアップロードした後に、Dialoflowで対象のAGENTの会話を変更しても、Jsonファイルを取得し直す必要はありません。オンラインで連携しているので、同じJsonファイルのまま、会話の変更内容も適用されます。
RoboBlocksで「会話系AI」を使ったプログラムを作る
Dialogflowで作った会話をPepperで実行できるように、Robo Blocksでプログラムを作ります。
使いたい会話モデルをクリックすると、左側の青いゾーンに選択した会話モデルが表示され、プログラムで使えるようになります。

会話系AIのブロックを使います

会話系AIのブロックで、使いたい会話モデルを選択

今回は、こんな感じでプログラムを作ってみました。

・不特定の言葉を聞き取れるように、「*」を聞き取るようにします
※「*」の使い方については、こちらの記事をご確認ください
・言葉を聞き取ったとき、他の雑音が検知されないよう、聞き取りを終了
・正しく言葉を聞き取ったか確認できるよう、聞き取った言葉を文字で表示
・聞き取った言葉に対して、Dialogflowで設定した返答をしゃべるよう、会話系AIのブロックをしゃべるブロックにセット
・再度、聞き取りを開始
最後に
今回、Dialogflowの会話の作り方としては、シンプルな受け答えの作り方をご紹介しました。Dialogflowには、文脈を記憶したり、もっといろいろな機能があるので、是非触って試してみてください!
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ソフトバンクロボティクス株式会社 ホームページ
https://www.softbankrobotics.com/jp/
Pepper for Education
https://www.softbankrobotics.com/jp/product/education/
STREAMチャレンジ
https://www.softbankrobotics.com/jp/product/academy/stream/
━━━━━━━━━━━━━━━━━━━━Pepperブログ編集部━┛