Dialogflow 2段階フォールバック
チャットボットを設計したとしても、ユーザーは予期しない入力をすることがあります。この場合、チャットボットはハンドリングすることができなくなります。
理解出来なかったルートをUnhappy Pathと言います。
Unhappy Pathに対応する実装の一つを紹介します。
Fallbackインテントを作成
ユーザーの入力をどのインテントにも分類することができなかった場合にマッチするインテントがあります。これをfallbackインテントと呼びます。
Fallbackインテント実装方法
Fallbackインテントを実装します。
Fallbackインテントは異なるインプットコンテキストである必要があります。
同じインプットコンテキストのFallbackインテントを作成しようとすると、エラーが発生します。
(同じインプットコンテキストを作成できない理由は、おそらくFallbackインテントの分類がコンテキストのみであるからだと思います。エンティティを利用しないため、同じコンテキストのFallbackインテントを作成した場合、実行するインテントを特定できないのではないかと思います。)
CREATE INTENTの右隣の「…」を選択します。
Create Fallback Intentを選択する
Fallbackインテントを実装する準備ができました。
Action and Parametersがないインテントが表示されます
Fallbackインテントを作成する順序を紹介しました。
2段階Fallback
Fallbackを2段階に分けて実装する方法です。
ユーザーの入力を2段階で確認します。
2回行うことで、チャットボットが理解できる確率を上げます。
参考にしたサイトは以下になります。
Fallbackインテント設計
Fallbackインテントを以下の様に設計します。
インテント名 | input context | output context | 返答 |
---|---|---|---|
kaki_first_fallback | sample | sample, first_fallback | どのかきについてのご質問でしょうか? |
kaki_second_fallback | sample, first_fallback | sample, second_fallback | 再度ご確認します。どのかきについてのご質問でしょうか? |
kaki_end_fallback | sample, second_fallback | コンテキスト削除 | 理解できませんでした。 |
上記のように実装します。
kaki_first_fallback
kaki_second_fallback
kaki_end_fallback
注意する点はkaki_end_fallbackでコンテキストを削除することです。
kakiコンテキストが残っていると、kaki_first_fallbackに戻って無限ループを引き起こす可能性があります。
実行してみる。
さいごに
2段階Fallbackは元の会話に戻るために作成します。
Unhappy Pathは起こってしまうものですが、それにも対応できるとより良いチャットボットを作れると思います。
Discussion