创建并编辑主题

在 Copilot Studio 中,主题定义了助手对话如何进行。

若要创作主题,您可以自定义提供的模板、从头开始创建主题或说明您想要的内容,让 AI 创建主题

在 Copilot Studio 中,主题表示用户和助手之间对话线索的某个部分。 您可以在创作画布上定义和处理主题。主题包含一个或多个对话节点,这些节点共同定义了主题可以采用的对话路径。 每个节点都执行一个操作,如发送消息或提出问题。

通常,主题有一组触发短语—客户可能会使用的与特定问题相关的短语、关键词和问题。 Copilot Studio 助手使用自然语言理解、客户信息和所有话题的触发短语来寻找最佳触发话题。 消息不需要与主题的触发短语完全匹配即可触发主题。 例如,关于商店营业时间的主题可能包含触发短语 check store hours。 如果顾客输入“查看商店营业时间”,这将触发您的商店营业时间话题。

先决条件

自然语言理解

助手使用自然语言理解 (NLU) 来解析客户键入的内容,并找到最佳的触发短语或节点。

例如,用户可以键入“营业时间”。助手将其与商店营业时间主题进行匹配,开始对话,询问客户对哪家商店感兴趣,然后显示商店的营业时间。

测试助手窗格显示了助手对话在每一步的进展情况。 您可以使用测试助手窗格来微调主题,而不必退出 Copilot Studio 门户网站。

有关助手和主题限制,请参阅配额、限制、应用程序注册、证书和配置值

Copilot Studio 中的主题

主题类型

助手可以包括两种类型的主题:系统自定义主题。 每个新助手以一组预定义的系统主题和自定义主题开始。

  • 系统主题支持基本行为,例如与某人交谈或结束对话的自定义请求。 一些系统主题有触发短语,您可以根据助手的需求进行定制。

    • 您无法创建系统主题。
    • 您不能删除系统主题,但可以禁用它们。
    • 您可以更改系统主题。 但是,在您习惯创建完整的助手体验之前,我们不建议您编辑系统主题。

    有关详细信息,请参阅使用系统主题

  • 预定义的自定义主题涵盖常见行为,如问候客户、结束对话或重新启动对话。

    • 您可以更改预定义的自定义主题,或将其从您的助手中完全移除。
    • 您创建的所有主题都是自定义主题。

节点类型

以下是可用的节点类型:

选项 Description
发送邮件 给客户发送消息。
提出问题 向客户提问。
使用自适应卡询问 创建一个 JSON 代码片段来与其他应用程序交换。
使用条件创作 根据条件转移对话。
变量管理 设置值、解析值或清除所有变量。
管理主题 重定向、传输或结束主题或对话。
调用流 调用类似 Power Automate 或 Excel Online 的流,或者使用连接器或插件。
高级 生成式答案HTTP 请求事件等等。

小费

重命名节点,使其更容易识别。 选择节点的名称字段以直接更新名称,或者选择节点的更多图标 (),然后从菜单中选择重命名您还可以在代码编辑器中重命名节点

无法重命名 扳机键转到步骤 节点。

节点名称最长可达 500 个字符。

创建主题

  1. 助手页面上的列表中打开您的助手。 为了获得更好的可视性,请暂时关闭测试助手面板。

  2. 在顶部菜单栏上,选择主题

  3. 选择添加主题,然后选择从空白

    触发器节点出现在空白的主题创作画布上。

  4. 选择触发器节点的更多图标 (),然后选择属性。 将显示识别的意图属性面板。

  5. 识别的意图属性面板中,选择短语区域。 此时会出现短语二级面板。

  6. 添加短语下,为您的主题输入一个触发短语。

    您的助手需要 5 到 10 个触发短语来训练 AI 理解您的客户的回复。 若要添加更多触发短语,您可以:

    • 选择文本字段旁边的添加图标,并输入所需的短语。
    • 粘贴一组触发短语,每个短语单独一行,然后选择输入
    • 键入一组触发短语,在每个短语后按 Shift+Enter,将其放在单独的一行上,然后选择Enter

    您可以在触发短语中包含标点符号,但最好使用短句而不是长句。

  7. 选择工具栏上的详细信息,打开主题详细信息面板。

  8. 添加您的助手主题详细信息:

    • 输入名称以标识主题,如“商店营业时间”。主题页面按名称列出了您的助手中定义的所有主题。
    • 如果需要,请输入一个显示名称,当 Copilot 无法确定哪个主题与客户的消息匹配时,要向客户显示。
    • 如有需要,使用描述字段为您自己和团队中的其他助手制作者描述主题的目的。 客户永远不会看到主题描述。
  9. 选择顶部菜单栏上的保存,保存您的主题。

