[Lex] Amazon Connectを使用して Amazon Lex を電話で使用してみる

今回は、Amazon Connectを利用することで、電話機をクライアントにしてAmazon Lexを使用してみました。
2018.04.12

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

1 はじめに

Amazon Lex(以下、Lex) では、簡単にボットを構築することが出来ますが、そのクライアントとして利用できるのは、デフォルトでFacebookKikSlackTwillo SMS となっています。また、RestAPIで直接アクセスすることでき、SDKも提供されているため、iOSやAndroidなどでクライアントを作成することも簡単です。

今回は、Amazon Connect(以下、Connect) を利用することで、電話機をクライアントにしてLexを使用してみました。

本記事は、AWSブログの下記の内容をなぞったものです。詳しくはこちらをご参照下さい。

Amazon Connect and Amazon Lex Integration

Connectは、2018年4月現在、バージニア北部、オレゴン、シドニー、フランクフルトの4つのリージョンで利用可能であり、特にシドニーでは、日本の電話番号も利用可能です。

しかし、Lexと連携するために、両方が同一リージョンで動作している必要があり、この条件を満たせるのは、現時点でバージニア一択になります。

という事で、やってみたようすです。

2 Lexの設定

(1) Lambda

初期化やバリデーション、確認用のLambdaとして、テンプレートで用意されている lex-order-flowers を使用させて頂きました。(今回の検証でLambdaは、必須ではありません)

テンプレートは、特に変更していません。

(2) Lex

Lexは、サンプルとして提供されているOderFlowersを使用させて頂きました。

initialization and validationFulfillmentに先のラムダを指定した以外は、変更を加えていません。

3 Connectの設定

(1) Lexの統合

ConnectからLexに接続するには、 問い合わせフローにLexを統合する必要があります。 作成したインスタンスから問い合わせフローを選択して、Amazon Lexの所にLexボットを追加します。

(2) 顧客の入力を取得する

問い合わせフローを新しく作成し、顧客の入力を取得するをドラッグ&ドロップで追加します。

顧客の入力を取得するの設定で、テキスト読み上げ機能(アドホック)を選択し、最初の挨拶文を入力します。

同じ画面の下部で、Amazon Lexのタブを選択し、名前にボット名を指定し、インテントを追加します。ボットに複数のインテントがある場合は、それぞれを追加して、インテントごとに別の処理に分岐することもできます。

(3) フローの保存

問い合わせフローエディタで切断ハングアップを追加して、各処理を繋ぎます。 最後にフローに名前(今回は、LexCollaborationとしました)を指定して保存して発行します。

(4) 電話番号への関連付け

電話番号の問い合わせフローに、いま作成したフローを指定します。

4 最後に

今回は、Lexのクライアントとして電話機を使用するためにConnectを使用してみました。この仕組みを使用すれば、簡単に電話でボットに接続できます。

Lexが日本語対応するような日が来れば、俄然、張り切れそうな気がします。

5 参考リンク

Amazon Connect and Amazon Lex Integration