IBM Cloud Docs
构建复杂对话

构建复杂对话

在本教程中,您将为助手创建一个对话,以帮助用户查询名为 Truck Stop Gourmand的虚构餐厅。

学习目标

在完成教程时,您将学习如何执行以下操作:

  • 规划对话。
  • 定义定制意向。
  • 添加可处理意向的对话节点。
  • 添加实体以使您的响应更具体。
  • 添加模式实体,并在对话框中使用该实体在用户输入中查找模式。
  • 设置和引用上下文变量。

期限

完成本教程大约需要 2 到 3 个小时。

先决条件

开始之前,请完成 对话教程入门

使用您创建的对话框,并将节点添加到作为入门练习的一部分构建的简单对话框。

规划对话

您正在为一家名为 Truck Stop Gourmand 的餐厅构建助手,该餐厅具有一个位置和一个蓬勃发展的蛋糕烘焙业务。 您希望助手能够简单地回答有关餐厅和菜单的用户问题,还能取消客户蛋糕订单。 因此,您需要创建一些意向来处理与以下主题相关的查询:

  • 餐厅信息
  • 菜单详细信息
  • 订单取消

首先创建表示这些主题的意向,然后构建用于响应用户有关这些主题的问题的对话。

回答餐厅相关问题

添加一个意向来识别客户提出的有关餐厅详细信息的问题。 意向是用户输入中表达的目的或目标。 随附于#General_About_You常规*内容目录的 * 意向提供了类似功能,但其用户示例主要针对助手相关查询,而不是使用助手来帮助客户的情况。 所以,你添加自己的意图。

添加 #about_restaurant 意向

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

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

    about_restaurant
    

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

  3. 添加用户示例 字段中,输入以下话语:

    Tell me about the restaurant
    i want to know about you
    who are the restaurant owners and what is their philosophy?
    What's your story?
    Where do you source your produce from?
    Who is your head chef and what is the chef's background?
    How many locations do you have?
    do you cater or host functions on site?
    Do you deliver?
    Are you open for breakfast?
    
  4. 单击 关闭 箭头 关闭箭头 以完成添加 #reservation 意向及其示例发声。

您添加了一个意向,并提供了实际用户可能输入的用于触发此意向的话语示例。

添加由 #about_restaurant 意向触发的对话节点

添加一个对话节点,用于识别用户输入映射到您在上一步中创建的意向的情况,这意味着该节点的条件会检查助手是否在用户输入中识别到 #about_restaurant 意向。

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

  2. 在对话树中查找 #General_Greetings 节点。

    您需要在此初始问候语节点之后添加一个节点,用于检查餐厅相关问题,以反映您所期望的正常交谈流。 例如,Hello. then Tell me about yourself.

  3. 单击 问候客户 节点上的 Node 选项图标 Node 选项,然后选择 在下面添加节点

  4. 如果助手识别 字段中开始输入 #about_restaurant,然后从列表中选择该字段。

    如果用户输入与 #about_restaurant 意向匹配,那么将使用此节点。

  5. 助手响应中,输入文本响应:

    Truck Stop Gourmand is the brainchild of Gloria and Fred Smith. What started out as a food truck in 2004 has expanded into a thriving restaurant. We now have one brick-and-mortar restaurant in downtown Portland. The bigger kitchen brought with it new chefs, but each one is faithful to the philosophy that made the Smith food truck so popular to begin with: deliver fresh, local produce in inventive and delicious ways. Join us for lunch or dinner seven days a week. Or order a cake from our bakery.
    

还向响应添加图像。

  1. 单击添加响应类型

  2. 从下拉列表中选择图像。 在图像源字段中,添加 https://www.ibmlearningcenter.com/wp-content/uploads/2018/02/IBM-Learning-Center-Food4.jpg

  3. 将图像响应类型上移,以便在显示文本之前将其显示在响应中。 单击 上移 箭头 上移箭头 可对两种响应类型进行重新排序。

    显示在文本响应类型之前列出的图像响应类型。
    文本响应和响应之前的图像

  4. 单击“关闭”图标 关闭 以关闭节点编辑视图。

测试 #about_restaurant 对话节点

通过检查用户话语是否与您添加的示例相似但与您添加的示例不同来测试意向,以训练助手识别具有 #about_restaurant 意向的输入。

  1. 单击试用

  2. 类型I want to learn more about your restaurant.

    助手会指示已识别到 #about_restaurant 意向,并会返回包含您为对话节点指定的图像和文本的响应。

    显示识别 #about_restaurant 意向的“试用”窗格,并显示图像和文本响应。
    试用

