故事
故事会教导您的机器人 代替现场人工坐席处理客户交互的软件应用程序。如何在交互上下文中回应消息
联系人在机器人交互中所说的任何内容,无论是问题还是陈述,书面或口头。。 当消息的上下文很重要时使用故事。 这有助于机器人学习如何根据联系人之前发送的消息来预测正确的应答。
配置机器人应答的另一种方法是创建规则。 规则适用于每次应答都相同且上下文不重要的消息。 当上下文对于了解联系人的需求很重要时,请使用故事。 如果上下文不重要,并且联系人的消息始终意味着同一件事,请使用规则。
例如,如果联系人说“您的工作时间是几点”,机器人可能不需要任何上下文,您可以使用规则。 但如果联系人说“我该怎么做”,机器人就需要了解此消息的上下文。 联系人在对话中早些时候提出的问题将帮助机器人了解如何做出适当的响应,因此您应使用故事。

概念 | 定义 | 示例 | 机器人做什么 |
---|---|---|---|
![]() 话语 |
联系人在交互中所说的任何内容。 有时称为消息。 |
“我丢失了密码。” “我的余额是多少?” “你是机器人吗?” |
该机器人使用自然语言理解 (NLU) 来分析每个联系人话语以确定其含义,或意图。 |
![]() 意图 |
联系人想要传达或完成的内容。 联系人发送的每条消息都有一个意图。 |
“我丢失了密码”具有“重置密码”的意图。 “你好”有“打招呼”的意思。 |
机器人使用 NLU |
![]() 实体 |
联系人消息中定义的一条信息。 | 个人或产品名称、电话号码、帐号、位置等。 | 机器人使用 NLU 来识别联系人消息中的实体。 实体帮助机器人理解联系人消息的含义。 |
![]() 插槽 |
从联系人的消息中提取并保存以用于机器人响应的实体。 类似于变量。 | 为联系人姓名创建一个时间段可以让机器人在交互期间在响应中使用该姓名,使其更加个性化。 | 当被配置成执行此操作时,机器人会从联系人消息中提取实体并将其保存在插槽中。 您可以让机器人稍后在对话中使用此信息。 |
![]() 规则 |
定义机器人对不随上下文改变含义的消息的响应。 |
|
规则是您能够配置机器人如何响应意图的两种方法之一。 规则对于某些类型的意图有用,但不适用于所有意图。 |
![]() 故事 |
训练机器人处理基于消息意图和会话上下文的交互。 | 在有关忘记密码的交互中,机器人会以一种方式回答: “我该怎么做?”。 如果交互是关于创建一个新帐户,即使在这两种情况下联系人使用相同的词和相同的意图——以获取更多信息,响应也会完全不同。 | 故事是您能够配置机器人如何响应意图的两种方法中的第二种。 故事教机器人如何利用对话的上下文来做出适当的响应。 |
![]() 机器人操作 |
机器人在处理交互时所说或所做的任何事情。 |
在有关忘记密码的交互中,机器人通过发送网站上的密码重置常见问题解答链接来进行响应。 当联系人表达沮丧时,例如“我不明白! 没用啊!!!”时, 机器人回复“对不起。 您想让我把您转给人工坐席吗?” 当联系人同意后,机器人启动此转移。 |
操作是您在定义希望机器人如何响应每个意图时具有的选项。 它们可使您灵活地配置每个响应,以实现满足联系人需求的结果。 |
愉快、不愉快和超出范围的路径
在规划故事时,从路径的角度思考会很有帮助:
- 愉快路径:训练愉快路径的故事按照您期望的对话流程描述联系人。 联系人始终提供预期的信息并在提示时回复。 在愉快路径中没有什么不寻常的事情发生。
- 不愉快路径:不愉快路径描述联系人偏离“脚本”并插入意外问题、评论、闲聊或其他中断类型的情况。
- 超出范围的路径:超出范围路径的故事示教您的机器人如何处理联系人的请求超出您机器人能力范围的情况。
为您的所有意图设计愉快和不愉快路径的故事非常重要。 愉快路径可确保机器人知道如何完成每个意图的工作。 不愉快路径可确保机器人不会因意外情况而偏离轨道。 有时机器人仍可能无法自信地预测如何响应,并且必须遵循超出范围的路径。 然而,通过训练大量不愉快路径,您可以帮助机器人学习使对话重回正轨的方法。
超出范围的路径
超出范围的路径与回退不同。 当机器人没有足够的信心继续执行给定的操作或意图时,就会使用回退。 当联系人要求您的机器人执行未经训练的操作时,超出范围的路径非常有用。 您可以为这些请求创建超出范围的意图,以便机器人识别它们。 然后,您可以使用故事中的意图来示教机器人如何响应这些请求。
例如,联系人可能会经常要求您的机器人更新其帐户信息,但您的机器人尚未被设置为执行此操作。 您可以创建 accountUpdates 意图,提供训练示例,并将机器人应答配置为“抱歉,我还不知道该怎么做。 我可以帮助您执行 [任务],或者将您转给人工坐席来帮助您处理您的帐户。”
故事和上下文转换
当对话需要多个回合时,故事对于训练机器人处理上下文转换很有用。 以下示例显示了联系人改变主意并相继陈述了两个意图的对话:
联系人:您好,我想支付我的发票。
机器人:当然,没问题。 您的发票号码是多少?
联系人:实际上,我想转帐。
机器人:当然,我可以执行此操作。 您想转入哪个帐户?
联系人:从储蓄帐户转帐 200 美元到支票帐户。
机器人:好的。 您的转帐已完成。 我将 200 美元从您的储蓄帐户转到您的支票帐户。
机器人:您现在想继续支付发票吗?
通过使用不愉快路径,您可以训练机器人来处理联系人未按预期方式应答的情况。
对于某些类型的上下文转换,规则 用于定义机器人对不随上下文变化的消息的响应。可能更合适。 有时,联系人可能会插入一条不相关的消息。 如果该消息是机器人能够在一个回合中响应的内容,然后返回到之前的意图,则可以使用规则。 以下示例对话显示了联系人插入天气问题的对话:
联系人:您好,我想支付我的发票。
机器人:当然,没问题。 您的发票号码是多少?
联系人:您所在地的天气如何?
机器人:外面阳光明媚。
联系人:很幸运! 哦,我的发票号码是 123456。
机器人:谢谢,您希望如何支付该发票?
使用规则可轻松处理联系人有关天气的问题。 机器人的应答每次都可相同。
检查点
检查点是您可以在故事中分配给机器人应答的机器人操作。 它们可使您通过将故事细分为更小的子任务并关联相关部分来简化故事。 在联系人可能会询问几个后续问题之一的情况下,这非常有帮助。 您可以为对话的每个部分创建较小的故事,而不是根据联系人提出的后续问题为每个场景从头到尾创建整个故事。
您还可以使用不基于客户消息的检查点。 例如,您的公司可能想要向所有客户提供限时特别优惠。 您可以将特别优惠消息和操作添加到您的每个机器人故事中,然后在优惠到期时从多个故事中删除该部分。 更简单的方法是为特别优惠创建一个故事,然后在优惠期间为每个故事添加一个检查点。
如图所示,检查点总是在开始处显示一个带曲线箭头的蓝色小圆。 这表明它连接到一个或多个其他故事。 即使您在检查点之后添加操作,检查点也都是用来结束故事。
许多联系人一直在向 Classics, Inc 机器人询问 Classics, Inc. 帐户,因此 Akela Wolfe 正在向她的机器人添加意图来处理这些问题。 联系人会询问一些有关帐户的常见问题。 Akela 决定使用检查点来处理这些问题。
她为 explain_account 意图创建了主要故事:
联系人:您好,什么是 Classics, Inc 帐户?
机器人:您好。 Classics, Inc. 帐户可使您访问从 Classics, Inc. 购买的所有电子书。
她还为三个常见的后续问题创建了故事:
- 您能告诉我有关帐户福利的更多信息吗?
- 我如何创建帐户?
- 我必须付费还是它免费的?
Akela 返回到针对 explain_account 意图的故事。 最后,她添加了关联到后续问题的故事的检查点。
故事规划最佳实践
规划故事时请遵循以下最佳实践:
- 当上下文很重要时使用故事。 即使对话只涉及机器人与联系人之间的一次交流,如果机器人需要上下文来了解如何响应,请使用故事。 例如,如果您有一个 lookup_balance 意图,但一些联系人想要了解支票帐户的余额,而其他人想要了解储蓄帐户,您可以创建一个故事来帮助您的机器人学习根据用户指定的帐户做出适当响应。
- 使用故事来帮助您的机器人学习做出预测。 仔细选择每个故事的主题。 确保其旨在帮助机器人学习正确预测对以前从未见过的对话做出的响应。
- 使故事以真实对话为基础。 请勿编造您认为可能发生的故事。 使用真实的交互来创建故事。
-
设计遵循 愉快
为意图产生正确结果的故事路径或 不愉快路径
为意图产生错误结果的故事的故事。
- 使用故事来处理上下文切换。 这有助于您的机器人学习在两个对话流之间进行切换或处理需要多个对话回合来响应的中断。 如果中断只需要一个回合来响应并且不依赖于上下文,则规则可能更合适。
-
某些意图需要多个故事。 如果对话可能进行的方式可能有多个变化,则根据联系人的独特情况和需求,为同一意图创建多个故事。
- 请勿在同一故事中包含对话流的变化。 这可能会让机器人感到困惑。
- 如果联系人表达消息的方式可能存在变化,或者类似的消息本质上都意味着相同的事情,您可以将它们添加为联系人消息意图的示例。
在愉快和不愉快路径方面思考。 每个意图都可以有多个愉快路径和多个不愉快路径。
- 为您超出范围的意图创建一个故事。 这可使您训练机器人了解联系人提供超出范围的信息的更常见方式。
- 根据需要包含联系人之间的来回交流。 故事和规则不应是完整的对话。 当对话中的下一个陈述必然会开始一个新的意图时,此时应停下来创造一个新的故事。
- 将您的故事细分为逻辑子任务。 创建一个从头到尾包含整个对话的长故事是很诱人的。 然而,这实际上会增加您需要的故事数量。 将您的故事细分为逻辑子任务。 如果您有一些密切相关的子任务,您可以将它们与检查点进行关联。
- 不要过度使用检查点。 它们可以简化您的训练数据。 太多的检查点会使您的故事难以理解,并且实际上会减慢机器人的训练速度。