首页 文章

如何将上下文参数发送到webhook / fulfilments DialogFlow v2

提问于
浏览
3

我正在阅读此链接的官方文档:https://cloud.google.com/dialogflow-enterprise/docs/reference/rest/v2beta1/QueryParameters但我无法使用以下代码将上下文参数传递给我的请求:

var query = req.body.query;
    const request = {
      session: sessionPath,
      queryInput: {
        text: {
          text: query,
          languageCode: 'en-US',
        },
      },
      queryParameters: {
        contexts: ['Question-followup']
      },
    };

    // 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);
      });

在文档中它说我应该有类似的东西:

"contexts": [
    {
      object(Context)
    }
  ],

我想要这个的原因是有时候DialogFlow无法检测到Intent所以我认为通过将上下文传递给参数会帮助dialogflow找到正确的意图!

1 回答

  • 3

    contexts 数组需要是Context对象的数组,而不仅仅是具有上下文名称的字符串 .

    上下文对象看起来像

    {
      "name": "projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context Name>",
      "lifespanCount": 1,
      "parameters": {
        "anyParameterName": "parameterValue"
      }
    }
    

相关问题