您添加了定制意向以及知道如何处理该意向的对话节点。

#about_restaurant 意向旨在识别有关餐厅的各种常规问题。 您添加了一个节点来捕获此类问题。 响应时间有点长,但它是单个语句,可回答有关以下所有主题的问题:

  • 餐馆老板
  • 餐厅历史记录
  • 哲学
  • 站点数量
  • 运行天数
  • 所提供的膳食
  • 餐厅点饼

对于一般问题,一个单一的,一般的答案是适合的。

回答菜单相关问题

潜在餐厅客户主要会询问菜单相关问题。 Truck Stop Gourmand 餐厅每天都会更换菜单。 除了标准菜单外,还有素食菜单和蛋糕店菜单。 当用户询问菜单时,对话需要找出要共享的菜单,然后在餐厅的网站上提供菜单的链接。 如果信息定期更改,那么您永远不希望将信息硬编码到对话节点中。

添加 #menu 意向

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

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

    menu
    
  3. 添加用户示例 字段中,输入以下话语:

    I want to see a menu
    What do you have for food?
    Are there any specials today?
    where can i find out about your cuisine?
    What dishes do you have?
    What are the choices for appetizers?
    do you serve desserts?
    What is the price range of your meals?
    How much does a typical dish cost?
    tell me the entree choices
    Do you offer a prix fixe option?
    
  4. 单击 关闭 箭头 关闭箭头 图标以完成添加 #menu 意向及其示例话语。

添加由 #menu 意向触发的对话节点

添加一个对话节点,用于识别用户输入映射到您在上一步中创建的意向的情况,这意味着该节点的条件会检查助手是否在用户输入中识别到 #menu 意向。

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

  2. 在对话树中查找 #about_restaurant 节点。

    您需要在此节点之后添加一个节点,用于检查菜单相关问题。

  3. 单击 #about_restaurant 节点上的 Node 选项图标 Node 选项,然后选择 在下面添加节点

  4. 如果助手识别 字段中开始输入 #menu,然后从列表中选择该字段。

    如果用户输入与 #menu 意向匹配,那么将使用此节点。

  5. 助手响应中,输入文本响应:

    In keeping with our commitment to giving you only fresh local ingredients, our menu changes daily to accommodate the produce we pick up in the morning. You can find today's menu on our website.
    
  6. 添加选项响应类型来提供可供用户选择的选项列表。 在本例中,选项列表包含可供选择的不同版本的菜单。 单击添加响应类型

  7. 从下拉列表中选择选项

  8. 标题 字段中,添加 Which menu do you want to see?

  9. 单击添加选项

  10. 列表标签字段中,添加Standard。 您添加为标签的文本将作为可选选项显示在对用户的响应中。

  11. 字段中,添加standard menu。 当用户从列表中选择此选项并单击该选项时,您指定为值的文本将作为新用户输入发送给助手。

  12. 重复上述两个步骤,以添加其余菜单类型的标签和值信息:

    菜单选项
    列表标签
    素食 素食菜单
    蛋糕店 蛋糕店菜单

    显示使用菜单类型填写的选项列表。
    选项响应

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

添加 @menu 实体

要识别客户指示他们要查看的不同类型的菜单,请添加 @menu 实体。 实体代表了对象类或与用户目的相关的数据类型。 您可以通过检查用户输入中是否存在特定实体来添加更多响应,让每个响应来处理不同的用户请求。 在这种情况下,您可以添加可区分不同菜单类型的 @menu 实体。

  1. 单击 我的实体 以打开“实体”页面。

  2. 单击创建实体

  3. 在实体名称字段中输入 menu

  4. 单击创建实体

  5. standard添加到值名称字段,将standard menu添加到同义词字段,然后按 Enter 键。

  6. 添加以下其他同义词:

    • bill of fare
    • cuisine
    • carte du jour

    显示要添加到 @menu 实体的标准值。
    @menu 实体

  7. 单击添加值,以添加 @menu:standard 值。

  8. vegetarian添加到值名称字段,将vegetarian menu添加到同义词字段,然后按 Enter 键。

  9. 添加以下其他同义词:

    • vegan diet
    • vegan
    • plants-only
  10. 单击添加值,以添加 @menu:vegetarian 值。

  11. cake添加到值名称字段,将cake menu添加到同义词字段,然后按 Enter 键。

  12. 添加以下其他同义词:

    • cake shop menu
    • dessert menu
    • bakery offerings
  13. 单击添加值,以添加 @menu:cake 值。

  14. 单击 关闭 箭头 关闭箭头 以完成添加 @menu 实体。

