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