在代理中使用实体和时隙填充

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

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

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

预建实体

代理中的实体可以将信息存储在类似的组中。

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

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

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

  1. 在 Copilot Studio 中打开代理,在页面顶部选择设置,然后在菜单中选择实体

    所有可用实体列表将显示。

    实体页面的屏幕截图(部分视图)。

  2. 选择金钱实体。 将打开实体的详细信息面板。

    “货币”实体的详细信息面板的屏幕截图。

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

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

自定义实体

预构建的实体涵盖常用的信息类型。 有时,例如在构建服务于特定目的的代理时,您可能需要教授代理的语言理解模型特定于领域的知识。

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

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

  1. 在 Copilot Studio 中打开智能体,选择页面顶部的设置,然后选择实体

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

    选择新建实体。

  3. 选择所需的实体类型:封闭列表实体或正则表达式(regex)实体。

    实体创建窗口的屏幕截图,包括“关闭列表”和“正则表达式”选项。

封闭式列表实体

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

  1. 创建实体中,选择封闭列表

  2. 在打开的面板中,输入新实体的名称 - 例如,露营活动

  3. 必要时添加说明。

  4. 列表项目下,输入要与该实体关联的值。 例如,徒步旅行瑜伽。

    或者,您也可以上传文件列出您想为该实体添加的所有值。

    输入项目时,您可以:

    • 选择项目并更改它的名称。
    • 选择垃圾桶图标来删除项目。
    • 选择同义词(如果已添加同义词,则选择列出的同义词),打开编辑同义词面板。

    您可以添加同义词来扩展列表中每个值的匹配逻辑。 例如,对于远足,您可以添加徒步旅行登山作为同义词。

    “编辑同义词”面板的屏幕截图。

  5. 如果需要,为该实体打开智能匹配

    智能匹配是代理的语言理解模型所支持的智能的一部分。 当智能匹配处于活动状态时,代理会根据为实体列出的值使用模糊逻辑来解释用户输入。

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

  6. 完成创建或编辑实体后,选择保存。 选择关闭放弃更改。

    示例“露营活动”实体的详细信息面板的屏幕截图。

为封闭列表实体上传值

在闭合列表实体的详细信息面板中,可以添加或替换与该实体关联的值和同义词集。

  1. 准备一个文本文件(最大 3 MB),其中列出了要为实体添加的所有值,包括同义词(如果有)。 使用此格式:每行一个值,并使用管道(|)作为同义词的分隔符。 例如:

    hiking|trekking
    hiking|mountaineering
    yoga
    cycling|bicycling
    cooking
    
  2. 列表项下,选择上传文件

  3. 上传文件中,选择所需的选项:

    • 如果要为实体添加新值和同义词,请选择添加
    • 要使用文件中的列表替换所有现有值和同义词,请选择替换
  4. 将文件拖放到窗口上。 或者,选择单击浏览,导航到文件并将其选中。

  5. 查看出现的值和同义词,然后选择添加

下载封闭列表实体的值

从封闭列表实体的详细信息面板中,您可以下载一个文本文件,其中列出了与该实体关联的一组值和同义词。

  1. 列表项下,选择下载文件

  2. 保存生成的文本文件,或在文本编辑器中打开查看其内容。 每个实体值都显示在单独的行上。 如果一个值有多个同义词,它们会显示在单独的行上,如下所示:

    hiking|trekking
    hiking|mountaineering
    

正则表达式 (regex) 实体

正则表达式 (regex) 实体让您可以定义可用于匹配和提取输入中的信息的逻辑模式。 正则表达式实体非常适合与用户输入进行复杂模式匹配。 如果您需要允许用户在对话中格式化或输入其输入的方式的特定变化,它们也很有用。

例如,使用 regex 实体来识别跟踪 ID、许可证号、信用卡号或 IP 地址等项目。

  1. 创建实体中,选择常规表达式(regex)

  2. 在打开的面板中,输入新实体的名称。

    正则表达式实体的详细信息面板的屏幕截图。

  3. 必要时添加说明。

  4. 输入用于匹配和提取输入中的实体项的正则表达式模式。

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

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

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

  5. 完成创建或编辑实体后,选择保存。 选择关闭放弃更改。

在对话中使用实体

现在,由于露营活动实体和其他自定义实体的创建,您的智能体已经知道了户外装备的信息,可以开始在智能体中使用它们了。

  1. 转到代理的主题页面。

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

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

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

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

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

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

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

时隙填充

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

让我们继续以露营活动主题为例,在测试聊天中输入“我想找点事做”就会触发该主题。

将成功触发该主题,而智能体将询问活动类别,并且显示在制作问题节点时指定的按钮选项。 如果打开主题间跟踪选项,对话树还会显示智能体正在运行到问题节点。

主题之间的跟踪。

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

跟踪视图显示对话框已正确路由到产品类别值为“远足”的路径。您可以从创作区域底部的变量监视窗口检查变量值。 在查看窗口中,显示的变量值为“徒步旅行”。

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

变量查看窗口。

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

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

多个主动槽填充。

跟踪视图显示,智能体接收了用户输入,并智能地跳过了询问活动类型的问题节点。

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

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

这次在提供产品类别问题时,用户不仅告知代理产品类别,还可以说出“我要买一双价格低于 100 美元的登山靴”。。在此示例中,代理不仅可以传递到正确的徒步旅行产品类别路径,还可以主动填充时隙以询问徒步旅行用品类型和目标价格范围信息。

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

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

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

    打开“问题属性”面板。

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

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

    跳过问题。