添加由 @menu 实体类型触发的子节点

在此步骤中,将子节点添加到用于检查 #menu 意向的对话节点。 根据用户从选项列表中选择的 @menu 实体类型,每个子节点显示不同的响应。

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

  2. 在对话树中查找 #menu 节点。

    添加子节点以处理添加到 #menu 节点的每个菜单类型选项。

  3. 单击 #menu 节点上的 Node 选项图标 Node 选项,然后选择 添加子节点

  4. 如果助手识别 字段中开始输入 @menu:standard,然后从列表中选择该字段。

    如果用户输入与 @menu:standard 实体匹配,那么将使用此节点。

  5. 助手响应中,输入文本响应:

    To see our menu, go to the <a href="https://www.example.com/menu.html" target="blank">menu</a> page on our website.
    
  6. 单击 关闭 图标 关闭 以关闭节点编辑视图。

  7. 单击 @menu:standard 节点上的 Node 选项图标 Node 选项,然后选择 在下面添加节点

  8. 开始在此节点的 If assistant 识别 字段中输入 @menu:vegetarian,然后从列表中选择该字段。

  9. 助手响应中,输入文本响应:

    To see our vegetarian menu, go to the <a href="https://www.example.com/vegetarian-menu.html" target="blank">vegetarian menu</a> page on our website.
    
  10. 单击 关闭 图标 关闭 以关闭节点编辑视图。

  11. 单击 @menu:素食 节点上的 Node 选项图标 Node 选项,然后选择 在下面添加节点

  12. 开始在此节点的 If assistant 识别 字段中输入 @menu:cake,然后从列表中选择该字段。

  13. 助手响应中,输入文本响应:

    To see our cake shop menu, go to the <a href="https://www.example.com/menu.html" target="blank">cake shop menu</a> page on our website.
    
  14. 单击 关闭 图标 关闭 以关闭节点编辑视图。

显示 #menu 节点
@menu 节点之后的子节点

您添加了用于识别用户对菜单详细信息的请求的节点。 您的响应会通知用户三种类型的菜单可用,并要求他们选择其中一种菜单。 当用户选择某个菜单类型时,系统会显示相应的响应,其中包含所请求菜单详细信息 Web 页面的超文本链接。

测试菜单选项对话节点

测试您添加用于识别菜单问题的对话节点。

  1. 单击试用

  2. 类型What type of food do you serve?

    助手会指示已识别到 #menu 意向,并显示菜单选项列表供用户选择。

    显示用户输入触发 #menu 意向和选项响应时的“试用”窗格。
    试用

  3. 单击Cake shop选项。

    助手可识别 #menu 意向和 @menu:cake 实体引用,并显示响应 To see our cake shop menu, go to the cake shop page on our website.

    这将打开一个新的 Web 浏览器页面并显示 example.com Web 站点。

  4. 关闭 example.com Web 页面。

您添加了一个意向和实体,可以识别用户对菜单详细信息的请求,并可以将用户定向到相应的菜单。

#menu 意向代表了潜在餐厅客户的一种非常常见的主要需求。 由于其重要性和普遍性,您在对话中添加了一个较为复杂的部分来很好地解决此问题。

管理蛋糕订单

客户可以亲自,通过电话或通过使用 Web 站点上的订单表单来下订单。 下订单后,用户可以通过虚拟助手取消订单。 首先,您需要定义一个可识别订单号的实体。 然后,添加一个意向,用于识别用户想要取消蛋糕订单的情况。

添加订单号模式实体

您希望助手识别订单号,因此创建模式实体以识别餐厅用于标识其订单的唯一格式。 餐厅面包店使用的订单号语法是两个大写字母,后跟 5 个数字。 例如,YR34663。 请添加一个可识别此字符模式的实体。

  1. 单击 我的实体 以打开“实体”页面。

  2. 单击创建实体

  3. 在实体名称字段中输入 order_number

  4. 单击创建实体

  5. order_syntax 添加到 值名称 字段。

  6. 单击 同义词 旁边的向下箭头以将类型更改为 模式

    显示用户选择为实体添加模式。
    模式

  7. 将以下正则表达式添加到“模式”字段:

    [A-Z]{2}\d{5}
    
  8. 单击添加值

  9. 单击 关闭 箭头 关闭箭头 以完成添加 @order_number 实体。

