通常要求代理在外部系统中查找数据并返回结果列表。 为此,代理可以调用 Power Automate 流,以便:
- 进行身份验证并连接到外部解决方案
- 根据用户输入运行查询。
- 为结果设置格式。
- 将结果返回给代理。
本例使用 Power Automate 中的 Dataverse 连接器搜索账户。 连接器会向代理返回一个结果列表,其中包括帐户名称、城市和帐号。
先决条件
- 了解如何从 Copilot Studio 创作画布创建流
- 属于输入和输出变量传递消息
- 为您的环境配置 Dataverse 搜索
设置 Dataverse 客户表
账户表是标准表,在 Power Platform 环境中默认可用。 但是,它不附带客户数据。 在代理搜索帐户之前,您必须填充帐户表。
如果您已有包含数据的客户表,跳过此步骤,继续创建主题。 但是,在后续步骤中测试代理时,请记住使用与数据相关的搜索词。
转到 Power Apps 门户。
在导航窗格中,选择表。
选择客户表,然后在表属性页面上,选择编辑。
将以下行添加到表中:
地址 1:城市 客户名称 帐号 西雅图 Contoso Inc AC0125 旧金山 Contoso 驻地 AC0255 奥林匹亚 Contoso 送餐 AC0035
创建主题
在 Copilot Studio 中,转到代理的主题页面。
创建名为账户搜索的主题。
添加以下触发短语:
- 我在查找客户
- 我正在查找客户
- 搜索客户
- 搜索顾客
添加一个消息节点,并输入消息“听上去您好像在查找一个客户。 我可以帮你查一下。
添加一个问题节点,并输入消息“您要查找的客户的名称是什么?”
对于标识,选择组织。
用户的完整响应也一样。 但是,选择组织实体将利用代理的语言理解能力从回复中提取组织名称。
对于将用户响应另存为,将变量重命名为组织。
创建流
选择任何节点下方的 “添加节点 ”图标
,然后选择 “添加工具”。在“ 基本作 ”选项卡上,选择“ 新建代理流”。 此时会打开代理流设计器选项卡,其中包含代理调用的代理流的起始模板。 该流包括两个作: 代理调用流 并 响应代理时。
选择“保存草稿”。
在流的“ 概述 ”选项卡上,编辑流的详细信息,将名称替换为 搜索帐户。 选择“ 保存”。
返回到“设计器”选项卡。选择代理调用流触发器时,并添加名为 Organization的文本输入参数。
选择代理调用流触发器时下方的“添加”图标。
在添加操作中搜索“Microsoft Dataverse”,然后选择搜索行操作。
此操作使用模糊匹配在您的 Dataverse 客户表中查找相关客户。
在搜索词框中输入斜线(
/),选择插入动态内容,然后选择组织输入参数。对于高级参数,选择显示全部,然后设置以下值:
-
表筛选器项目:
account -
按项 - 1 排序:
search.score desc -
按项 - 2 排序:
name asc
-
表筛选器项目:
为结果设置格式
搜索行操作将返回 List of rows 变量,其中包含 JSON 数据。 您需要先使用分析 JSON 操作对数据进行分析,然后才能够使用数据。
选择搜索行操作下方的添加图标。
在添加操作中搜索“数据操作”,然后选择解析 JSON 操作。
在内容框中输入斜线(
/),选择插入动态内容,然后选择行列表。将以下 JSON 架构复制并粘贴到架构框中:
{ "type": "array", "items": { "type": "object", "properties": { "@@search.score": { "type": "number" }, "name": { "type": "string" }, "address1_city": { "type": "string" }, "accountnumber": { "type": "string" } }, "required": [ "name" ] } }
选择解析 JSON 操作下方的添加图标。
在添加操作中搜索“变量”,然后选择初始化变量操作。
在名称框中输入 “ListOfAccounts”。
对于类型,选择字符串。
选择初始化变量操作下方的添加图标。
在添加操作中搜索“控制”,然后选择应用到每项操作。
在选择前面步骤的输出框中输入斜线(
/),选择插入动态内容,然后选择解析 JSON 下的正文变量。选择添加图标,该图标位于应用到每项操作里面。
在添加操作中搜索“变量”,然后选择追加到字符串变量操作。
对于名称,选择 ListOfAccounts。
复制以下文本并将其粘贴到值框中:
- @{items('Apply_to_each')['accountnumber']}: @{items('Apply_to_each')['name']} - @{items('Apply_to_each')['address1_city']}在片段后添加换行符,使每个结果出现在自己的行上。
在 “响应代理 ”作中,添加 文本 输出。
在名称中,输入 “FoundAccounts”。
对于值,在框中输入斜线(
/),选择插入动态内容,然后选择 ListOfAccounts 变量。
保存并发布您的流。 Copilot Studio 在发布代理流时通知你。
选择 “返回代理”以 返回到代理主题编辑器。 新作流将添加到主题。
从 Copilot Studio 调用流
选择新作节点。
将流输入参数设置为问题节点中的输出变量:组织(字符串)的值来自组织变量。
添加一个消息节点,并输入消息“好的,这就是我找到的”。
添加第二个消息节点。 选择插入变量图标,然后选择 FoundAccounts。
选择保存。
测试您的代理。