
またちょっと間が空いてしまいましたが、今日やっていたJAWS PANKRATION 2021でAmazon Lex V2がAmazon Connect連携にも対応した、ということを知ったので少し触ってみました。
以前書いたV1の記事は以下をご覧ください。
目次
ボットの作成
Lexの基本は以前抑えてあるので、今回は早速触っていきます。Lexのページから"Get Started"をクリックします。

上にもあるようにV2コンソールがデフォルトになっていますね。

ではボットを作成してみます。「ボットを作成」をクリックします。

作成するボットの設定を行います。各項目を順番に見ていきましょう。

作成方法は、ゼロから対話モデル(インテント、スロットなど)を作成するか、テンプレートから作成するかになります。テンプレートから作成する場合は、V1にもあったBookTripなどのテンプレートを利用することができます。今回もまずはBookTripテンプレートを使ってみましょう。

ボット名を適当に設定します。今回は"BookTripJP"にしました。

IAMロールの設定です。今回は専用に新しいロールを作成します。

アメリカの子供向けサイトの規制に関する法律の設定です。日本なのでここは「いいえ」で。

あとは一旦デフォルトで。「次へ」をクリックします。

ボットの言語を設定します。たしかv1はボット単位で言語は一つだったような記憶がありますが、v2では「別の言語を追加する」を使うと、複数の言語を同時に設定することもできるみたいですね。

とりあえず、今回は日本語だけにしましょう。

BookTripサンプルのボットができました。
インテントの設定
ボットの作成直後はインテントの設定画面が表示されています。色々見てみましょう。

左のメニューにはインテントが表示されていて、それぞれのインテントの設定を切り替えることができます。

というかインテント設定画面、深いところにありますね・・・まあプロジェクト作成直後だからインテントとかスロットの設定から始めるだろうとは思うんだけど、違うメニューに飛んだら最初はなかなか戻ってこれない。

インテント設定画面の一番上には会話フローイメージが表示されます。ハッピーパスかな。

ハッピーパス以外の失敗時のメッセージなども表示されますし、それぞれクリックして直接設定に飛べます。これはとてもわかり易いですね。

サンプル発話の登録です。下の入力欄で発話のバリーションを登録します。スロットも普通に呼び出せます。

なれてくると、プレーンテキストのほうがやりやすいかもですね。コピペも使えますしね。

スロットの設定
スロットの設定は、サンプル発話の下にあります。スロット名、タイプ、スロット収集時の発話例などが表示されていてとてもわかりやすいですね。

右上からスロットを作成できます。

新規作成の場合はこんな感じです。

使用できるスロットタイプはこんな感じです。

v1のときよく見てなかったですが、Alexaよりも使えるものは少ないですね。ただ、AMAZON.AlphaNumeric(アルファベットと数字の組み合わせ、例えば型番とかに使える)とかAMAZON.EmailAddress(メールアドレス)とか、Alexaになくて非常に有用なものもあります。これはAlexaにもほしい!
一旦スロットを作成すると詳細オプションというのが出てきます。

ここで、
- スロットタイプを作成
- スロット収集時のボットからの発話バリエーションの追加
- スロット収集時のサンプル発話の追加
など、より細かい設定ができますね。SSMLやカードを使った応答を返したい場合などはここで設定ができます。

その他、スロット収集が完了したときの確認や確認に対してユーザが拒否した場合の応答、Lambdaでバックエンドに渡したい場合の設定などが以下で設定できます。ここは詳細を割愛します。

対話モデルのビルドとテスト
一通り設定が終わったら、一番下にある「構築」をクリックして対話モデルをビルドします。少しだけ時間がかかります。

ビルドが成功したら、テストが実行できるようになるのでテストしてみましょう。「テスト」をクリックします。

右下にテスト用のダイアログが開きました。ここで対話内容をテキストや音声で入力して、想定した対話フローになるかを確認すればOKです。

音声の場合は、Alexaのテストとは操作がちょっと違いますので少し触れておきます。
最初にマイクのアイコンをクリックします。

「開いています」と表示されるとマイクがオープンします。ここで発話を行い、発話後にチェックマークをクリックするとマイクがクローズして、発話した内容で入力が行われます。入力を途中でやめる場合はバツマークをクリックすればOKです。

ここはv1だとなぜか変な動きになったりしていたところで、v2で試してみた限りは特に問題なく動作していますね。
また「検査」をクリックすると、対話のやり取りの中でのスロット収集状況を確認できます。

さらに歯車アイコンをクリックすると、
- バックエンドのLambdaを選択
- CloudWatch Logsへのテキストログの保存
- S3へのオーディオログの保存
なんかもインスタントに設定ができるみたいです。

まとめ
サンプルで少しいじってみただけですが、v1に比べると随分とわかりやすくなってて良いですね。もう少し色々触ってみたいと思います。