返回结果列表

通常要求代理在外部系统中查找数据并返回结果列表。 为此,代理可以调用 Power Automate 流,以便:

  1. 进行身份验证并连接到外部解决方案
  2. 根据用户输入运行查询。
  3. 为结果设置格式。
  4. 将结果返回给代理。

本例使用 Power Automate 中的 Dataverse 连接器搜索账户。 连接器会向代理返回一个结果列表,其中包括帐户名称、城市和帐号。

先决条件

设置 Dataverse 客户表

账户表是标准表,在 Power Platform 环境中默认可用。 但是,它不附带客户数据。 在代理搜索帐户之前,您必须填充帐户表。

如果您已有包含数据的客户表,跳过此步骤,继续创建主题。 但是,在后续步骤中测试代理时,请记住使用与数据相关的搜索词。

  1. 转到 Power Apps 门户

  2. 在导航窗格中,选择

  3. 选择客户表,然后在表属性页面上,选择编辑

  4. 将以下行添加到表中:

    地址 1:城市 客户名称 帐号
    西雅图 Contoso Inc AC0125
    旧金山 Contoso 驻地 AC0255
    奥林匹亚 Contoso 送餐 AC0035

创建主题

  1. 在 Copilot Studio 中,转到代理的主题页面。

  2. 创建名为账户搜索的主题。

  3. 添加以下触发短语:

    • 我在查找客户
    • 我正在查找客户
    • 搜索客户
    • 搜索顾客
  4. 添加一个消息节点,并输入消息“听上去您好像在查找一个客户。 我可以帮你查一下。

  5. 添加一个问题节点,并输入消息“您要查找的客户的名称是什么?”

  6. 对于标识,选择组织

    用户的完整响应也一样。 但是,选择组织实体将利用代理的语言理解能力从回复中提取组织名称。

  7. 对于将用户响应另存为,将变量重命名为组织。

    包含“消息”节点和“问题”节点的“帐户搜索”主题的屏幕截图。

创建流

  1. 选择任意节点下方的添加节点图标 ,并选择添加操作

  2. 基本操作标签中,选择 新建 Power Automate 流

  3. 在 Power Automate 中选择流名称,并替换为搜索账户

  4. 选择从 Copilot 运行流的流触发器,并添加名为组织文本输入参数。

    带有“组织”文本输入的流触发器的屏幕截图。

  5. 选择流触发器从 Copilot 运行流下方的添加图标。

  6. 添加操作中搜索“Microsoft Dataverse”,然后选择搜索行操作。

    此操作使用模糊匹配在您的 Dataverse 客户表中查找相关客户。

  7. 搜索词框中输入斜线(/),选择插入动态内容,然后选择组织输入参数。

  8. 对于高级参数,选择显示全部,然后设置以下值:

    • 表筛选器项目account
    • 按项 - 1 排序search.score desc
    • 按项 - 2 排序name asc

    带有高级选项的“搜索行”操作属性屏幕截图。

为结果设置格式

搜索行操作将返回 List of rows 变量,其中包含 JSON 数据。 您需要先使用分析 JSON 操作对数据进行分析,然后才能够使用数据。

  1. 选择搜索行操作下方的添加图标。

  2. 添加操作中搜索“数据操作”,然后选择解析 JSON 操作。

  3. 内容框中输入斜线(/),选择插入动态内容,然后选择行列表

  4. 将以下 JSON 架构复制并粘贴到架构框中:

    {
        "type": "array",
        "items": {
            "type": "object",
            "properties": {
                "@@search.score": {
                    "type": "number"
                },
                "name": {
                    "type": "string"
                },
                "address1_city": {
                    "type": "string"
                },
                "accountnumber": {
                    "type": "string"
                }
            },
            "required": [
                "name"
            ]
        }
    }
    

    解析 JSON 操作属性中的 JSON 模式截图。

  5. 选择解析 JSON 操作下方的添加图标。

  6. 添加操作中搜索“变量”,然后选择初始化变量操作。

  7. 名称框中输入 “ListOfAccounts”。

  8. 对于类型,选择字符串

    “初始化变量”操作属性屏幕截图。

  9. 选择初始化变量操作下方的添加图标。

  10. 添加操作中搜索“控制”,然后选择应用到每项操作。

  11. 选择前面步骤的输出框中输入斜线(/),选择插入动态内容,然后选择解析 JSON 下的正文变量。

  12. 选择添加图标,该图标位于应用到每项操作里面

  13. 添加操作中搜索“变量”,然后选择追加到字符串变量操作。

  14. 对于名称,选择 ListOfAccounts

  15. 复制以下文本并将其粘贴到框中:

    - @{items('Apply_to_each')['accountnumber']}: @{items('Apply_to_each')['name']} - @{items('Apply_to_each')['address1_city']}
    
  16. 在片段后添加换行符,使每个结果出现在自己的行上。

    “追加到字符串变量”操作属性截图。

  17. 回复 Copilot 操作中,添加文本输出。

  18. 名称中,输入 “FoundAccounts”。

  19. 对于值,在框中输入斜线(/),选择插入动态内容,然后选择 ListOfAccounts 变量。

    “响应 Copilot”作属性的屏幕截图。

  20. 保存并发布您的流。

从 Copilot Studio 调用流

  1. 在 Copilot Studio 中,选择问题节点下的添加节点图标 ,选择添加操作,然后选择之前创建的流搜索账户

  2. 将流输入参数设置为问题节点中的输出变量:组织(字符串)的值来自组织变量。

  3. 添加一个消息节点,并输入消息“好的,这就是我找到的”。

  4. 添加第二个消息节点。 选择插入变量图标,然后选择 FoundAccounts

    使用找到的帐户列表进行响应的对话流的屏幕截图。

  5. 选择保存

  6. 测试您的代理。

    测试面板中示例对话的屏幕截图。