在对话中使用实体
一旦定义了您的实体,就可以在构建代理对话时使用它们。 使用它们的最简单方法是打开主题的创作画布并添加问题节点。 问题节点允许代理使用实体来识别用户提交的信息,并将此信息另存为变量。 问题节点的识别功能会告知代理需要从用户查询中识别哪些信息。
当对话中出现此问题时,用户只需键入他们要查找的部门。 然后,该项目将与实体列表中的项目进行比较和匹配。
在上图中,用户表达了对徒步旅行的兴趣,这是远足的另一种说法。 代理会识别此信息,并且由于我们将徒步旅行定义为远足的同义词,因此代理显示与远足相关的信息。
在某些情况下,组织可能会决定,他们希望向用户显示按钮以简化选择。 例如,如果您希望某些类别项目显示为用户可选择作为输入的按钮,请选中选择用户的选项,然后从列表中选取。 在对话中,客户可以选择所需的项目按钮,或者以文本形式手动输入其他类别。
使用槽填充
槽填充是一种自然语言理解概念,用于将提取的实体保存到对象。 简单来说,槽填充会匹配客户输入的内容,然后将其适当存储在变量中。 例如,当被要求提供类别类型时,客户可能会选择远足,也可能会键入徒步旅行,如下图所示。 由于徒步旅行被定义为同义词,仍然应视为用户输入了“远足”。 槽填充可确保即使输入了其他内容,它也与正确的类别相关联。 提取的实体远足将用作产品类别变量的值。
主动槽填充
另一个概念称为主动槽填充。 在这种情况下,用户可指定映射到多个实体的多条信息。 代理可自动理解什么信息属于哪个实体。
可以在节点级别手动控制主动槽填充。 如果您想要始终在特定节点内提示问题,而不管该槽是否已根据之前的用户响应填充,您可以禁用跳过问题选项,并针对该问题节点每次进行询问。
默认问题行为设置为允许跳过问题,这允许代理主动检测用户查询中的实体,而无需提示用户提供他们已提供的信息。
在以下示例中,用户写下了我想购买一些徒步旅行装备。 这其中包括客户想要购买装备的触发短语,还提供了第二条信息,即实际的装备类型。 在这种情况下,代理将同时填充购买装备实体和装备类型。 这与上一个示例不同,上一个示例中代理需要提示用户提供设备类型。 代理接受用户输入,并智能地跳过询问产品类别的问题。
注意
请注意,由于用户为户外运动类别实体提供了值,因此跳过了问题节点,从而允许代理推进对话,而无需询问用户已提供的信息。
代理始终积极关注用户输入,提前记住信息,以便适当地跳过不必要的步骤。
让我们重新开始测试,并尝试另一个案例。 在这一轮中,我们添加了更多问题节点,询问远足装备的类型和价格范围(使用金钱实体)等信息。
这次出现产品类别问题时,用户可以说我想买一双 100 美元以下的远足鞋,而不是只告诉代理产品类别。
在此示例中,代理不仅能够找到正确的远足产品类别路径,还能主动填充用于询问远足装备类型和目标价格范围信息的槽。