如何在 Dialogflow v1 中跨多个意图(超过 2 个)传递值
How to pass values across multiple intents (more than 2) in Dialogflow v1
我正在为此项目使用 Dialogflow API v1,并使用 Node.js 作为我的 webhook 语言。目前,我能够在上下文中保存一个值,并在最初的问题之后访问意图中的值。最初保存后是否可以访问相同的值 3-4 层深度的意图?
例如,我可以访问以这种方式存储的变量:
意图 A -> 意图 B
但是,我试图访问以这种方式存储的变量:
意图 A -> 意图 B -> 意图 C -> 意图 D
我能够访问意图 B 中的值,但是,每次我到达意图 C 或意图 D 时,上下文变量都为空。有没有一种方法可以跨多个意图存储变量,而不仅仅是 Dialogflow 中的一个?我正在跨多个意图传递相同的上下文。
如果您正在使用 AoG client library, you can persist data across multiple steps of a conversation by using app.data
。
app.data.datum1 = "Hello";
app.data.datum2 = "world";
这些数据将在用户退出对话后被清除。
是啊!您处理此问题的方式是在 Intent A 中,将输出上下文(我将其称为 Context_A)设置为您想要的值,并将其生命周期至少设置为 3。这意味着上下文在您的用户和 Dialogflow 之间至少进行 3 轮对话。
当然,您可以根据需要将其设置更长的时间。如果您将其设置得较低,您可能还希望通过 re-sending 在具有更大寿命值的输出上下文中 re-sending 来延长其生命周期。
如果您有其他信息,例如 Intent B,您可以在 Context_B 中设置它或添加到 Context_A 中设置的属性,并确保其寿命仍然足够。
我正在为此项目使用 Dialogflow API v1,并使用 Node.js 作为我的 webhook 语言。目前,我能够在上下文中保存一个值,并在最初的问题之后访问意图中的值。最初保存后是否可以访问相同的值 3-4 层深度的意图?
例如,我可以访问以这种方式存储的变量: 意图 A -> 意图 B
但是,我试图访问以这种方式存储的变量: 意图 A -> 意图 B -> 意图 C -> 意图 D
我能够访问意图 B 中的值,但是,每次我到达意图 C 或意图 D 时,上下文变量都为空。有没有一种方法可以跨多个意图存储变量,而不仅仅是 Dialogflow 中的一个?我正在跨多个意图传递相同的上下文。
如果您正在使用 AoG client library, you can persist data across multiple steps of a conversation by using app.data
。
app.data.datum1 = "Hello";
app.data.datum2 = "world";
这些数据将在用户退出对话后被清除。
是啊!您处理此问题的方式是在 Intent A 中,将输出上下文(我将其称为 Context_A)设置为您想要的值,并将其生命周期至少设置为 3。这意味着上下文在您的用户和 Dialogflow 之间至少进行 3 轮对话。
当然,您可以根据需要将其设置更长的时间。如果您将其设置得较低,您可能还希望通过 re-sending 在具有更大寿命值的输出上下文中 re-sending 来延长其生命周期。
如果您有其他信息,例如 Intent B,您可以在 Context_B 中设置它或添加到 Context_A 中设置的属性,并确保其寿命仍然足够。