在助手中使用实体和时隙填充

Copilot Studio 中的助手对话的一个重要方面是自然语言理解,也就是 AI 理解用户意图的能力。 例如,用户可能表示“我尝试使用我的礼品卡,但它不起作用”,助手知道应该将用户传递到与礼品卡不起作用相关的主题,即使该确切短语未列为触发短语。

自然语言理解的一个基本方面是在用户对话中确定实体。 观看视频以开始使用实体。

实体可以被认为是代表某种特定类型的现实世界主题的信息单元,如电话号码、邮政编码、城市或人的名字。 助手可以利用实体赋予的知识智能识别用户输入中的相关信息并保存,供将来使用。

预建实体

助手中的实体让您可以将信息存储在相似的组中。

Copilot Studio 自带一组现成的预生成实体,代表现实对话中的最常用信息类型,例如年龄、颜色、号码和姓名。

助手可以利用实体赋予的知识智能识别用户输入中的相关信息并保存,供将来使用。

我们以金钱实体为例来帮助理解该概念。

  1. 在 Copilot Studio 中打开您的助手,选择页面顶部的设置,然后在菜单中选择实体

    转到实体选项卡。

    将显示可用的预构建实体列表。

    “实体”窗格。

  2. 选择资金实体,这将打开实体的详细信息窗格。

    金钱实体说明。

您可以在此处查看此实体的说明,以及用于从用户输入中查找与金钱或货币相关的信息的方法。

例如,当用户输入“价值 1000 美元”时,助手使用此金钱实体可以知道“1000 美元”代表金钱类型的信息。 当助手提取此实体并将其保存到变量时,它会将“1000”另存为数字,即使其两侧的信息为文本。

自定义实体

预构建的实体涵盖常用的信息类型。 在某些情况(例如生成应对特定用途的助手)下,您可能需要教导助手的语言理解模型一些特定于域的知识。

例如,假设要为户外商店生成助手。 在这种情况下,您需要教导助手识别对话中的“户外用品产品”类别。

首先,创建自定义实体。 在此情况下,您可以创建一个实体来为助手提供有关所有室外产品类别的知识。

  1. 在 Copilot Studio 中打开您的助手,选择页面顶部的设置,然后在菜单中选择实体

  2. 选择添加实体>新实体

    选择新建实体。

  3. 这将打开一个窗格,您可以在其中选择实体类型:封闭式列表实体正则表达式(regex)实体

封闭式列表实体

通过封闭式列表实体可以定义项目列表。 这些实体最适合用于易于管理、具有简单项目标签的小型列表。

实体创建窗口的屏幕截图,突出显示封闭式列表选项。

在创建实体时选择此选项将显示一个窗格,您可以在其中指定实体的名称、可选说明,并输入要包含在实体中的项目。

实体列表窗格的屏幕截图。

输入项目时,您可以:

  • 选择每个项目并更改其名称。
  • 选择垃圾桶图标从列表中删除项目。
  • 选择 + 同义词(如果已添加,选择列出的同义词)打开编辑同义词窗格。

您可以添加同义词来手动扩展实体列表中每个项目的匹配逻辑。 例如,在“远足”项目中,您可以添加“徒步旅行”和“登山”作为同义词。

quot;编辑同义词quot;窗格的屏幕截图。

对于每个实体,您还可以启用智能匹配

智能匹配是助手语言理解模型支持的智能的一部分。 启用此选项后,助手将根据实体中列出的项目使用模糊逻辑解释用户的输入。

特别是,助手将自动更正拼写错误并在语义上扩展匹配逻辑。 例如,助手可以自动将“垒球”与“棒球”匹配。

智能匹配选项切换的屏幕截图。

完成创建或编辑实体后,选择保存保存并返回到实体列表。 选择关闭放弃您的更改(如果您意外选择了错误选项,您将看到返回编辑实体的选项)。

正则表达式 (regex) 实体

正则表达式 (regex) 实体让您可以定义可用于匹配和提取输入中的信息的逻辑模式。 正则表达式实体非常适合针对用户输入的复杂模式匹配,或者在您需要允许用户在对话中设定输入的格式或输入其输入内容可能采用的方式发生特定变化时。

例如,您可以使用 regex 实体,从用户输入到助手中的字符串中识别跟踪 ID、许可证编号、信用卡号或 IP 地址等项目。

实体创建窗口的屏幕截图,突出显示正则表达式选项。

在创建实体时选择此选项将显示一个窗格,您可以在其中指定实体的名称、可选说明,并输入应该用于匹配和从输入中提取实体项的 regex 模式。

