Voiceflowのアップデート、第2回は今回の一番の目玉である「Choice Block」です。
簡単にまとめると、
- 今までのシンプルなChoice Blockは通常のメニューからは呼び出せず、キャンバス上でスペースキーを押すと出てくるホットメニューからしか呼び出せなくなりました。
- 今までのInteraction BlockがChoice Blockと名前を変えて、設定の仕方が一変された形でリリースされました。
- そして新しくダイアログモデルに対応しました。
という感じですね、ちょっと混乱するかもしれませんが、要は、対話モデルに必要な、インテント・サンプル発話・スロットの作り方が大幅に変わって機能追加された、と考えるのが良いかもしれません。
では早速やってみましょう。
新しい対話モデルの作り方
前回の「コーヒーショップ」スキルを使ってやってみましょう。こんな感じでSpeak Blockが一つおいてある状態だとします。
新しいChoice Blockをドラッグ&ドロップで配置してつなげます。
Choice Blockをクリックして設定していきます。まず最初に見ていただきたいのは、以前と同じように「Add Choice」をクリックしてChoice Blockにパスを追加していくことで分岐させることができます。
ただし、以前のChoice Blockではこの分岐ごとに「ユーザの発話」を直接登録していましたが、今回はこの分岐一つ一つが「インテント」になります。では早速インテントを作っていきましょう。1つ目のChoiceにお好きなインテント名を入力します。今回は飲み物の注文を受けるインテントを作ろうと思いますので、"order_intent"としました。
すぐ下にもorder_intentの文字が表示され、右端に"Create"というのが見えると思いますので、"Create"をクリックします。
すると下に"Utterances"という項目が追加されましたよね。"Utterances"は日本語だと「サンプル発話」ということになります。つまりこれでインテントが作成され、サンプル発話の登録が可能になったというわけです。では、サンプル発話を入れていきたいのですが、今回はスロットも使うことを踏まえて、こんな感じのサンプル発話にしたいと思います。
〇〇〇をお願いします 〇〇〇をください 〇〇〇ください 〇〇〇
〇〇〇に飲み物が入るイメージです。例えば「コーヒーをお願いします」みたいな感じですね。なのでこの部分をスロットにしたいと思います。
サンプル発話の入力欄に slot_drink をお願いします
と入力します。わかりやすいようにスロット名はslot_drinkとします。slot_drinkのあとには半角スペースを入れておいてください。ENTERキーはちょっとまってくださいね。
次に、slot_drinkの部分をカーソルで選択すると、メニューが表示されます。
そこで"Create"をクリックします。すると、
スロット作成画面が出てきます!今回のアップデートでは、このようにとてもシームレスにスロットを作成することができるようになりました。
ではスロットの設定を行いましょう。スロット名は先程のslot_drinkになっていますので、スロットタイプの選択です。今回は飲み物なのでカスタムスロットでいくつかサンプル的に登録しましょう。
- スロットタイプにCustomを選択
- スロット値を入力します。シノニムは右側にカンマ区切りで登録します。
- Add Custom Valueでスロット値をどんどん増やしていけます。
- サンプル発話内で表示される色を選ぶことができます。適当に選んでください。
- 最後に"Create"をクリックします。
スロットが作成されると元の画面に戻ります。先程入力したサンプル発話にスロットが含まれるようになっているのがわかりますね。
ではENTERキーを押すか、右端のENTERをクリックして、サンプル発話として登録してください。入力欄の下に表示されればOKです。
では続けてサンプル発話を登録していきます。スロットは先程登録済みなので、サンプル発話内にスロットを含めたい場合は変数のように "{" を入力して呼び出せばOKです。以前のようにスロットに "[" は使わないという点に注意してください。
また、最初のスロット登録時と同じように、とりあえずスロット名をテキストで入力してしまってからカーソルで選択してスロットに割り当てるということも可能です。
こんな感じでサンプル発話が登録されればOKです。
ではサンプル発話取得したスロットを、Speak Blockの発話で使ってみましょう。このインテントのパスにSpeak Blockをつなげます。
Speak Blockの設定をやっていきましょう。以前はInteraction Blockの中でスロットと変数をマッピングしておいて、Speak Blockではその変数を呼び出す必要がありましたが、今回のアップデートで、スロットは直接変数と同じように直接呼び出すことができるようになりました!つまりマッピング不要になったというわけです。
今まで通り変数を呼び出す感じで "{" を入力すると、スロットが表示されますのでこれを選択します。
あとは今までと同じです。
ではAlexa開発者コンソールにアップロードしてテストしてみましょう。
意図的にシノニムで動かしてみましたが、きちんと動作していることがわかりますね。
このように今までよりも手数が少なく対話モデルを作れるようになったのが今回のChoice Blockです。
スロットの設定変更
一度設定したスロットの設定を変更したり削除する場合は、Choice Blockの下の方にあるSlot・・・ではなくて、Variablesメニューの方から行います。Variableの下にスロット一覧が表示されているので対象のスロットをクリックして、作成画面と似たような設定変更・削除ができる画面が開くのでそこで実行してください。
またVariablesメニューの下にある、IntentsのEditをクリックすると・・・
インテントをまとめて管理できる画面が表示されます。こちらでまとめてインテントを作るということもできますので、お好きな報を選んでいただければと思います。
いかがでしょうか?ちょっとChoice Blockという名前的に混乱するかもしれませんが、以前のInteraction Blockに慣れていればそんなに難しくないと思います。以前のシンプルなChoice Blockしか使ってないという方はぜひこの機会にトライしてみてください。
あと、これ気になりますよね?
これが一番の新機能である「ダイアログモデル」への対応ですが、ここについては次回まとめたいと思います