[日本語Alexa] ダイアログモデルでAMAZON.YesIntentとAMAZON.NoIntentが利用可能になりました

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

1 はじめに

本日、ダイアログモデルでAMAZON.YesIntentやAMAZON.NoIntentが利用可能になった事がアナウンスされました。
Use Built-in Yes and No Intents in a Skill with a Dialog Model

先日までは、複数のインテントの中で、1つでもスロットのREQにチェックを入れると、AMAZON.YesIntentやAMAZON.NoIntentを追加してビルドすることが出来ませんでした。今回、この制限が解除されたことになります。

2 これまでの対応

特定のインテントでダイアログモデルを採用したとしても、そのインテントの外では、やはり「はい」や「いいえ」の分岐が必要な場面は多々有ったと思います。

そんな時、YesIntentなどのインテントを作成し、そのサンプル発話に「はい」を入れることで、AMAZON.YesIntentと同様の効果を得ることは出来ました。

しかし、何か、推奨されない反則を犯しているようで、後ろめたい思いを抱いていたのですが、これで大手を振って使えそうです。

3 スコープによる「はい」の扱い

AMAZON.YesIntentは、ユーザーの「はい」というような発話にヒットするわけですが、いつも「はい」がAMAZON.YesIntentに誘導されるわけではないことに注意が必要です。

これは、ダイアログモデルの必須スロットでcomfirmationを有効にすると、スロットに入った値が正しいかどうかの確認がユーザーに求められるようになります。

下図の例では、注文の品{drink}スロットが入った時、「ご注文は{drink}で宜しいですか?」という確認のプロンプトが発話されます。

「ご注文は{drink}で宜しいですか?」というようなプロンプトに対する答えは、当然「はい」若しくは「いいえ」となるのですが、これは、AMAZONYesIntentに入ることはありません。

AMAZON.YesIntentは、ダイアログモデルでスロットを収集している段階では、呼び出されないということになります。

これは、当然の動きであり、UI、UX的にも自然な流れとなるでしょう。

4 最後に

今回のバージョンアップは、今まで自前で用意していたYesIntentが、組み込みインテントで使えるようになったというだけのようですが、何よりも、ダイアログモデルと「はい」「いいえ」を共有したVUI設計に自身を持てるようになったことが、個人的には大きいです。