Dialogflow Phone Gatewayを使って電話と繋いでみた

Dialogflowは、自然言語で会話できるボット作成サービスです。様々なサービスと簡単に統合ができます。今回Dialogflow Phone Gatewayがベータ版として追加されました。これを使い電話をインターフェースとしてお花注文ボットを作成します。
2018.08.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Dialogflowは、自然言語で会話できるボット作成サービスです。管理画面上で様々なサービスと簡単に統合ができます。今回Dialogflow Phone Gatewayがベータ版として追加されました。 これを使い電話をインターフェースとしてお花注文ボットを作成します。

2018年8月23日現在、対応言語は英語になります。

お花注文ボットを作成する

まず、今回用意するインテントは、3つです。

インテント名 説明 フレーズ
Default Welcome Intent 最初に起動するインテント。挨拶とOrder Intentへの誘導を行う Hello. Welcome cm flower shop. How can I help you ?
Default Fallback Intent インテントのどれにも該当しなかった時に起動する。 デフォルトで定義されているもの全て
Order Intent 注文に使用するインテント。全てのパラメータを取得し注文を完了する Thanks. We have received your order. Your order is $number $flower_type . We will prepare until $date $time .

注文インテントは下記の情報を全部取得します。花の種類以外は、Dialogflowが用意しているパラメータを使用します。

パラメータ エンティティ 説明
flower_type @flower_type 花の種類(rose, dandelion, lily)
number @sys.number 花の本数
date @sys.date 受取日
time @sys.time 受け取り時間

Dialogflowを設定する

Google アカウントを使用して、ログインしたらまずAgentを作成しましょう。Dialogflow Phone Gatewayは、英語のみ対応しているのでAgentも英語で作成する必要があります。

作成が完了すると、Intentsページに遷移します。Default Welcome IntentDefault Fallback Intentが作成されているはずです。

まずは、電話をかけた時のメッセージを作成しましょう。Default Welcome Intentをクリックしてください。このインテントが呼ばれるためのフレーズやレスポンスなどを定義できます。

電話をかけたレスポンスを設定します。

設定を完了したら保存してください。

次にオーダーを受け付けるインテントを作成します。名前(OrderIntent)を入れてSAVEをクリックすると作成されます。

Action and parametersで取得するパラメータを定義しますが、その前に花の種類をEntitiesに定義する必要があります。 Entitiesページに移動し、CREATE ENTITYをクリックしてエンティティを作成します。

エンティティが作成できたら、Intentページに戻り、Action and parametersを定義します。 また、全て注文するには必要な項目なのでもし会話の中で取得できなかった時のために聞き返すフレーズ(Prompts)も登録しておく必要があります。

最後にユーザーが発話しそうな内容をTraining phasesに定義します。Alexaと同様Training phasesが多いほど、認識確度は向上します。

最後に注文完了時のレスポンスを定義します。$パラメータ名で取得した内容を話させることができます。 また、今回のフローでは、注文完了 = 会話終了のため、Set this intent as end of conversationをオンにします。

これでDialogflowの設定は完了です。右横のテストでフロー通り動くか確認してみましょう。 テストで確認ができたら実際にPhone Gatewayと統合していきます。 Integrationsページに移動しましょう。統合可能な様々なサービスが表示されるはずです。

Dialogflow Phone Gateway を設定する

IntegrationsページでDialogflow Phone Gateway を選択します。 Language・Country Code を選択します。(現在は、English・United Statesのみ対応しています。)確認できたらNEXTをクリックして次に進みましょう。

使用できる番号が表示されます。好きな番号を選択してCREATEをクリックします。

作業は以上です。統合が完了します!

テスト

これで電話で確認できるようになりました。しかし国際電話での確認になってしまいますので、Dialogflowのコンソール上でテストしてみましょう。画像のTry it nowにテキストを入力することでレスポンスを確認できます。

PLAYをクリックすると、レスポンスを音声にして再生できます。 またDIAGNOSTIC INFOをクリックすると、リクエスト・レスポンスのJSONデータを確認することも可能です。

まとめ

いかがでしたでしょうか。AWSでは、Amazon ConnectとAmazon Lexを使って同様な機能を作成できます。どちらも日本語への対応が楽しみです。