Copilot Studio 中的实体和时隙填充最佳做法
什么是时隙填充?
填充时隙涉及使用实体让助手通过从用户查询中识别和提取信息来更轻松地获取和使用信息。
助手通常需要使用来自用户的多条信息来执行工作。 要获取此信息,您通常需要单独提出问题,每个问题询问助手需要了解的具体情况。 当您在问题中使用实体时,Copilot Studio 会检测所需信息并跳过在触发用户查询中可以识别信息的问题。
例如,当用户提出:
我要订购 3 件大码蓝色 t 恤
Copilot Studio 自然语言理解 (NLU) 可以立即理解:
- 主题是订单。
- 数量是 3。
- 颜色是蓝色。
- 物品类型是 T 恤。
助手可以跳过不必要的问题。 如果缺少一些信息,例如尺码,它会先询问一些未回答的问题,然后再进入下一步。 通过时隙填充,助手可以更轻松地获取和使用信息,并减少您需要询问的问题数量。
首先要定义您要使用的实体及其类型。
定义实体
Copilot Studio 提供多种适用于常见用例的内置实体,例如电子邮件、日期和时间、人员姓名、电话号码、颜色、国家/地区、市/县、数字、货币等。
内置实体非常有用,因为它们可以处理信息可能采用的许多表单变体。 例如,在对话中使用货币时,用户可能会输入值“$100”、“一百美元”或“100 美元”等。 Copilot Studio 中的 NLU 模型能够识别出该值是 100 美元的货币价值。
提示
但是,在输入值后,只要您在对话流中通过问题提出请求,它们就可以存储在可重复使用的变量中。
您还可以定义自己的自定义实体,例如上一示例中的物品类型。 自定义实体有两种类型:
- 封闭式列表:用于预定义的值列表。
- 正则表达式 (RegEx):用于获取与特定模式匹配的信息。 当您需要捕获的数据始终采用相同格式(例如,票证编号 INC000001)时,非常适合使用正则表达式
改进用户体验
使用实体可以使 Copilot Studio 更智能地从用户查询中收集信息,从而减轻您的工作。 更重要的是,由于实体可以从用户查询中查找并存储信息,并且在以后的对话中使用这些信息,因此能够减轻用户的工作。 实体可以改进用户体验,会让您的助手变得越来越聪明,因此尽可能充分利用实体是一种最佳做法。
实体最佳做法
使用同义词
您可以向封闭式列表实体值添加同义词来手动扩展实体列表中每个项目的匹配逻辑。 例如,在“远足”项目中,您可以添加“徒步旅行”和“登山”作为同义词。
提示
- 使用同义词也可帮助触发主题,因为它们通过添加相关字词作为其中包含的实体的同义词来增加触发短语的权重。 例如,对于“投诉”选项,添加类似的负面词语或短语作为同义词。
- NLU 模型还会对所有实体变体(即,它的所有值及其同义词)进行泛化,以防主题触发短语包含该实体的至少一个变体。 也就是说,助手创作者应添加具有该实体的其中一个用法的一个示例触发短语,以便 NLU 可针对其他实体变体进行泛化。
启用智能匹配
对于每个封闭式列表实体,您还可以启用智能匹配。
智能匹配是助手 NLU 模型支持的智能的一部分。 启用此选项后,助手将根据实体中列出的项目使用模糊逻辑解释用户的输入。
具体来说,助手将自动更正拼写错误并在语义上扩展匹配逻辑。 例如,助手可以自动将“垒球”与“棒球”匹配。
巧妙使用正则表达式
有时,从用户查询中提取实体会导致 NLU 模型发生混乱,特别是当用户查询中存在相同类型的多个实体时。
例如,如果用户提出:
请向 101 房间送 2 条毛巾和 1 个枕头
使用内置的数字实体会将 2、1 和 101 混淆。 为了避免出现这样的混乱,您可以定义以下正则表达式实体:
- 毛巾数量:[1-9] 条毛巾
- 枕头数量:[1-9] 个枕头
- 房间号:[0-9]{3}
用于存储引用数据的替代实体
对于大型或不断发展的数据集(如产品列表或客户名单),您可能希望查看外部源,而不是使用 Copilot Studio 封闭式列表实体。 您需要使用 Power Automate 云流将用户言语传递到外部服务。
在继续对话之前,您的主题逻辑随后可验证结果的准确性(或要求用户验证)。
Dataverse 是存储此类数据的一个恰当的备选项,因为它具有内置的 Dataverse 搜索功能,该功能支持模糊匹配,以返回最佳结果和置信度分数。 即使使用完整的语句进行搜索,也能够检索潜在匹配。
小费
要查看实施示例,请参阅返回结果列表。