ちょっと話題の記事

[Amazon Lex] Amazon Lexが日本語対応となったので、Amazon Connectから使用して居酒屋の電話予約をボット化してみました

2021.04.03

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

1 はじめに

CX事業本部の平内(SIN)です。

いよいよ、Amazon Lex(以下、Lex)が日本語で利用できるようになりました。
Amazon Lex が日本語に対応。東京リージョンでお使いいただけます

昨日、テンプレートで試してみたのですが・・・

今日は、簡単なボットを作成して、Amazon Connect(以下、Connect)から利用してみました。

2 想定

Connectと連携するサンプルとして、居酒屋クラメソ(注:実際には、存在しません)の電話に自動応答を組み込む事をイメージしてみました。

下記は、お店に、予約の電話が入った場面です。店員が時間や人数を聞き取っています。しかし、仕事中に手を止めて電話に応答する作業は、少しコストが掛かるものです、そこで、できれば、予約は自動化したというニーズが有るとします。

しかし、お店に掛かってくる電話は、予約とは限りません。

そこで、お店の応答を、一旦、Connectの自動応答で受け、予約の場合は、Lexのボットで処理し、それ以外の場合に、お店の電話を鳴らす事にしました。(※今回、Lambdaでの予約処理は省略しています)

3 Lex

(1) Intent

Lexは、Custom botから作成してます。

そして、インテントを1つ(ReservationIntent)だけ作成しました。

(2) Sample utterances

このインテントへ導入する発話は、Sample utterancesで指定します。

(3) Slots

スロットは、以下の3つを定義しました。

  • ReservationDate(予約の日付)
  • ReservationTime(予約の時間)
  • NumberOfReservation(人数)

Slot typeは、全部、組み込みのものです。

(4) Confirmation prompt

スロットが全て埋まった段階で、確認するプロンプトを有効にしています。

承知しました。{ReservationDate} に {ReservationTime} から {NumberOfReservation} 人で予約お取りします。よろしいですか?

(5) Error handling

Error handlingは、インテントに導入する適切な発話が無かった時の応答です。

ここでは、チェックを外して、リトライしない設定としています。これにより、Sample utterancesで想定された発話にヒットしなかった場合、「只今、お繋ぎします」と発話して、Bot自体は、完了させています。

(6) Fulfillment

Fulfillmentで、AWS Lambda functionを選択することで、Lexで取得したスロット値を使用して処理が進められます。

予約処理の本体は、ここで指定したLambdaで行う想定ですが、今回、ここ、省略させて頂いています。

(7) 動作確認

コンソールから、動作確認している様子です。

4 Connect

(1) Lex追加

ConnectからLexを利用するためには、インスタンスに追加が必要です。

(2) 問い合わせフロー

作成した問い合わせフローです。

顧客の入力を取得するというブロックで、予約かどうかの分岐を行い、予約以外の場合は、お店の電話に転送するようになっています。

顧客の入力を取得するブロックで設定した内容です。

Amazon Laxタブで作成したLexと、インテントを指定しています。

ここでは、エイリアスを$LATESTとしていますが、実際に運用する場合は、適切なアリアスを作成することが推奨されています。
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/amazon-lex.html

5 動作確認

動作確認しているようすです。

着信した電話は、自動応答でアナウンスを返し、顧客の話す内容によって、予約とその他に分岐しています。 また、予約の場合は、ボットが応答を完了するため、お店の電話への転送はありません。

6 最後に

今回は、日本語で利用可能なったLexをConnectから利用してみました。

作成したボットは、「予約」というインテントしか実装されていませんが、このインテントを増やすことで、自動で処理できる範囲が増やせるかも知れません。

お試しということで、しっかりしたエラーハンドリングなど、全くできていませんが、Lexには、バリデーションにLambdaを利用する事ができますので、きめ細かく処理を進める事で、それなりに、心地よいUXを作成することも可能だと思います。