当前位置: 首页 > 知识库问答 >
问题:

Dialogflow-节点SDK不在会话中保留上下文

富念
2023-03-14

我正在使用dialogflow节点SDK向dialogflow发送textRequests和eventRequests。fulfillment webhook显示,尽管sessionId相同,但上下文没有被保留。使用GoogleAssistant上的actions中的同一个dialogflow代理时,上下文将被保留。所以唯一的区别是我使用NodeSDK发送文本。

this.app = apiai(CLIENT_ACCESS_TOKEN);
this.options = {
      sessionId: 'abc',
      originalRequest: {
        data: {
          user: 'temp_user'
        },
        conversation: {
          "conversationId": "123456789"
        }
      }
    };

const request = this.app.textRequest('This is captured by INTENT_1 that triggers 
    a webhook that sets context to MY_CONTEXT', options);

const request = this.app.textRequest('This should be captured by INTENT_2 
    that has an input context of MY_CONTEXT', options);

第二个请求不会触发INTENT_2,而是默认的回退意图,除非我在dialogflow中从INTENT_2删除输入上下文,然后触发它

共有1个答案

凌俊名
2023-03-14

您可能会错误地使用resetContext吗?这就能解释了。

 类似资料:
  • 问题内容: 在OS X中使用新的终端会话时,会忘记节点版本,并且默认为空: : 我必须在每节课中不断努力: 我已经尝试了安装以及官方安装脚本。 我 的酿造版本: 对于install.sh脚本: 关于我在做什么错的任何线索吗? 问题答案: 尝试。例如: 这将在您的Shell中设置默认节点版本。然后关闭外壳窗口,打开一个新窗口,以确认更改是否仍然存在,然后:

  • 我有一个Spring MVC Web应用程序,用户可以在该应用程序上登录和注册帐户。一旦用户登录并且用户注销会话结束,我将尝试保留会话。 实现这一点的最佳方式是什么? 以下是我的登录控制器。

  • 问题内容: 我不确定这是否可能。 我的“活动”网站正在处理注册并将其保存到我们的数据库中,但是我们的主站点负责处理信用卡处理。通过在主网站上处理当前的购买,会话可用于将数据传递到付款/抄送屏幕。 不必更改我的付款代码(例如接受$ _GET参数),我的变量是否应该传递过来? 例: 我的页面在上面查找地址会话变量。 问题答案: 跨域会话ID 默认情况下,使用cookie传递会话ID。由于您的网站位于不

  • 我有以下代码: 但是由于某种原因,$_SESSION变量不保留值。输出如下: 注意:未定义的索引:lang in/home/claudio/public_html/index。第13行的php数组()数组([get]= 警告:需要(lang/. php):打开流失败:第23行的 /home/claudio/public_html/index.php中没有这样的文件或目录 致命错误:require(

  • 我有一个这样的xml: 我正在使用simplexml_load_string将其解析为SimpleXmlElement。然后我像这样得到我的节点 我需要处理简单的超文本标记语言,例如:

  • 我正在使用Spring MVC和Hibernate创建应用程序,人们可以在其中注册并将一些数据存储在他们的帐户中。我创建了注册和登录过程。现在我有一个问题,如何保留用户会话?我不想在应用程序的每个页面中保留用户ID。例如:一旦用户登录,他就会到达页面 其中id是用户的id。我希望每个登录的用户看起来像这样: 如何使用Spring在会话中保存用户数据,并在用户关闭站点然后打开站点时保存数据的最佳实践