【re:Invent2019/EUC202-R】Amazon ConnectとAmazon Lex チャットボットのデモ手順

AWS運用自動化サービス「Cloud Automator」

はじめに

技術課の森です。
前回書いたブログの続きになります。
今回は、実際にAmazon ConnectとAmazon Lexを使ってチャットボットを作っていきます。

手順につきましては、以下を見て頂ければと。

手順

事前作業

1.AWSマネジメントコンソールを開いてください
2.リージョンは「米国東部(バージニア北部) us-east-1」を選択してください。

[1]Amazon Connectのインスタンスを作成と電話番号取得

  1. AWSマネジメントコンソールからAmazon Connectを起動します。
  2. ID管理で、アクセスURLを入れてください。
    ここは世界でユニークなものにする必要があるため、かぶらないものを入力してください。
    入力が終われば、「次のステップ」をクリックします。
  3. 管理者の作成で、今回は特に必要ないので、「これをスキップ」を選択し、「次のステップ」をクリックします。
  4. テレフォニーオプションは何もせず、「次のステップ」をクリックします。
  5. データストレージも何もせず、「次のステップ」をクリックします。
  6. 確認と作成で、「インスタンスの作成」をクリックします。

  7. 数分待つと出来上がりです。「今すぐ始める」をクリックします。



8. 新たにタブが出来上がり、「Let’s go」をクリックします。

9. Countryをアメリカ(+1)に設定するとPhone numberが表示されます。表示されたら、「Next」をクリックします。

10. 画面が変わり、そのまま「Continue」をクリックします。

11. ダッシュボード画面が表示されます

[2]Amazon Lexの設定

  1. AWSマネジメントコンソールからAmazon Lexを起動します。
  2. どちらかの画面が表示されているかと思うので、「Get Started」もしくは「Create」をクリックします。


3. Create your bot画面で以下の情報を設定します。入力が終われば、「Create」をクリックします。

項目名 備考
ボットの種別 Custom bot
Bot name Help Desk
Output voice Salli 他でもOK
Session timeout 5 min
Sentiment analysis No
IAM role AWSServiceRoleForLexBots そのまま
COPPA No


4. 次にインテントを作成します。「+ Create Intent」をクリックします。

5. 「Create intent」をクリックします。

6. インテント名に「PasswordReset」と入力し、「Add」ボタンをクリックします。

7. サンプル発話(Sample utterances)に以下の3つを入力します。入力したら右側の「+」をクリックすることで入力フィールドが増えます。入力が終わったら、「Save Intent」をクリックします。

サンプル発話
I have a problem with my password
I forget my password
I need to reset my password


※注意※ サンプル発話入力時に誤字脱字や全角スペースが入らないようにしてください。公開出来ない可能性があります。
8. 同じ要領で、追加で2つインテントを作成します。作成する内容は以下のとおりです。

インテント名 サンプル発話
NetworkIssue I cant access the internet
the internet is down
the wifi is down
I am having network problems
DeviceIssue I am having problems with my computer
my laptop wont work
I have a device problem



9. では、ボットをビルドします。「Build」をクリックします。

10. 確認画面がでますので、「Build」をクリックします。

11. ビルドが成功したら、次は「Publish」をクリックします。

12. エイリアスを作成するため、エイリアス名欄に「LexBot」と入力し、「Publish」をクリックします。(数分かかります)

13. Publishされたら、画面が表示されるので、「Close」をクリックします。

これで、Amazon Lexの設定は完了です。
次に、Amazon Connect側を設定していきます。

[3]Amazon Connect Lex設定

  1. AWSマネジメントコンソールからAmazon Connectを起動します。
  2. インスタンスエイリアスのリンクをクリックします。
  3. 左側のメニュー「問い合わせフロー」をクリックし、右側のAmazon Lexのボットのプルダウンから先ほど作成したボット名「HelpDesk」を選択して、「Lexボットの追加」をクリック。するとその下の「Lexボット」に「HelpDesk」が表示されます。


[4]Amazon Connect Queue設定

  1. 左側のメニュー「概要」をクリックし、「管理者としてログイン」をクリックします。
  2. 「Routing」→「Queues」をクリックします。
  3. 「Add new queue」をクリックします。
  4. ここから3つキューを作成します。最後に「Add new queue」をクリックしたら、3.に戻ります。入力する内容は以下のとおりです。
Name Description Hours of operation
PasswordReset The password reset queue Basic Hours
NetworkIssue The network issue Basic Hours
DeviceIssue The device issues queue Basic Hours

全てが入力し終わると以下のようになります。

[5]Amazon Connect Routing Profiles設定

  1. 「User」→「Routing Profiles」をクリックします。
  2. リストに表示されている「Basic Routing Profile」をクリックします。
  3. 以下の内容を入力します。入力が終わったら、「Save」をクリックします。
Routing profile queues Name Channels Voice Channels Chat Priority Delay(in seconds)
PasswordReset ON ON 1 0
NetworkIssue ON ON 1 0
DeviceIssue ON ON 1 0

入力した結果(Add new profileをクリックする前)は以下のとおりです。