添加取消订单意向

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

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

    cancel_order
    
  3. 添加用户示例 字段中,输入以下话语:

    I want to cancel my cake order
    I need to cancel an order I just placed
    Can I cancel my cake order?
    I'd like to cancel my order
    There's been a change. I need to cancel my bakery order.
    please cancel the birthday cake order I placed last week
    The party theme changed; we don't need a cake anymore
    that order i placed, i need to cancel it.
    
  4. 单击 关闭 箭头 关闭箭头 以完成添加 #cancel_order 实体。

添加肯定回答意向

在代表用户完成任务之前,必须确认您正在执行正确的操作。 请向对话添加一个 #yes 意向,用于识别用户同意助手建议内容的情况。

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

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

    yes
    
  3. 添加用户示例 字段中,输入以下话语:

    Yes
    Correct
    Please do.
    You've got it right.
    Please do that.
    that is correct.
    That's right
    yeah
    Yup
    Yes, I'd like to go ahead with that.
    
  4. 单击 关闭 箭头 关闭箭头 以完成添加 #yes 意向。

添加用于管理取消订单请求的对话节点

现在,添加一个用于处理取消蛋糕订单请求的对话节点。

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

  2. 在对话树中查找 #menu 节点。

  3. 单击 #menu 节点上的 Node 选项图标 Node 选项,然后选择 在下面添加节点

  4. 开始在此节点的 如果助手识别 字段中输入 #cancel_order,然后从列表中选择该字段。

  5. 助手响应中,输入文本响应:

    If the pickup time is more than 48 hours from now, you can cancel your order.
    

在可以取消订单之前,您需要知道订单号。 用户会在原始请求中指定订单号。 因此,为了避免再次询问订单号,请使用原始输入中的订单号模式来检查数字。 要执行此操作,请定义一个上下文变量来保存所指定的订单号。

  1. 助手响应中,单击 选项 图标 更多选项 图标,然后选择 打开上下文编辑器

  2. 使用以下值设置上下文:

    订单号上下文变量详细信息
    Variable(变量)
    $ordernumber <? @order_number.literal ?>

    上下文变量值 (<? @order_number.literal ?>) 是一个 SpEL 表达式,用于捕获用户指定的与 @order_number 模式实体定义的模式匹配的数字。 它会将数字保存到 $ordernumber 变量中。

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

现在,添加要求提供订单号的子节点,或者从用户处确认他们要取消具有检测到的订单号的订单。

  1. 单击 #cancel_order 节点上的 Node 选项图标 Node 选项,然后选择 添加子节点

  2. 向节点添加标签以将其与要添加的其他子节点区分开来。 在 输入节点名 字段中,添加 Ask for order number

  3. 如果助手识别中,输入 true 作为条件。

  4. 助手响应中,输入文本响应:

    What is the order number?
    
  5. 单击 关闭 图标 关闭 以关闭节点编辑视图。

现在,添加另一个子节点,通知用户您要取消订单。

  1. 单击 询问订单号 节点上的 Node 选项图标 Node 选项,然后选择 添加子节点

  2. 如果助手识别中,输入 @order_number 作为条件。

  3. 助手响应中,单击 选项 图标 更多选项 图标,然后选择 打开上下文编辑器

  4. 使用以下值设置上下文:

    订单号上下文变量详细信息
    Variable(变量)
    $ordernumber <? @order_number.literal ?>
  5. 助手响应中,输入文本响应:

    OK. The order $ordernumber is canceled. We hope we get the opportunity to bake a cake for you sometime soon.
    
  6. 单击 关闭 图标 关闭 以关闭节点编辑视图。

添加另一个节点,用于捕获用户所提供的数字不是有效订单号的情况。

  1. 单击 @order_number 节点上的 Node 选项图标 Node 选项,然后选择 在下面添加节点

  2. 如果助手识别中,输入 true 作为条件。

  3. 助手响应中,输入文本响应:

    I need the order number to cancel the order for you. If you don't know the order number, please call us to cancel over the phone.
    
  4. 单击 关闭 图标 关闭 以关闭节点编辑视图。

