💭

Amazon Lexで日本語対応したチャットボットを作ってみた

2021/06/06に公開

イベント

https://awsbasics.connpass.com/event/209428/

Amazon Lex

lexはAmazonの中にいるからAlexa(アレクサ)の中にもいるんですよね。

Image from Gyazo

選択できるリストの詳細はこちら

Botを利用する想定の年齢によっては管理者に適用されるので、
取得する情報によっては注意が必要です。

COPRA - Children's Online Privacy Protection Rule
https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule

The Rule applies to operators of commercial websites and online services (including mobile apps and IoT devices, such as smart toys) directed to children under 13 that collect, use, or disclose personal information from children, or on whose behalf such information is collected or maintained (such as when personal information is collected by an ad network to serve targeted advertising).

実際に作ってみる

Image from Gyazo

(注意) Amazon Connectとの連携を想定している場合

2021年6時点で Amazon Lexのコンソールはv1とv2[1]が存在します。
v2で作成したlexのボットは日本語対応しているのですが、Connnectと連携できないです。
そのため、v1の英語表記のコンソール利用が現時点で前提となります。

Image from Gyazo

  • Amazon Lex v2 Console

Image from Gyazo

(注意)機密データを取り扱う場合

Slot Obfuscationで、Lexのログ(デフォルトでCloudWatch logs)で難読化して出力される、ただしLambdaに渡す際はrawデータを連携しないと処理できない。

(その他) XGBoost - eXtreme Gradient Boosting

AWSも機械学習モデル作成サービスSageMakerを筆頭にXGBoostの対応はしているので[2]
それらを活用したサービス(lexも漏れなく)、トリガーとなるインプットでなかったとしてもなにかしらインプットがあればBotは反応することがあります。


ここからはデモコーナーの簡単な紹介

  • LINEとの連携

フロントエンドはLINEのLIFF(LINE Front-end Framework)に任せられるので、裏側のBot開発だけに注力できるメリットがあります。

https://lineapiusecase.com/ja/top.html

詳細は省きますが、LINE API Use Caseにて、
リンクをたどるとGithubでソースコードが公開されているので、
それを元にサンプルをお試しすることができるのでオススメです。

  • Twilio

https://docs.aws.amazon.com/ja_jp/lex/latest/dg/twilio-bot-association.html

国際SMSになり、1回送付あたり約50円かかるので、現時点で利用は推奨しない。
代わりに、Twiilio Flexというコンタクトセンターのソリューションとの統合でした。

フロントエンドからTwilsio FlexをAvailableにすると、
一つのUIからLexからマニュアルオペレーターにつなぐことが可能。
→ある程度機械的に対応をして、困ったら人が対応するようにルーティングが可能に。

  • Twilio Flex

https://www.twilio.com/ja/flex

  • Twilio Flex + Amazon Lex

https://qiita.com/mobilebiz/items/55c9a4d7009d1ba2a3ec

  • 上記のサンプルUIのソースコード

https://github.com/mobilebiz/flex-webchat-ja

さらに詳しく聞きたい人は以下のイベントまで。

  • Amazon Lex × Twilio Flexで始めるチャットボットコミュニケーション

https://cloudapi.kddi-web.com/news/event/livedemo-for-engineer6

  • Amazon Connect

電話入電からLex呼び出し可能で、SalesForceなどと連携して、
タスク割当などConnect本来の追加された機能だけではなく、
元々ある連携機能をより強化して利用することが可能に。

AmazonConnectだと最近は日本国内は法人格を持っていないと、
電話番号が取得できなくなったので、簡単にお試しするならシドニーリージョンがオススメです。
https://docs.aws.amazon.com/connect/latest/adminguide/connect-tokyo-region.html

脚注
  1. Amazon Lex の強化されたコンソールエクスペリエンスと新しい V2 API ↩︎

  2. MLの学習とデプロイを効率化する新機能のご紹介 ↩︎

Discussion