对话流 - 上下文
上下文通过定义对话需要达到的特定状态来控制对话流,以便匹配意图。如果最终用户短语及其训练词具有可比性,则对话流通常会匹配意图。当上下文应用于 Dialogflow 时,它只会在上下文处于活动状态时考虑匹配意图。
因此,有两种上下文可以激活和停用,您还可以控制对话流程 −
输入上下文:仅当输入上下文处于活动状态且最终用户表达与意图匹配时,Dialogflow 才允许匹配意图。
输出上下文:当将输出上下文应用于意图时,Dialogflow 允许在意图匹配后保留上下文,或者在上下文尚未处于活动状态时激活上下文。
上下文示例
在我们为酒店预订演示聊天机器人创建的示例中,只需提供人数和住宿晚数即可进行预订。此外,除了当前参数外,我们还将向我们的 webhook 添加一个新参数,询问用户他们是否更喜欢可以看到山脉或大海的酒店 - totalPersons 和 totalNights。
1. 单击 Dialogflow 控制台中的"预订信息意图"按钮。
2. 在 Context 字段中输入 bookingInfoCtxt 作为输出上下文,然后按 Enter。

3. 现在您必须转到"文本响应"部分并按如下所示创建它。由于用户很可能在现实世界中以相同的意图表达他们的愿望,因此可以以不同的方式处理。

4.转到履行部分并关闭:为此,请激活 webhook 调用。webhook 调用将移动到新意图。
如上所示,我们为此意图创建了一个输出上下文,它将用于发送到另一个记录用户首选房间视图的意图。让我们看看如何:
创建一个新目的并将其命名为房间视图。
在上下文部分,输入我们在前面的步骤中创建的输入上下文的值:输入 bookingInfoCtxt 后按 Enter。
我们只是在短语训练中包含了海洋和山脉值;您可以添加更多值以提高确定用户意图的准确性。
单击保存后,您必须通过从左侧菜单中选择实体来创建一个名为 room-view-preference 的新实体。实体只是一种可以从意图中检索的类型,我使用两个值创建了它,如下所示。

5. 现在您必须返回"房间视图"意图,并且必须为训练短语设置实体,如下所示(针对两者):

6. 移至操作和参数部分并按如下方式完成。使用 #[ContextName].[ParamName] 验证参数是如何从上下文中获取的。

后续意图
后续意图允许您自动定义意图配对的上下文。后续意图是与其相关的父意图的子项。创建后续意图时,同名的输入上下文将添加到后续意图,输出上下文将自动添加到父意图。只有当匹配上一轮对话的父意图时,后续意图才会匹配。此外,您还可以在各个级别创建嵌套的后续意图。
Dialogflow 针对典型的最终用户响应(如"是"、"否"或"取消")具有各种预先建立的后续意图。为了处理独特的响应,您还可以设计自己的后续意图。
例如,以下嵌套意图可以出现在发型师代理中。
意图 | 训练短语 | 输入上下文 | 输出上下文 | 意图响应 |
---|---|---|---|---|
Appointment | Hello | appointment-followup | Would you like to make an appointment? | |
Appointment - yes | Yes | appointment-followup | appointment-yes-followup | Would you like a haircut? |
Haircut - yes | Yes | appointment-yes-followup | Your appointment is set. | |
Haircut - no | No | appointment-yes-followup | Goodbye. | |
Appointment - no | No | appointment-followup | Goodbye. |
管理上下文
上下文通常在设计阶段(创建代理时)配置。例如,使用以下训练短语:"我想将披萨添加到我的购物车中。"
在某些更复杂的情况下,您可能还想构建在运行时检索和设置某些上下文的代码。例如,您可以验证小工具的位置并将其添加到上下文中,以便以后访问它。
上下文命名
以下规则适用于命名上下文 −
规则 | 示例 |
---|---|
Use alphanumeric names. | mycontext1 |
Use - or _ instead of spaces. | my-context-1 |
Names are not case sensitive. | Abc123 and abc123 are considered equivalent. |
All context names are lowercase when using the API. | abc123 |