在初始订单取消请求节点之后添加一个节点,用于对用户在初始请求中提供了订单号而您无需再次询问的情况进行响应。

  1. 单击 #cancel_order 节点上的 Node 选项图标 Node 选项,然后选择 添加子节点

  2. 为该节点添加标签,以区别于其他子节点。 在 输入节点名 字段中,添加 Number provided

  3. 如果助手识别中,输入 @order_number 作为条件。

  4. 助手响应中,输入文本响应:

    Just to confirm, you want to cancel order $ordernumber?
    
  5. 单击 关闭 图标 关闭 以关闭节点编辑视图。

必须添加子节点来检查用户对您的确认问题的响应。

  1. 单击 提供的编号 节点上的 Node 选项图标 Node 选项,然后选择 添加子节点

  2. 如果助手识别中,输入 #yes 作为条件。

  3. 助手响应中,输入文本响应:

    OK. The order $ordernumber is canceled. We hope we get the opportunity to bake a cake for you sometime soon.
    
  4. 单击 关闭 图标 关闭 以关闭节点编辑视图。

  5. 单击 #yes 节点上的 Node 选项图标 Node 选项,然后选择 在下面添加节点

  6. 如果助手识别中,输入 true 作为条件。

请勿将响应添加到 助手响应。 而是将用户重定向到要求提供先前创建的订单号详细信息的分支。

  1. 那么助手应该 中,选择 跳至

  2. 选择 询问订单号 节点。

  3. 选择 如果助手识别 (条件)

    显示选择“询问订单号节点”条件作为跳转至目标。
    跳转至

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

强制对话在运行时评估 #cancel_order 节点下的子节点。

  1. 单击以在编辑视图中打开 #cancel_order 节点。

  2. 那么助手应该 选择 Skip user input

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

测试订单取消

测试助手是否可以识别与用户输入中用于产品订单号的模式匹配的字符模式。

  1. 单击试用

  2. 类型i want to cancel my order number TW12345.

    助手识别到 #cancel_order 意向和 @order_number 实体。 它响应为 If the pickup time is more than 48 hours from now, you can cancel your order. Just to confirm, you want to cancel order TW12345?

  3. 输入 Yes

    助手可识别 #yes 意向并使用 OK. The order TW12345 is canceled. We hope we get the opportunity to bake a cake for you sometime soon. 进行响应。

    显示当用户在初始输入中提供订单号时,取消订单号节点的“试用”窗格测试。
    试用

    现在,试一试处理您不知道订单号的情况。

  4. 在“试用”窗格中,单击清除以重新开始。

  5. 类型I want to cancel my order.

    助手可识别 #cancel_order 意向,并使用 If the pickup time is more than 48 hours from now, you can cancel your order. What is the order number? 进行响应。

  6. 输入I don't know.

    助手通过 I need the order number to cancel the order for you. If you don't know the order number, please call us to cancel over the phone. 进行响应。

添加节点以阐明订单号格式

如果执行更多测试,您可能会发现该对话框在用户不记得订单号格式的场景中无济于事。 用户可能只记得数字或字母,而忘了字母要大写。 在这些情况下,要是为他们提供一个提示,会不会很好呢? 要让对话更友好,可以在对话树中添加另一个节点,用于检查用户输入中的数字。

  1. 单击 @order_number 节点上的 Node 选项图标 Node 选项,然后选择 在下面添加节点

  2. 如果助手识别中,输入 input.text.find('\d') 作为条件。

  3. 在条件字段中,添加 input.text.find('\d'),这是一个 SpEL 表达式,当您在用户输入中找到一个或多个数字时,即会触发此响应。

  4. 助手响应中,输入文本响应:

    The correct format for our order numbers is AAnnnnn. The A's represents 2 uppercase letters, and the n's represent 5 numbers. Do you have an order number in that format?
    
  5. 单击 关闭 图标 关闭 以关闭节点编辑视图。

  6. 单击 input.text.find('\d') 节点上的 Node 选项图标 Node 选项,然后选择 添加子节点

  7. 如果助手识别中,输入 true 作为条件。

  8. 单击 定制,将 多个条件响应 开关设置为 开启,然后单击 应用

  9. 在 ** Assistant 响应中,添加具有以下条件的响应:

    条件详细信息
    如果助手识别到 助手响应 那助理应该
    @order_number OK. The order $ordernumber is canceled. We hope we get the opportunity to bake a cake for you sometime soon. 缺省为节点设置
    true I need the order number to cancel the order for you. If you don't know the order number, please call us to cancel over the phone.

    显示添加了一个节点,该节点用于检查用户输入中的数字,并以有关订单号格式的提示进行响应。
    条件详细信息

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

