首页 > 解决方案 > 我如何在 Intents 中使用所需的参数并检查 allRequiredParamsPresent = true webhooks

问题描述

我正在对话流中制作代理。我想让 Intent 中的参数成为必需的,就像我在 dialogflow ui 控制台中使用相应的 PROMPTS 一样,但是将它写在 nodejs 环境中的 webhook throw firebase 中,以便包含基本卡、轮播。

const app = dialogflow({debug: true});

app.intent(INTENT_NAME, (conv, {parameters1, parameters2, 
parameters3, parameters4, parameters5, parameters6, parameters7}) => {

});

这是回应:

{
  "responseId": "xxxxxxxxxxxxx",
  "queryResult": {
    "queryText": "text",
    "action": "action_name",
    "parameters": {
      "parameters1": [
        "responsetext1"
      ],
      "parameters2": [
        "responsetext2"
      ],
      "parameters3": [
        "responsetext3",
        "responsetext3"
      ],
      "parameters4": [
        "responsetext4"
      ],
      "parameters5": [
        "responsetext5"
      ],
      "parameters6": [
        "responsetext6"
      ],
      "parameters7": [
        "responsetext7"
      ]
    },
    "allRequiredParamsPresent": true,
    "fulfillmentText": "response text",
    "fulfillmentMessages": [
      {
        "text": {
          "text": [
            "response text"
          ]
        }
      }
    ],

标签: node.jsfirebasedialogflow-esactions-on-google

解决方案


您可以在 webhook 中列出所有必需的参数,然后检查所有这些参数是否具有值。
如果它们为空,则重置上下文并发送响应以询问剩余参数的值。


推荐阅读