IBM Cloud Docs
向对话添加带槽的节点

向对话添加带槽的节点

在本教程中,您将槽添加到对话节点,以从单个节点中的用户收集多条信息。 您创建的节点将收集进行餐厅预订所需的信息。

学习目标

在完成教程时,您可以学习如何:

  • 定义对话所需的意向和实体
  • 向对话节点添加槽
  • 测试带槽的节点

持续时间

本教程大约需要 30 分钟完成。

先决条件

开始之前,请先完成入门教程。 使用您创建的对话框,并将节点添加到作为入门练习的一部分构建的简单对话框。

添加意向和示例

添加意向,这是用户输入中表达的目的或目标。 您添加一个 #reservation 意向,用于识别指示用户要预订餐厅的用户输入。

  1. 在“意向”页面上,单击 创建意向

  2. 添加以下意向名称,然后单击创建意向

    reservation
    

    这将添加 #reservation 意向。 向意向名称添加了数字符号 (#) 前缀,以将其标记为意向。 这种命名约定有助于您和其他人将该意向识别为意向。 它还没有与之关联的用户话语示例。

  3. 添加用户示例字段中,输入以下话语,然后单击添加示例

    i'd like to make a reservation
    
  4. 添加这些其他示例以帮助助手识别 #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?
    
  5. 单击 关闭 箭头 关闭箭头 以完成添加 #reservation 意向及其示例发声。

添加实体

实体定义包含一组实体 ,这些值表示在意向上下文中经常使用的词汇表。 通过定义实体,可以帮助助手识别用户输入中与相关意向有关系的引用。 在此步骤中,您将启用可识别对时间,日期和数字的引用的系统实体。

  1. 启用可以识别用户输入中的日期、时间和数字引用的系统实体。 单击 系统实体,然后打开以下实体:

    • @sys-time
    • @sys-date
    • @sys-number

您已启用 @sys-date,@sys-date 和 @sys-number 系统实体。 现在,可以在对话中使用这些实体。

添加带槽的对话节点

对话节点表示助手与用户之间的对话线程的开始。 它包含为使助手能够处理该节点而必须满足的条件。 它至少还包含一个响应。 例如,节点条件可能会在用户输入中查找 #hello 意向,并使用 Hi. How can I help you? 进行响应。此示例是对话节点的最简单形式,其中包含单个条件和单个响应。 可以通过向单个节点添加条件响应,添加延长与用户的交流的子节点等等,从而定义复杂的对话。 (如果要了解有关复杂对话的更多信息,可以完成 构建复杂对话教程。)

在此步骤中添加的节点是包含槽的节点。 槽提供了一种结构化格式,通过该格式,可以在单个节点内向用户询问并保存来自用户的多条信息。 当您打算执行特定的任务,并且在执行该任务之前需要用户的关键信息时,槽是最有用的。 有关更多信息,请参阅使用槽收集信息

您添加的节点将收集在餐厅进行预订所需的信息。

  1. 单击 对话框 以打开对话框树。

  2. 单击 欢迎 节点上的 Node 选项图标 Node 选项,然后选择 在下面添加节点

  3. 如果助手识别 字段中开始输入 #reservation,然后从列表中选择该字段。 如果用户输入与 #reservation 意向匹配,那么将使用此节点。

  4. 单击定制,将开关设置为开启,然后单击应用

    显示在其中打开槽的定制对话框。
    具有内置节点的新对话框

  5. 然后检查 部分中,添加以下槽:

    槽详细信息
    检查对象 另存为 如果不存在,请询问
    @sys-date $date 您要订哪天?
    @sys-time $time 您希望预留的时间是什么时间?
    @sys-number $guests 几位就餐?
  6. 助手响应中,输入文本响应 OK. I am making you a reservation for $guests on $date at $time

    显示按指定填写时工具中每个槽和响应的外观。
    槽和响应

  7. 单击 关闭 图标 关闭 以关闭节点编辑视图。

测试对话

  1. 单击试用

  2. 输入i want to make a reservation

    助手识别 #reservation 意向,并通过第一个槽 What day would you like to come in? 的提示进行响应。

  3. 输入Friday

    助手识别到该值后,会将其用于填充第一个槽的 $date 上下文变量。 然后显示下一个槽 What time do you want the reservation to be made for? 的提示。

  4. 输入5pm

    助手识别到该值后,会将其用于填充第二个槽的 $time 上下文变量。 然后,它将显示下一个槽 How many people will be dining? 的提示。

  5. 输入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) 值。 此外,还涵盖更复杂的任务,例如,如果用户未提供对话期望的槽值的类型,该怎么做。