我尝试使用npm包actions-on-google
中的ApiAi类来管理我的Google智能助理代理的上下文(在DialogFlow中)。
问题在于: 如何使用npm包重置生命周期/删除上下文?
我可以轻松设置新上下文的生命周期,并且有效。
然而:
app.setContext('myContext',10)
然后,2意图稍后,当8
中的生命周期再次调用app.setContext('myContext',10)
时,在下一个意图中,生命仍然是{{1} }。如果我可以回答(1)并删除上下文,我只需将其删除并重新设置。答案 0 :(得分:1)
我认为没有办法删除或覆盖上下文的持续时间。相反,如果您知道特定上下文在某个点上不能处于活动状态,请设置一个持续1或2圈的上下文,并在每个回合后执行此操作。这也可以让您更好地控制对话,因此您不会拥有持续10轮的上下文,而您突然不再需要这些内容。
答案 1 :(得分:1)
要删除上下文的生命周期,只需将其设置为ZERO或0,如app.setContext('your_context',0)
请务必在致电app.ask
或app.tell
或
如果不使用客户端,您可以编写一个简单设置的函数
this.contexts_[your_context] = {}
第一个选择肯定对我有用。我没有尝试过第二种选择。尝试查看您是否未在Dialogflow中进行设置。此外,您可以删除webhook中的上下文设置,并在Dialogflow中将生命周期设置为0。这将在您的上下文中添加一行(如已弃用的方法)。
答案 2 :(得分:0)
我知道这个问题已经很老了,至少已经足够老了,所以我们现在有了v2 API和库检修,所以无论如何我都会用今天的解决方案来回答:)。
1-要删除上下文,可以使用Node.js library reference docs上指定的conv.contexts.delete('context1');
。
2-如果conv.contexts.set('context1', 1);
没有更改上下文的生命周期,那么您可以轻松地删除它并通过这两个调用重新创建它。
答案 3 :(得分:0)
我的经验是您不能覆盖上下文数据。 不过,您可以创建一个新的上下文:
stringi::stri_subset_regex(emails, '@.*\\.edu$')