重要提示

避免在主题名称中使用句点 (.)。 无法导出助手任何主题名称中带有句点的解决方案。

设计主题对话路径

创建主题时,触发器节点会自动出现在创作画布上。 然后,您可以添加不同类型的节点,实现您的主题所需的对话路径。

要在主题创作画布上的另一个节点之后或两个节点之间添加节点:

  1. 选择您要在其下添加新节点的节点下方的添加节点图标

  2. 从出现的列表中选择所需的节点类型

    用于选择在触发器节点后插入节点的选项的屏幕截图。

删除注释

选择More 图标(...),然后选择 Delete(删除)

用于编辑区域上的节点的控件

可以使用工具栏上的控件剪切、复制、粘贴和删除选定节点或选定相邻节点。

用于编辑创作画布上的节点的 toolbar 控件的屏幕截图。

工具栏还有一个撤销编辑的控件。 打开撤消菜单,将所有操作恢复到上次保存的状态,或重做上一个操作。

撤消菜单的屏幕截图。

粘贴节点

使用剪切复制工具将一个或多个节点放入剪贴板后,有两种方法可以将它们粘贴到画布中:

  • 如果选择某个节点,然后选择粘贴,则剪贴板上的节点会插入到所选节点之后。

  • 如果您选择“+”来查看添加节点菜单,然后选择粘贴,剪贴板上的节点将插入到该位置。

为主题添加输入和输出参数

主题可以有输入和输出参数。 当主题重定向到另一个主题时,您可以使用这些参数在主题之间传递信息。

此外,如果您的助手使用生成式模式,它可以从对话上下文中自动填充主题输入,或者在生成问题后从用户那里收集值。 此行为类似于操作的生成式时隙填充的工作方式。

要了解有关主题输入和输出参数的更多信息,请参阅管理主题输入和输出

使用代码编辑器编辑主题

代码编辑器在 YAML 中显示主题,这是一种易于读取和理解的标记语言。 使用代码编辑器复制和粘贴来自其他机器人的主题,甚至是其他作者创建的主题。

重要提示

不完全支持完全在代码编辑器中设计主题以及粘贴复杂主题。

在本例中,您将 YAML 复制并粘贴到代码编辑器中,以快速添加一个向客户询问运输信息的主题。

  1. 主题页面上,选择+ 创建>从空白

  2. 在创作画布的右上角,依次 选择 More(更多),然后选择 Open code editor(打开代码编辑器)。

    如何打开主题的代码编辑器的屏幕截图。

  3. 选择并删除代码编辑器的内容。 然后复制并粘贴以下 YAML 代码:

    kind: AdaptiveDialog
    beginDialog:
      kind: OnRecognizedIntent
      id: main
      intent:
        displayName: Lesson 3 - A topic with a condition, variables and a prebuilt entity
        triggerQueries:
          - Buy items
          - Buy online
          - Buy product
          - Purchase item
          - Order product
    
      actions:
        - kind: SendMessage
          id: Sjghab
          message: I am happy to help you place your order.
    
        - kind: Question
          id: eRH3BJ
          alwaysPrompt: false
          variable: init:Topic.State
          prompt: To what state will you be shipping?
          entity: StatePrebuiltEntity
    
        - kind: ConditionGroup
          id: sEzulE
          conditions:
            - id: pbR5LO
              condition: =Topic.State = "California" || Topic.State = "Washington" || Topic.State     = "Oregon"
    
          elseActions:
            - kind: SendMessage
              id: X7BFUC
              message: There will be an additional shipping charge of $27.50.
    
            - kind: Question
              id: 6lyBi8
              alwaysPrompt: false
              variable: init:Topic.ShippingRateAccepted
              prompt: Is that acceptable?
              entity: BooleanPrebuiltEntity
    
            - kind: ConditionGroup
              id: 9BR57P
              conditions:
                - id: BW47C4
                  condition: =Topic.ShippingRateAccepted = true
    
              elseActions:
                - kind: SendMessage
                  id: LMwySU
                  message: Thank you and please come again.
    
  4. 选择保存,然后选择关闭代码编辑器问题节点现在有许多关于运输的条件。

    Copilot Studio 代码编辑器中从 YAML 创建的对话的屏幕截图。

测试并发布您的助手

对您的主题进行更改时,请测试您的助手,以确保一切按预期运行。

设计并测试助手后,将其发布到网络、移动或本地应用程序,或 Microsoft Bot Framework 渠道