Dialogflow:在Dialogflow中使用实现库(node.js)设置多个上下文
我正在尝试根据用户的响应设置/更改多个上下文。为此,我试图通过内联编辑器(node.js)使用实现库通过agent.setContext()设置输出上下文。我想删除dialogflow中由intent设置的上下文,并在dialogflow的输出上下文中添加新上下文 使用node.js中的agent.setContext()调用设置一个输出上下文时,它可以正常工作,但当我在agent.setContext()中传递多个上下文的列表时,它会抛出错误,如下所示: 注意:我在Dialogflow Intent的输出上下文中给出了3个输出上下文(context_name_1、context_name_2、context_name_3) 代码段:Dialogflow:在Dialogflow中使用实现库(node.js)设置多个上下文,node.js,dialogflow-es,dialogflow-es-fulfillment,Node.js,Dialogflow Es,Dialogflow Es Fulfillment,我正在尝试根据用户的响应设置/更改多个上下文。为此,我试图通过内联编辑器(node.js)使用实现库通过agent.setContext()设置输出上下文。我想删除dialogflow中由intent设置的上下文,并在dialogflow的输出上下文中添加新上下文 使用node.js中的agent.setContext()调用设置一个输出上下文时,它可以正常工作,但当我在agent.setContext()中传递多个上下文的列表时,它会抛出错误,如下所示: 注意:我在Dialogflow Int
function intent_name(agent) {
... // defined text response for user
...
agent.setContext([{
'name':'context_name_1',
'lifespan': 10
},
{
'name':'context_name_2',
'lifespan': 0
},
{
'name':'context_name_3',
'lifespan': 0
},
{
'name':'context_name_4',
'lifespan': 3
}]);
....
}
我得到的错误是:
Error: context must be provided and must have a name
at WebhookClient.setContext (/srv/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:343:13)
at prepaidRecharge (/srv/index.js:45:15)
at WebhookClient.handleRequest (/srv/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:303:44)
at exports.dialogflowFirebaseFulfillment.functions.https.onRequest (/srv/index.js:92:9)
at cloudFunction (/srv/node_modules/firebase-functions/lib/providers/https.js:57:9)
at /worker/worker.js:783:7
at /worker/worker.js:766:11
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickDomainCallback (internal/process/next_tick.js:219:9)
任何帮助都将不胜感激。分别设置它们
agent.setContext({ name: 'context_name_1', lifespan: 10, parameters: { city: 'Rome' }});
agent.setContext({ name: 'context_name_2', lifespan: 11, parameters: { continent: 'eu' }});
或者使用新的方式:
agent.context.set('context_name_1', 10, {'param1' : 'abc'});
agent.context.set('context_name_2', 11, {'param2' : 2});