现在,当您测试时,可以提供一组数字或数字与文本混合作为输入,对话框会提醒您正确的订单号格式。 您测试了对话,发现了其中的弱点,并对其进行了更正。

另一种可以解决此类型场景的方法是添加具有槽的节点。 要了解有关使用槽的更多信息,请参阅向对话添加带槽的节点教程。

添加个人风格

如果用户对机器人本身表现出兴趣,您会希望虚拟助手能够识别这种好奇心,并以更个性化的方式与用户互动。 您可能记得在添加自己的定制 #about_restaurant 意向之前,我们之前考虑使用的 常规 内容目录随附的 #General_About_You 意向。 它是为了识别用户的此类问题而构建的。 请添加一个以此意向为条件的节点。 您可以在响应中询问用户的姓名,然后将其保存到 $username 变量中,以根据需要在对话中的其他位置使用。

添加用于处理机器人相关问题的节点

添加一个对话节点,用于识别用户对机器人的兴趣并进行响应。

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

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

  3. 如果助手识别 字段中开始输入 #General_About_You,然后从列表中选择该字段。

  4. 助手响应中,输入文本响应:

    I am a virtual assistant that is designed to answer your questions about the Truck Stop Gourmand restaurant. What should I call you?
    
  5. 单击 关闭 图标 关闭 以关闭节点编辑视图。

  6. 单击 #General_About_You 节点上的 Node 选项图标 Node 选项,然后选择 添加子节点

  7. 如果助手识别中,输入 true 作为条件。

  8. 助手响应中,输入文本响应:

    Hello, <? input.text ?>! It's lovely to meet you. How can I help you today?
    

要捕获用户提供的姓名,请向节点中添加一个上下文变量。

  1. 助手响应中,单击选项菜单 选项,然后选择 打开上下文编辑器

  2. 使用以下值设置上下文:

    设置上下文
    Variable(变量)
    $username "<? input.text ?>"

    上下文变量值 (<? input.text ?>) 是一个 SpEL 表达式,用于捕获用户指定的用户名,然后将其保存到 $username 上下文变量。

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

如果在运行时,用户触发此节点并提供名称,那么您将记录该用户的名称。 当您知道了用户姓名后,就应该好好地使用它! 将条件响应添加到您先前添加的问候语对话节点,以包含使用用户名的条件响应 (如果已知)。

将用户名添加到问候语

如果您知道用户姓名,那么应该将其加入到问候语中。 要执行此操作,请添加条件响应,并加入一个包含用户姓名的问候语变体。

  1. 在对话树中查找 问候客户 节点,然后单击以在编辑视图中打开该节点。

  2. 单击 定制,将 多个条件响应 开关设置为 开启,然后单击 应用

  3. 单击添加响应

  4. 如果助手识别中,输入 $username

  5. 响应中,输入文本响应:

    Good day to you, $username!
    
  6. 单击 上移 箭头 上移箭头 可对两种响应类型进行重新排序。

    显示现有响应现在是响应表的一部分。
    上移响应

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

测试个性化

测试助手是否可以识别并保存用户姓名,然后在将来通过该姓名指代该用户。

  1. 单击试用

  2. 单击清除以重新开始交谈会话。

  3. 输入 Who are you?

    助手识别到 #General_About_You 意向。 其响应以问题 What should I call you? 结束。

  4. 输入 Jane

    助手将 Jane 保存在 $username 变量中并响应 Hello, Jane! It's lovely to meet you. How can I help you today?

  5. 要测试 Greet customers 节点,请输入 Hello.

    您的助手可识别 Greet customers 意向,并显示 Good day to you, Jane!。 在问候语节点被触发时,$username 上下文变量中包含一个值,因此服务会使用包含用户姓名的条件响应。

您可以添加一个条件响应,使其以用户姓名为条件,并将用户姓名用于任何其他响应中,以通过个性化来增加交谈价值。

摘要

您创建了一个更复杂的对话,用于对来自客户的问题和请求作出反应。