我正在使用Angular RC5和Dialogflow开发一个Chatbot .

我对代理的仪表板有意图,它会提示用户输入他的名字,然后提示其他一些数据 . 意图与'PROMPT_DATA'事件相关联 . 使用eventRequest从客户端(前端)触发意图,以便在初始化聊天时向用户显示消息 .

对话框流的响应是提示“你的名字是什么?”,在此之后用户输入一些名称并且代码发送带有任何输入的textRequest,对话框流的响应再次提示,就像它与名称不匹配 .

如何发送用户输入的内容并将其与提示相对应?我的猜测是,Dialogflow将输入视为另一个文本,并尝试将其与意图匹配,而不是提示本身 .

这是我的代码,用于发送文本并向用户显示响应 .

this.client.textRequest(msg)
           .then(res => {
             console.log(res);
              const speech = res.result.fulfillment.speech;
              const botMessage = new Message(speech, 'bot');
              this.update(botMessage);
           });

它只是简单地从响应中接收语音数据并将其显示给用户 . 这是enterid有效数据后的响应 .

{
  "id": "067c2dc2-aa24-475d-8312-e62baf514a74",
  "timestamp": "2018-03-01T06:30:12.656Z",
  "lang": "es",
  "result": {
    "source": "agent",
    "resolvedQuery": "12312321321",
    "action": "input.prompt",
    "actionIncomplete": true,
    "parameters": {
      "usernit": "",
      "username": ""
    },
    "contexts": [
      {
        "name": "1_-_prompt_datos_dialog_params_usernit",
        "parameters": {
          "usernit": "",
          "username.original": "",
          "usernit.original": "",
          "username": ""
        },
        "lifespan": 1
      },
      {
        "name": "1_-_prompt_datos_dialog_context",
        "parameters": {
          "usernit": "",
          "username.original": "",
          "usernit.original": "",
          "username": ""
        },
        "lifespan": 2
      },
      {
        "name": "saludo",
        "parameters": {
          "usernit": "",
          "username.original": "",
          "usernit.original": "",
          "username": ""
        },
        "lifespan": 1
      },
      {
        "name": "ec9aad4b-721a-4ec7-827c-272ef72cf852_id_dialog_context",
        "parameters": {
          "usernit": "",
          "username.original": "",
          "usernit.original": "",
          "username": ""
        },
        "lifespan": 2
      }
    ],
    "metadata": {
      "intentId": "ec9aad4b-721a-4ec7-827c-272ef72cf852",
      "webhookUsed": "false",
      "webhookForSlotFillingUsed": "false",
      "intentName": "1 - Prompt_Datos"
    },
    "fulfillment": {
      "speech": "¿Cuál es tu número de identificación o NIT?",
      "messages": [
        {
          "type": 0,
          "speech": "¿Cuál es tu número de identificación o NIT?"
        }
      ]
    },
    "score": 1
  },
  "status": {
    "code": 200,
    "errorType": "success",
    "webhookTimedOut": false
  },
  "sessionId": "91e7178b-711b-6ffd-cc5f-779dc23690ff"
}

一个好的回应的例子是

bot -> prompt
user -> 21042014910
bot -> response (saying it is okay)