向对话添加带槽的节点
在本教程中,您将槽添加到对话节点,以从单个节点中的用户收集多条信息。 您创建的节点将收集进行餐厅预订所需的信息。
学习目标
在完成教程时,您可以学习如何:
- 定义对话所需的意向和实体
- 向对话节点添加槽
- 测试带槽的节点
持续时间
本教程大约需要 30 分钟完成。
先决条件
开始之前,请先完成入门教程。 使用您创建的对话框,并将节点添加到作为入门练习的一部分构建的简单对话框。
添加意向和示例
添加意向,这是用户输入中表达的目的或目标。 您添加一个 #reservation 意向,用于识别指示用户要预订餐厅的用户输入。
-
在“意向”页面上,单击 创建意向。
-
添加以下意向名称,然后单击创建意向:
reservation
这将添加 #reservation 意向。 向意向名称添加了数字符号 (
#
) 前缀,以将其标记为意向。 这种命名约定有助于您和其他人将该意向识别为意向。 它还没有与之关联的用户话语示例。 -
在添加用户示例字段中,输入以下话语,然后单击添加示例:
i'd like to make a reservation
-
添加这些其他示例以帮助助手识别
#reservation
意向。I want to reserve a table for dinner Can 3 of us get a table for lunch? do you have openings for next Wednesday at 7? Is there availability for 4 on Tuesday night? i'd like to come in for brunch tomorrow can i reserve a table?
-
单击 关闭 箭头
以完成添加
#reservation
意向及其示例发声。
添加实体
实体定义包含一组实体 值,这些值表示在意向上下文中经常使用的词汇表。 通过定义实体,可以帮助助手识别用户输入中与相关意向有关系的引用。 在此步骤中,您将启用可识别对时间,日期和数字的引用的系统实体。
-
启用可以识别用户输入中的日期、时间和数字引用的系统实体。 单击 系统实体,然后打开以下实体:
@sys-time
@sys-date
@sys-number
您已启用 @sys-date,@sys-date 和 @sys-number 系统实体。 现在,可以在对话中使用这些实体。
添加带槽的对话节点
对话节点表示助手与用户之间的对话线程的开始。 它包含为使助手能够处理该节点而必须满足的条件。 它至少还包含一个响应。 例如,节点条件可能会在用户输入中查找 #hello
意向,并使用 Hi. How can I help you?
进行响应。此示例是对话节点的最简单形式,其中包含单个条件和单个响应。 可以通过向单个节点添加条件响应,添加延长与用户的交流的子节点等等,从而定义复杂的对话。 (如果要了解有关复杂对话的更多信息,可以完成
构建复杂对话教程。)
在此步骤中添加的节点是包含槽的节点。 槽提供了一种结构化格式,通过该格式,可以在单个节点内向用户询问并保存来自用户的多条信息。 当您打算执行特定的任务,并且在执行该任务之前需要用户的关键信息时,槽是最有用的。 有关更多信息,请参阅使用槽收集信息。
您添加的节点将收集在餐厅进行预订所需的信息。
-
单击 对话框 以打开对话框树。
-
单击 欢迎 节点上的 Node 选项图标
,然后选择 在下面添加节点。
-
在 如果助手识别 字段中开始输入
#reservation
,然后从列表中选择该字段。 如果用户输入与#reservation
意向匹配,那么将使用此节点。 -
单击定制,将槽开关设置为开启,然后单击应用。
具有内置节点的新对话框 -
在 然后检查 部分中,添加以下槽:
槽详细信息 检查对象 另存为 如果不存在,请询问 @sys-date
$date
您要订哪天? @sys-time
$time
您希望预留的时间是什么时间? @sys-number
$guests
几位就餐? -
在 助手响应中,输入文本响应
OK. I am making you a reservation for $guests on $date at $time
。槽和响应 -
单击 关闭 图标
以关闭节点编辑视图。
测试对话
-
单击试用。
-
输入
i want to make a reservation
。助手识别 #reservation 意向,并通过第一个槽
What day would you like to come in?
的提示进行响应。 -
输入
Friday
。助手识别到该值后,会将其用于填充第一个槽的 $date 上下文变量。 然后显示下一个槽
What time do you want the reservation to be made for?
的提示。 -
输入
5pm
。助手识别到该值后,会将其用于填充第二个槽的 $time 上下文变量。 然后,它将显示下一个槽
How many people will be dining?
的提示。 -
输入
6
。助手识别到该值后,会将其用于填充第三个槽的 $guests 上下文变量。 现在,所有插槽都已填充,这将显示节点响应
OK. I am making you a reservation for 6 on 2021-04-09 at 17:00:00.
Node 插槽 运行正常! 您已创建具有插槽的节点。
摘要
您创建了一个具有插槽的节点,这些插槽可以捕获在餐厅中预留桌子所需的信息。
后续步骤
改善与节点交互的用户的体验。 完成后续教程改进带槽的节点。 它涵盖简单的改进,例如如何重新格式化系统返回的日期 (2021-04-09
) 和时间 (17:00:00
) 值。 此外,还涵盖更复杂的任务,例如,如果用户未提供对话期望的槽值的类型,该怎么做。