Dialogflow es Dialogflow无法在响应中使用参数

Dialogflow es Dialogflow无法在响应中使用参数,dialogflow-es,Dialogflow Es,我试图使用Dialogflow,并按照他们的指导创建一个带有响应的意图 但是,如果在响应中使用参数,它将从默认响应返回“notavailable”。有人知道为什么会这样吗 从图中,它将无参数地响应正确的句子。使用参数时,响应不可用 诊断信息 无参数 { "id": "aa316e0a-7f41-46cb-a03c-03c13d80ae6b", "timestamp": "2018-05-16T18:31:11.858Z", "lang": "en", "result": {

我试图使用Dialogflow,并按照他们的指导创建一个带有响应的意图

但是,如果在响应中使用参数,它将从默认响应返回“notavailable”。有人知道为什么会这样吗

从图中,它将无参数地响应正确的句子。使用参数时,响应不可用

诊断信息

无参数

{
  "id": "aa316e0a-7f41-46cb-a03c-03c13d80ae6b",
  "timestamp": "2018-05-16T18:31:11.858Z",
  "lang": "en",
  "result": {
    "source": "agent",
    "resolvedQuery": "turn on asdkasjd",
    "action": "",
    "actionIncomplete": false,
    "parameters": {
      "cameraName": ""
    },
    "contexts": [],
    "metadata": {
      "intentId": "41b046bc-65ea-425b-8a33-9e37c44dddf4",
      "webhookUsed": "false",
      "webhookForSlotFillingUsed": "false",
      "intentName": "opencamera"
    },
    "fulfillment": {
      "speech": "Sorry I don't know",
      "messages": [
        {
          "type": 0,
          "speech": "OK. I will try to turn on"
        }
      ]
    },
    "score": 0.9300000071525574
  },
  "status": {
    "code": 200,
    "errorType": "success"
  },
  "sessionId": "e488d71a-a21e-4cf0-bfcb-13b4a36fd811"
}

首先,我认为您没有在“操作和参数”部分的“培训短语”部分添加任何短语。请添加这些内容以训练您的代理从短语中检测“cameraName”参数。其次,如果看到json,result->parameters->cameraName为空。如果参数为空,则无法使用需要参数“cameraName”的响应进行响应。尝试在带有不使用参数的参数的responses下添加第三个响应,并查看结果,它将返回第三个响应,当它检测到参数时,它将开始显示带有参数的响应

问题在于,您正在使用参数试图匹配“camera”或“camera two”,但这两个参数都不是“给定名称”,即匹配给某人的名称(与其姓氏相反),而不是给设备的名称

在这些情况下,它使用一些粗略的匹配,并确定“打开”匹配足够多的示例短语以匹配意图,但没有匹配其名称部分的值。由于该参数不是必需的,因此意图匹配时没有参数值

根据您的具体需求,您可以采取一些措施来解决此问题:

  • 您可能希望根据需要标记参数。(这不会解决名称问题,但会确保名称匹配或提示用户输入值。)

  • 您可以使用
    @sys:any
    实体类型。这应该匹配用户为参数包含的任何内容

  • 如果您有一些已定义的名称,则可以


您是否可以更新该问题,以包括您为每个问题使用的培训短语,以及诊断信息,以便在该问题应该使用参数但不使用参数的情况下使用?