実行時にインテントが一致すると、Dialogflow エージェントは、エンドユーザーが各必須パラメータにデータを提供するまでエンドユーザーから情報を収集し続けます。このプロセスをスロット充填と呼びます。
デフォルトでは、Dialogflow はエンドユーザーから必要なデータをすべて収集するまでフルフィルメント Webhook リクエストを送信しません。
スロット充填用の Webhook が有効な場合、Dialogflow はスロット充填中に会話ターンごとにフルフィルメント Webhook リクエストを送信します。
ほとんどの場合、必要なすべてのパラメータを収集するにはパラメータ プロンプトで十分ですが、スロット充填用の Webhook を使用すると、パラメータの収集中に特定のエージェント ロジックを定義できます。たとえば、Webhook では、フォローアップの質問のカスタマイズや、データベースなどのエンドユーザーのレスポンスから取得できないパラメータ スロットの設定を処理できます。
スロット充填用の Webhook を有効にする
設計時にスロット充填用の Webhook を有効にするには、次のようにします。
- Dialogflow ES コンソールに移動します。
- エージェントを選択します。
- 左側のサイドバーのメニューで [Intents] を選択します。
- インテントを選択します。
- [Fulfillment] セクションまで下にスクロールします。
- [Enable webhook call for slot filling] をオンにします。
- [SAVE] をクリックします。
実行時にスロット充填用の Webhook を処理する
Webhook サービスが受信した Webhook リクエスト メッセージには、queryResult.parameters
フィールドがあります。このフィールドには、エンドユーザーから提供された現在のパラメータ セットが含まれます。まだ収集されていない値は、空の文字列として設定されます。
パラメータを設定するための Webhook レスポンス メッセージの例については、Webhook レスポンスの例をご覧ください。