regex 实体窗格的屏幕截图。

Copilot Studio regex 实体使用 .NET 正则表达式语法

默认情况下,模式匹配区分大小写,要使其不区分大小写,请在模式字符串中使用 (?i) 正则表达式选项。 一些基本示例包含在 regex 实体窗格中,有关语法的其他信息和更多示例可以在正则表达式语言 - 快速参考主题中找到。

如果您需要让正则表达式适应多个模式,您可以使用交替运算符 | 连接正则表达式。 例如,您可以组合两个正则表达式模式来查找产品 ID 代码的旧格式和新格式。

完成创建或编辑实体后,选择保存保存并返回到实体列表。 选择关闭放弃您的更改(如果您意外选择了错误选项,您将看到返回编辑实体的选项)。

在对话中使用实体

现在已通过创建产品类别实体和其他一些自定义实体为助手提供了有关户外用品的知识,可以在构造助手对话时开始使用它们。

  1. 转到要编辑的助手的主题页面。

  2. 打开要收集的实体的主题。

  3. 选择添加节点图标 ,然后选择提出问题

  4. 标识下,选择在自定义实体中创建的实体。

    带有实体选择的问题节点。

  5. (可选)也可以选择要显示为按钮的项。 例如,如果要将某些类别显示为按钮供用户方便地作为输入进行选择,只需选择选择用户选项,然后从其中包含您在创建自定义实体时添加的项的列表中选择它们。

    显示要在运行时显示为按钮的实体值选择的屏幕截图。

  6. 如有必要,为用户的响应输出的变量命名。

时隙填充

时隙填充是表示将提取的实体保存到对象的自然语言理解概念。 但是,在 Copilot Studio 中,时隙填充意味着将提取的实体值放入变量中。

我们将继续把露营活动主题用作示例,测试聊天中将通过键入“我要买东西”触发该主题。

将成功触发该主题,而助手将询问活动类别,并且显示在制作提问题节点时指定的按钮选项。 在对话树中,主题之间的跟踪显示正在为刚才创建的问题节点运行助手。

主题之间的跟踪。

用户可通过选择下面的一个按钮使用预定义的选项。 此外,他们也可以键入“远足”之类内容,并且看到其映射到“徒步旅行”,因为这些词定义为同义词。

主题之间的更多跟踪。

在主题之间的跟踪中,其显示对话正确传递到其中的产品类别值为“徒步旅行”的路径。 可以在创作区域底部变量查看窗口中检查变量值。 在查看窗口中,显示的变量值为“徒步旅行”。

基本上,通过在变量 VarCampType 中插入提取的实体“徒步旅行”进行了时隙填充。

变量查看窗口。

也可以使用所谓的“主动时隙填充”,其中,用户可以指定映射到多个实体的多段信息。 助手可以自动理解哪些信息属于哪个实体。 如果不确定意向映射,将通过提供选项更具体地提示用户。

在本示例中,用户写道“我很无聊,但我喜欢登山”。该消息既包括用户希望在户外活动中获得帮助的触发短语,也提供了第二条信息,即“登山”,这是实体定义的徒步旅行的同义词。 在此情况下,助手同时填充有关选择户外活动的实体和有关活动类型的实体。

多个主动槽填充。

在主题之间的跟踪中,可以看到助手采用此用户输入,并智能跳过询问活动类别的问题节点。

助手始终主动倾听用户输入,并预先记忆信息,以便根据需要跳过不必要的步骤。

我们重新开始测试并尝试另一个案例。 在这一回合中,您可以再添加几个问题节点,询问您有多少活动时间(使用持续时间实体)以及价格范围(使用金钱实体)。

这次在提供产品类别问题时,用户不仅告知助手产品类别,还可以说出“我要买一双价格低于 100 美元的登山靴”。 在此示例中,助手不仅能够找到正确的远足产品类别路径,还能主动填充用于询问远足装备类型和目标价格范围信息的槽。

产品和价格类别的主题之间的跟踪。

可以在节点级手动控制主动时隙填充。 如果要始终为特定节点内的问题提供提示,而无论是否从之前的用户响应填充了时隙,都可以为该问题节点禁用跳过问题选项。 执行以下步骤禁用跳过问题选项。

  1. 选择问题节点的更多图标 (),然后选择属性。 将显示问题属性面板。

    打开“问题属性”面板。

  2. 问题属性面板上,选择问题行为

  3. 问题行为面板上的跳过问题下,选择每次询问,然后选择页面顶部的保存

    跳过问题。