一般公開されたAmazonのAIサービスLexでFacebook MessengerのBotをつくってみた
こんにちは、みかみです。
2017/04/20(JST)に、AWS Lex が一般公開されました。
以前から興味はあったものの触ったことはなかったAWS AI三兄弟、この機会に AWS Lex で Amazon Alexa のテクノロジーを体験してみました。
はじめに
やりたいこと
- AWS Lexをさわってみたい
- Lex で Facebook Messenger の Bot をつくってみたい
AWS 料金
利用量課金なので、お試しレベルならそんなにかかりません。
例えば、1,000 回の音声リクエストにかかる料金は 4.00 USD で、1000 回のテキストリクエストにかかる料金は 0.75 USD です。
やってみた
Lex で Bot を作成する
AWS管理コンソールから、Lex の Bot を作成します。
サンプル Bot をつくるだけならたった3クリックで完了です!
実用に際しては Lambda 経由でバックエンドの作りこみが必要になると思われますが、今回は Facebook Messenger と連携させたいだけなので、Lambda関数作成まわりは省略してます。
残念ながら東京リージョンにはまだローンチされていないので、バージニア北部リージョンのリンクをクリック。
Get Started ボタンからサンプル Bot を作成します。
今回は、ScheduleAppointment を選択しました。
子供向けサイト規制、COPPA(Children's Online Privacy Protection Act)の確認で No をチェックして、Create ボタンをクリック。
build が終われば、Bot 作成完了です。
まずはサンプルメッセージをそのまま入力してみます。
「予約したいのですが。」
→「何の予約ですか?」
と、ちゃんと返事が返ってきました!
次の入力内容 = Lex が理解してくれる予約の種類は、Slot types AppointmentTypeValue の Value で定義されています。
「ホワイトニング」を入力すると、「いつにしますか?」とお返事が。
「来週の月曜日」のような表現でも、ちゃんと認識してくれます。
Lexが認識できない入力には、Error Handling ページ Clarification prompts に指定した文章を返してくれます。
定型文なので試しに日本語で返事を設定してみたのですが、やはりエラーで設定できませんでした。。
Bot を Publish する
作った Bot を Publish して、エイリアスを作成します。
管理コンソール右上の Publish ボタンをクリック。
好きなエイリアスを入力して Publish ボタンをクリック。
少し待つと・・・Publish 完了です。
Facebook アプリを作成する
Facebook の開発者ページから、アプリを作成して Messenger を追加します。
アプリを作成したら、ダッシュボードから「製品を追加」をクリック。
「プロダクト設定」の一覧から「Messenger」の「スタート」ボタンをクリックします。
トークンを取得するため、新しい Facebook ページを作成します。
プルダウンから作成したページを選択すると、アクセストークンが表示されます。
Lex Bot のチャンネルを作成する
チャンネルを作成して Lex と Facebook Messenger を連携します。
Channels タブで Facebook を選択し、必要事項を入力します。
- Verify token は、後ほど Facebook の Webhook 設定で使用します。
- Page access token には先ほど Facebook アプリから取得したアクセストークンを入力。
- App secret key には Facebook アプリダッシュボードに表示されているシークレットキーを入力します。
Activate ボタンクリックでチャンネル作成完了です。
画面下の方の Callback URLs に表示される Endpoint URL を取得します。
Facebook Messenger の Webhook を設定する
Facebook アプリダッシュボードの Messenger の設定から、Webhooks の設定をします。
ポップアップウィンドウが表示されるので、Lex のチャンネル作成で取得した Callback URL と、Verify token を入力。
「messages」「messaging_postbacks」「messaging_optins」をチェックして「確認して保存」ボタンをクリック。
Wobhooks 欄のプルダウンからページを選択して「フォローする」ボタンをクリック
Facebook Messenger Bot を動かしてみる
Facebook の ページから Messenger でメッセージを入力してみます。
Lex がちゃんとお返事してくれました!
おわりに(所感)
- Lex で 簡単に Bot がつくれる!
- Lex にはサンプル Bot が準備されてるのでお試ししやすい
- Twitter とか LINE とか、対応アプリが増えたらもっと嬉しい
- 日本語対応が待ち遠しいv