[6]Amazon Connect Contact Flow設定

  1. Amazon Connectのダッシュボードの左側のメニューの「Routing」→「Contact flows」をクリックします。
  2. Contact flowsの右側にある「Create contact flow」をクリックします。
  3. 「Set」→「Set logging behavior」をドラッグアンドドロップでエディタに配置し、「Entry point」と繋ぎます。
  4. 「Set」→「Set voice」をドラッグアンドドロップでエディタに配置し、3.で作成したものと繋ぎます。

    「Set voice」をクリックし、「Language」を「English, US」、「Voice」を「Salli」に設定し、「Save」をクリックします。
  5. 「Interact」→「Play prompt」をドラッグアンドドロップでエディタに配置し、4.で作成したものと繋ぎます。
  6. 5.で作成した「Play prompt」をクリックし、「Text-to-speech or chat text」を選択し、「Enter text」に「Welcome to the IT Help Desk」と入力後、「Save」をクリックします。
  7. 「Interact」→「Get customer Input」をドラッグアンドドロップでエディタに配置し、5.で作成したものと繋ぎます。
  8. 7.で作成した「Get customer input」をクリックし、「Text-to-speech or chat text」を選択し、「Enter text」に「How can I help you today?」を入力後、「Amazon Lex」をクリックします。
  9. Lex botのNameに先ほど作成した「HelpDesk(US East: N.Virginia)を選択後、Aliasに「LexBot」を入力。Intentには「PasswordReset」「NetworkIssue」「DeviceIssue」を入力して、「Save」をクリックします。
  10. 「Interact」→「Play prompt」をドラッグアンドドロップでエディタに配置し、7.で作成したものの「PasswordReset」と繋ぎます。
  11. 10.で作成した「Play prompt」をクリックし、「Text-to-speech or chat text」を選択肢、「Enter text」に「Sure, I’ll connect with someone to help you with your password issue」を入力後、「Save」をクリックします。
  12. 残り、NetworkIssueとDeviceIssueとそれ以外(DefaultとError)も10.と11.の作業を行います。入力内容等については、以下を参照ください。(ただし、DefaultとErrorは同じPlay Promptを利用します)
Issue Enter text
NetworkIssue Sure, I’ll get you some help with your network issue
DeviceIssue OK, Lets get you some device issue
Default / Error uh oh, something wrong issue

作成できたフローは以下の通りとなります。

13. 「Set」→「Set working queue」をドラッグアンドドロップでエディタに配置し、11.で作成した「Play prompt」のPasswordResetと繋ぎます。

14. 13.で作成した「Set working queue」をクリックし、「By queue」→「Select a queue」に「PasswordReset」を選択後、「Save」をクリックします。

15. 残り、NetworkIssue、DeviceIssue、それ以外も13.と14.の作業を行います。設定するものについては以下を参照ください。

Issue Select a queue
NetworkIssue NetworkIssue
DeviceIssue DeviceIssue
Default / Error BasicQueue

作成できたフローは以下の通りとなります。

16. 「Terminate / Transfer」→「Transfer to queue」をドラッグアンドドロップでエディタに配置し、14.で作成したもの全ての「Success」と「Error」と繋ぎます。

17. 「Terminate / Transfer」→「Disconnect / hangup」をドラッグアンドドロップでエディタに配置し、16.で作成したものの「At capacity」と「Error」と繋ぎます。

18. 画面左上の「Enter a name」の右横のペンマークをクリックします。

19. 「Help Desk Flow」と入力して、Enterキーを押します。

20. 右側の「Save」をクリックします。

21. 「Latest: Saved」となるので、「Publish」をクリックします。

確認画面が表示されますので、「Publish」をクリックします。

22. 「Contact flow saved successfully!」が出れば完成です。

[7] Amazon Connect 電話とフローの紐付け

  1. Dashboardをクリックします。
  2. Phone Numberのリンクをクリックします。
  3. 「Contact flow / IVR」で「Help Desk Flow」を選択します。

動作確認

電話をかけて確認

  1. 画面の右上の電話マークをクリックします。

    右側に表示される「View phone numbers」をクリックします。
  2. 画面がポップアップするので、電話番号をプッシュして、「Call」をクリックします。
  3. 「Welcome to the IT Help Desk」「How can I help you today?」と声が聞こえるので、Amazon Lexで設定したインテントのサンプル発話と同じ内容を話しかけてください。
    すると設定したPromptの回答が返ってきて、キューイングされます。
    もう一度試す場合は、一度電話を切って、再度電話をかけて試してください。

チャットで確認

  1. 画面の右上の電話マークをクリックします。

    右側に表示されている「Test chat」をクリックします。
  2. 「Test Settings」をクリックし、「Contact Flow」を「Help Desk Flow」に設定し、「Apply」をクリックします。

    3.「Activate the Contact Control Panel」をクリックします。

  3. 画面中央下にある吹き出しマーク(顔つき)をクリックします。

  4. するとチャットメッセージが遅れる画面が表示され、Amazon Connectで設定した「Play prompt」→「Get customer input」にて入力した文字が表示されます。
  5. 会話ができる状態となりましたので、例として、「I forgot my password」と入力すると、PasswordResetで設定した応答が返ってきました。

これで、チャットでも電話でも同じ自動応答がされることが確認できました。

さいごに

今回のWorkshopでは簡単なチャットボットを作成しました。
Lambdaなどを使ったり、Lexのインテントでスロットを設定したりすることでよりバリエーションが広がってくるかと思います。
これを気に、Amazon Connectで人と人を繋げて(Connect)いけるように、さらにもっといいコンタクトセンターを作っていけるようにしていきたいですね。
まずは、Amazon Lexの日本語対応を待つ状態ではありますが、今後に期待しましょう!

AWS運用自動化サービス「Cloud Automator」