我使用对话框-实现实现基于对话框的服务后端。有一点我使用的方法agent.setFollowupEvent(targetIntent),targetIntent需要一个上下文是匹配的,让我们称之为targetContext。
我不知道它什么时候停止工作(一周?也许是个月吧?),但是它起了作用,而现在它不起作用了(而且我认为我没有改变任何可以解释它的东西)。targetIntent实现永远不会被调用,我可以在对话框中看到这是因为setFollowupEvent触发的请求与任何意图不匹配。
如果我将targetContext的需求从targetIntent中删除,它就能工作。
我认为我正确地设置了上下文:
agent.context.set(targetContext, null, null);
agent.setFollowupEvent(targetIntent);检查对话框流实现发送到对话框流的响应主体,我看到:
{
"outputContexts": [{ "name": "projects/<myprojectid>/agent/sessions/<mysessionid>/contexts/<targetContext>" }],
"followupEventInput": { "name": "<targetIntent>", "languageCode": "it" }
}背景是存在的,我认为是正确的。有什么线索吗?我唯一能想到的就是我们把代理类型从免费改为企业。
发布于 2019-05-29 09:56:42
很明显,我刚问完问题就找到了解决办法.
问题是上下文的生命周期,我没有设置它,现在它适用于:
|
V
agent.context.set(targetContext, 1, null);
agent.setFollowupEvent(targetIntent);因此,输出变成:
{
"outputContexts": [{ "name": "projects/<myprojectid>/agent/sessions/<mysessionid>/contexts/<targetContext>", "lifespanCount": 1 }],
"followupEventInput": { "name": "<targetIntent>", "languageCode": "it" }
}尽管如此,我仍然很确定它以前是有效的,也许没有将以前的默认寿命设置为1?
https://stackoverflow.com/questions/56356378
复制相似问题