错误:3 INVALID_ARGUMENT:姓名'您好'与模式DialogFlow不匹配

时间:2018-06-06 09:49:34

标签: javascript node.js google-api google-cloud-platform dialogflow

我正在使用Nodejs使用DialogFlow V2 Api进行项目,以下代码似乎不起作用:

    var query = req.body.query;
    const request = {
      session: sessionPath,
      queryInput: {
        text: {
          text: query,
          languageCode: 'en-US',
        },
      },
      queryParams: {
      contexts: [
          {
            "name": "Question-followup",
            "parameters": {},
            "lifespanCount": 0
          }
        ]
      }
    };

    // Send request and log result
    sessionClient
      .detectIntent(request)
      .then(responses => {
        const result = responses[0].queryResult;
        console.log(result);
        res.json(result);   
        if (result.intent) {
          console.log(`  Intent: ${result.intent.displayName}`);
        } else {
          console.log(`  No intent matchede.`);
        }
      })
      .catch(err => {
        console.error('ERROR:', err);
      });

我收到的错误是:

  

错误:{错误:3 INVALID_ARGUMENT:名称'问题跟进'才不是   匹配模式   '项目/ {专案编号= } /剂/环境/ {environmentId = } /用户/ {用户id = } /会话/ {的sessionId = } /上下文/ {CONTEXTID = },项目/ {专案编号= } /剂/会话/ {的sessionId = } /上下文/ {CONTEXTID = }'

注意:我确实有"问题跟进"将上下文转换为Intent,因此不应该存在上下文不存在的问题!

知道这会是什么?

1 个答案:

答案 0 :(得分:1)

您需要包括上下文的完整路径。 Dialogflow v2 Node.js库提供了一个帮助程序方法来为您构造上下文路径。

contexts: [
      {
        "name": contextsClient.contextPath(projectId, sessionId, "Question-followup"),
        "parameters": {},
        "lifespanCount": 1
      }
    ]