ハンズオン#1-3:インテントの作成

インテントの作成

ここでは、お店で順番待ち予約をするための Waitlist インテントと、お持ち帰り予約をするための Takeout インテントの二つを作成します。

Wailtlist インテントの作成

左メニューから [インテント] を選択し、インテントの一覧を表示します。

デフォルトの “FallbackIntent” と ”NewIntent” がすでに作成されており、ボットの現在のバージョンがドラフトバージョンであることが分かります。

FallbackIntentはボットがユーザーの発話(Utterance)の意味を解釈できない場合に選択されるデフォルトのインテントです。

自動作成されている “NewIntent” をクリックし詳細画面を開きます。

新規にインテントを作成する場合は、画面右上の [インテントの追加] ドロップダウンボタンをクリックし、[空のインテントを追加] を選択して下さい。

[インテント名] と [インテント詳細] を入力します。

  • インテント名: Waitlist
  • 説明: 順番待ち

サンプル発話 セクションまでスクロールし、サンプル発話(Utterance)を追加していきます。 Amazon Lex ボットは、顧客から最初に得られるサンプル発話(Utterance)をトリガーにして、インテント(意図)を特定します。ここでは、以下の3つの発話を登録してみましょう。

  • 順番待ち
  • 順番
  • 順番待ち予約

続いてスロットを1つ追加します。下にスクロールしスロットセクションで [スロットを追加] ボタンを押して下さい。

下記を入力します。

  • このインテントには必須: チェック
  • 名前: PhoneNumber
  • スロットタイプ: AMAZON.PhoneNumber
  • プロンプト: 携帯電話番号を教えてください。

[追加] ボタンを押すと、スロット [PhoneNumber] が追加されます。

同様にして、スロット [Number][TableType] を追加します。

[Number]

  • このインテントには必須: チェック
  • 名前: Number
  • スロットタイプ: AMAZON.Number
  • プロンプト: 何名様でご予約でしょうか?

[TableType]

  • このインテントには必須: チェック
  • 名前: TableType
  • スロットタイプ: TableType
  • プロンプト: 座席の種類を選んでください。

最後にインテントの確認メッセージを作成します。これにより、ボットのインテント処理が完了した場合にユーザーがインテントを履行するか、あるいはキャンセルするかを確認することができます。 [確認プロンプトと応答拒否] セクションまでスクロールし、”インテントを確認するプロンプトを表示”の吹き出しを展開し、 [確認プロンプト] フィールドに次のメッセージを入力します。

{PhoneNumber}様、{Number}めいで、座席タイプは{TableType}で順番待ちリストに登録します。よろしいですか?

さらに、[応答を拒否] フィールドには以下のメッセージを入力します。

順番待ち予約を取り消します。

メッセージ内の {PhoneNumber} {Number} {TableType} は自動的に展開される変数であり、それぞれ選択されたスロットで解決された値を表しています

これで Wiatlist インテントの作成は完了です。右下の [インテントを保存] ボタンを押して “インテント保存済み” になることを確認します。

Takeout インテントの作成

同様にして Takeout インテントを作成します。

左側のメニューで [インテントリストに戻る] をクリックして、インテントの一覧を表示します。次に、右上の [インテントを追加] を押して [空のインテントを追加] します。インテント名は Takeout としてください。

サンプル発話には以下の3つを登録します。

  • 持ち帰り予約
  • 持ち帰り
  • テイクアウト

以下の4つのスロットを追加します。

[Date]

  • このインテントには必須: チェック
  • 名前: Date
  • スロットタイプ: AMAZON.Date
  • プロンプト: 何月何日ですか

[Time]

  • このインテントには必須: チェック
  • 名前: Time
  • スロットタイプ: AMAZON.Time
  • プロンプト: 何時頃ですか

[Menu]

  • このインテントには必須: チェック
  • 名前: Menu
  • スロットタイプ: Menu
  • プロンプト: メニューを選んでください

[PhoneNumber]

  • このインテントには必須: チェック
  • 名前: PhoneNumber
  • スロットタイプ: AMAZON.PhoneNumber
  • プロンプト: 携帯電話番号を教えてください

[確認プロンプト] は以下のメッセージを入力します。

{PhoneNumber}様、{Date}の{Time}に{Menu}をご用意しておきます。よろしいですか?

[応答を拒否] は以下のメッセージを入力します。

ご予約を取り消します。

右下の [インテントを保存] ボタンを押して “インテント保存済み” になることを確認します。

ボットの構築(ビルド)とテスト

これで MakeReservation ボットは完成です。右下にある [構築] ボタンをクリックしてボットをビルドします。構築(ビルド)後にボットをテストできるようになります。このビルドプロセスは 30 秒以上かかりますので、終わるまで待って下さい。

ビルド後、エラーがないことを確認して、 [テスト] ボタンを押すとテスト用のウィンドウが表示されます。ここで新しいボットをテストできます。さまざまなフレーズを試してみてください。サンプル発話セクションで定義したフレーズを入力するとインテント(意図)が認識され、ボットとの対話が開始されます。

テキスト入力だけでなく音声を使ってテストすることもできます。ダイアログの下部にあるマイクアイコンをクリックしてフレーズを話し、「ティック」アイコンをクリックしてオーディオストリームをLexに送信することで行うことができます。

[検査] ボタンを押すと、LexのMLエンジンにより選択されたインテントやスロットの値を確認することができます。

これでレストラン予約ボットの作成は完了です。最後に、このボットを 他のアプリケーションから使用できるように エイリアスを作成しましょう。