返回结果列表

要求代理在外部系统中查找数据并返回结果列表是很常见的。 要实现此目的,Microsoft Copilot Studio 可以调用 Power Automate 流来:

  • 进行身份验证并连接到外部解决方案
  • 基于用户输入运行查询
  • 为结果设置格式
  • 将结果返回到代理

在此示例中,您将使用 Power Automate 中的 Dataverse 连接器来搜索帐户。 然后,您将包含客户名称、城市和客户编号的结果列表返回到 Microsoft Copilot Studio。

先决条件

设置 Dataverse 客户表

客户表是一个标准表,自动包含在 Power Platform 环境中。 但是,它不附带客户数据。 在代理可以搜索帐户之前,您需要填充 Account 表。

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

  1. 转到 Power Apps 门户

  2. 在侧窗格上,在 Dataverse 下,选择数据表

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

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

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

创建主题

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

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

  3. 添加以下触发短语:

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

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

  6. 对于标识,选择组织

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

    带有消息和问题节点的新主题的屏幕截图。

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

创建流

  1. 在创作画布上,选择添加节点 (+)。 选择调用操作,然后选择创建流

  2. 在 Power Automate 门户中,将流命名为搜索客户

  3. 添加一个名为组织文本输入。

    添加了文本输入的流触发器的屏幕截图。

  4. 选择插入新步骤 (+),然后选择添加操作

  5. 选择 Microsoft Dataverse 连接器,然后选择搜索行操作。

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

    Dataverse 连接器搜索行操作的屏幕截图。

  6. 对于搜索词,选择组织变量。

  7. 选择显示高级选项,设置以下给定项:

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

    配置了高级选项的搜索行操作的屏幕截图。

为结果设置格式

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

  1. 选择插入新步骤 (+),然后选择添加操作

  2. 选择数据操作连接器,然后选择分析 JSON 操作。

  3. 内容框中的搜索行下,选择 List of rows 变量。

  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. 选择插入新步骤 (+),然后选择添加操作。 选择变量连接器,然后选择初始化变量操作。

  6. 对于名称,输入 ListOfAccounts。 对于类型,选择字符串

    初始化变量操作的屏幕截图。

  7. 选择插入新步骤 (+),然后选择添加操作。 选择控件连接器,然后选择应用到每个操作。

  8. 选择选择之前步骤的输出框打开动态内容菜单。 搜索正文,然后在分析 JSON 下选择 Body 变量。

  9. 选择插入新步骤 (+),然后选择添加操作。 选择变量连接器,然后选择追加到字符串变量操作。

  10. 对于名称,选择 ListOfAccounts。 复制以下文本并将其粘贴到框中:

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

    “应用到每个”操作的屏幕截图。

  12. 将值返回 Microsoft Copilot Studio 操作中,添加文本输出。 对于名称,输入 FoundAccounts。 对于,选择 ListOfAccounts

    将值返回 Microsoft Copilot Studio 操作的屏幕截图。

  13. 选择保存

从 Microsoft Copilot Studio 调用流

  1. 在 Microsoft Copilot Studio 创作画布上,选择添加节点 (+),然后选择调用操作

  2. 选择您之前创建的流搜索客户

  3. 对于组织从以下位置获取值,选择 organization 变量。

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

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

    与代理的对话的屏幕截图,该对话已回复找到的帐户列表。

  6. 选择保存

  7. Test 代理(测试 #)窗格中测试代理

    测试代理窗格中的代理对话的屏幕截图。