如何在Dialogflow v1中跨多个意图(超过2个)传递值

时间:2018-04-06 17:59:35

标签: node.js actions-on-google dialogflow

我正在为此项目使用Dialogflow API v1并使用Node.js作为我的webhook语言。目前,我能够在上下文中保存值并访问初始问题后的intent中的值。在最初保存之后,是否可以访问3-4级深度的相同值?

举个例子,我可以访问以这种方式存储的变量: 意图A - >意图B

但是,我试图访问以这种方式存储的变量: 意图A - >意图B - >意图C - >意图D

我能够访问意图B中的值,但是每次到达Intent C或Intent D时,上下文变量都为null。有没有办法在多个意图中存储变量,而不是只在Dialogflow中存储一个?我在多个意图中传递相同的上下文。

2 个答案:

答案 0 :(得分:2)

如果您使用AoG client library,则可以使用app.data在对话的多个步骤中保留数据。

app.data.datum1 = "Hello";
app.data.datum2 = "world";

用户退出对话后,这些数据将被清除。

答案 1 :(得分:2)

烨!处理它的方法是在Intent A中,用你想要的值设置输出上下文(我称之为Context_A),并将它的生命周期设置为至少3.这意味着上下文将存在于用户与Dialogflow之间至少进行3轮对话。

如果您愿意,可以将其设置为更长时间。如果将其设置得更低,您可能还希望通过在具有更长生命周期值的输出上下文中重新发送它来延长其在稍后的Intent中的生命周期。

如果您在Intent B中有其他信息,您可以在Context_B中设置它或添加到Context_A中设置的属性,并确保其寿命仍然足够。