我正在阅读此链接的官方文档: 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所以我认为通过将上下文传递给参数会帮助对话流找到正确的意图!
答案 0 :(得分:3)
contexts
数组必须是Context个对象的数组,而不仅仅是带有上下文名称的字符串。
上下文对象看起来像
{
"name": "projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context Name>",
"lifespanCount": 1,
"parameters": {
"anyParameterName": "parameterValue"
}
}