kun432's blog

Alexaなどスマートスピーカーの話題中心に、Voiceflowの日本語情報を発信してます。たまにAWSやkubernetesなど。

〜スマートスピーカーやVoiceflowの記事は右メニューのカテゴリからどうぞ。〜

Voiceflowのアップデートご紹介 ② 新しいChoice Block

Voiceflowのアップデート、第2回は今回の一番の目玉である「Choice Block」です。

簡単にまとめると、

  • 今までのシンプルなChoice Blockは通常のメニューからは呼び出せず、キャンバス上でスペースキーを押すと出てくるホットメニューからしか呼び出せなくなりました。
  • 今までのInteraction BlockがChoice Blockと名前を変えて、設定の仕方が一変された形でリリースされました。
  • そして新しくダイアログモデルに対応しました。

という感じですね、ちょっと混乱するかもしれませんが、要は、対話モデルに必要な、インテント・サンプル発話・スロットの作り方が大幅に変わって機能追加された、と考えるのが良いかもしれません。

では早速やってみましょう。

新しい対話モデルの作り方

前回の「コーヒーショップ」スキルを使ってやってみましょう。こんな感じでSpeak Blockが一つおいてある状態だとします。

f:id:kun432:20200211034815p:plain

新しいChoice Blockをドラッグ&ドロップで配置してつなげます。

f:id:kun432:20200211035040p:plain

Choice Blockをクリックして設定していきます。まず最初に見ていただきたいのは、以前と同じように「Add Choice」をクリックしてChoice Blockにパスを追加していくことで分岐させることができます。

f:id:kun432:20200211035326p:plain

ただし、以前のChoice Blockではこの分岐ごとに「ユーザの発話」を直接登録していましたが、今回はこの分岐一つ一つが「インテント」になります。では早速インテントを作っていきましょう。1つ目のChoiceにお好きなインテント名を入力します。今回は飲み物の注文を受けるインテントを作ろうと思いますので、"order_intent"としました。

f:id:kun432:20200211035904p:plain

すぐ下にもorder_intentの文字が表示され、右端に"Create"というのが見えると思いますので、"Create"をクリックします。

f:id:kun432:20200211040003p:plain

すると下に"Utterances"という項目が追加されましたよね。"Utterances"は日本語だと「サンプル発話」ということになります。つまりこれでインテントが作成され、サンプル発話の登録が可能になったというわけです。では、サンプル発話を入れていきたいのですが、今回はスロットも使うことを踏まえて、こんな感じのサンプル発話にしたいと思います。

〇〇〇をお願いします
〇〇〇をください
〇〇〇ください
〇〇〇

〇〇〇に飲み物が入るイメージです。例えば「コーヒーをお願いします」みたいな感じですね。なのでこの部分をスロットにしたいと思います。

サンプル発話の入力欄に slot_drink をお願いしますと入力します。わかりやすいようにスロット名はslot_drinkとします。slot_drinkのあとには半角スペースを入れておいてください。ENTERキーはちょっとまってくださいね。

f:id:kun432:20200211040801p:plain

次に、slot_drinkの部分をカーソルで選択すると、メニューが表示されます。

f:id:kun432:20200211041020p:plain

そこで"Create"をクリックします。すると、

f:id:kun432:20200211041041p:plain

スロット作成画面が出てきます!今回のアップデートでは、このようにとてもシームレスにスロットを作成することができるようになりました。

f:id:kun432:20200211041330p:plain

ではスロットの設定を行いましょう。スロット名は先程のslot_drinkになっていますので、スロットタイプの選択です。今回は飲み物なのでカスタムスロットでいくつかサンプル的に登録しましょう。

f:id:kun432:20200211041728p:plain

  • スロットタイプにCustomを選択
  • スロット値を入力します。シノニムは右側にカンマ区切りで登録します。
  • Add Custom Valueでスロット値をどんどん増やしていけます。
  • サンプル発話内で表示される色を選ぶことができます。適当に選んでください。
  • 最後に"Create"をクリックします。

スロットが作成されると元の画面に戻ります。先程入力したサンプル発話にスロットが含まれるようになっているのがわかりますね。

f:id:kun432:20200211041957p:plain

ではENTERキーを押すか、右端のENTERをクリックして、サンプル発話として登録してください。入力欄の下に表示されればOKです。

f:id:kun432:20200211042245p:plain

では続けてサンプル発話を登録していきます。スロットは先程登録済みなので、サンプル発話内にスロットを含めたい場合は変数のように "{" を入力して呼び出せばOKです。以前のようにスロットに "[" は使わないという点に注意してください。

f:id:kun432:20200211042852p:plain

また、最初のスロット登録時と同じように、とりあえずスロット名をテキストで入力してしまってからカーソルで選択してスロットに割り当てるということも可能です。

f:id:kun432:20200211042903p:plain

こんな感じでサンプル発話が登録されればOKです。

f:id:kun432:20200211043034p:plain

ではサンプル発話取得したスロットを、Speak Blockの発話で使ってみましょう。このインテントのパスにSpeak Blockをつなげます。

f:id:kun432:20200211043325p:plain

Speak Blockの設定をやっていきましょう。以前はInteraction Blockの中でスロットと変数をマッピングしておいて、Speak Blockではその変数を呼び出す必要がありましたが、今回のアップデートで、スロットは直接変数と同じように直接呼び出すことができるようになりました!つまりマッピング不要になったというわけです。

今まで通り変数を呼び出す感じで "{" を入力すると、スロットが表示されますのでこれを選択します。

f:id:kun432:20200211043925p:plain

あとは今までと同じです。

f:id:kun432:20200211044022p:plain

ではAlexa開発者コンソールにアップロードしてテストしてみましょう。

f:id:kun432:20200211044210p:plain

意図的にシノニムで動かしてみましたが、きちんと動作していることがわかりますね。

このように今までよりも手数が少なく対話モデルを作れるようになったのが今回のChoice Blockです。

スロットの設定変更

一度設定したスロットの設定を変更したり削除する場合は、Choice Blockの下の方にあるSlot・・・ではなくて、Variablesメニューの方から行います。Variableの下にスロット一覧が表示されているので対象のスロットをクリックして、作成画面と似たような設定変更・削除ができる画面が開くのでそこで実行してください。

f:id:kun432:20200211044755p:plain

またVariablesメニューの下にある、IntentsのEditをクリックすると・・・

f:id:kun432:20200211045041p:plain

インテントをまとめて管理できる画面が表示されます。こちらでまとめてインテントを作るということもできますので、お好きな報を選んでいただければと思います。

f:id:kun432:20200211045138p:plain


いかがでしょうか?ちょっとChoice Blockという名前的に混乱するかもしれませんが、以前のInteraction Blockに慣れていればそんなに難しくないと思います。以前のシンプルなChoice Blockしか使ってないという方はぜひこの機会にトライしてみてください。

あと、これ気になりますよね?

f:id:kun432:20200211045523p:plain

これが一番の新機能である「ダイアログモデル」への対応ですが、ここについては次回まとめたいと思います