使用 Power Fx 创建表达式

重要提示

继在生成式人工智能的重大投资和跨 Microsoft Copilot 的增强集成之后,Power Virtual Agents 功能和特性现已成为 Microsoft Copilot Studio 的一部分

在我们更新文档和培训内容时,一些文章和截图可能会参考 Power Virtual Agents。

Power Fx 是一种使用类似 Excel 的公式的低代码语言。 使用 Power Fx 创建允许助手操纵数据的复杂逻辑。 例如,Power Fx 公式可以设置变量的值、解析字符串或在条件中使用表达式。 有关详细信息,请参阅 Power Fx 概述公式参考

备注

Microsoft Copilot Studio 中的 Power Fx 公式使用美式计数法。 即,小数分隔符是一个句点或点,如 12,567.892 中那样。 这意味着 Power Fx 参数必须用逗号 (,) 分隔

先决条件

在公式中使用变量

要在 Power Fx 公式中使用变量,您必须为其名称添加前缀以指示变量的范围:

例如,要在公式中使用系统变量 Conversation.Id,您需要将其引用为 System.Conversation.Id

“输入公式”窗格的屏幕截图,其中具有一个包含系统变量的表达式。

在公式中使用文本值

除了可以在 Power Fx 公式中使用变量之外,还可以输入文本值。 要在公式中使用文字值,您必须以与其类型对应的格式输入文字值。 下表列出了数据类型及其相应文字值的格式。

类型​​ 格式示例
String "hi""hello world!""copilot"
布尔型 truefalse
数字 15325.258-9201
[1][45, 8, 2]["cats", "dogs"]
记录 { id: 1 }{ message: "hello" }{ name: "John", info: { age: 25, weight: 175 } }
日期/时间 Time(5,0,23)Date(2022,5,24)DateTimeValue("May 10, 2022 5:00:00 PM")
单选 不支持
空白 Blank()

使用 Power Fx 设置变量

在此示例中,我们将使用 Power Fx 表达式存储客户的名称并以大写字母将其输出。

  1. 创建主题并添加问题节点。

  2. 对于输入消息,请输入 What is your name?

  3. 识别下面,选择实体人员姓名

  4. 选择将响应另存为下的框,然后选择变量 Var1 并将其命名为 customerName

    突出显示名为 Var1 的变量的问题节点的屏幕截图。

  5. 问题节点下,选择 +,然后选择设置变量值

  6. 选中设置变量下的方框,然后选择新建,并将其命名为 capsName

  7. 目标值框中,选择 > 箭头,然后选择公式选项卡。

  8. fx 框中,输入 Upper(Text(Topic.customerName)),然后选择插入

    “设置变量”节点中 Power Fx 公式的屏幕截图,“公式”选项卡突出显示。

  9. 问题节点下,选择 +,然后选择发送消息

  10. 输入 HELLO ,选择 {x},然后选择 capsName

    “发送消息”节点的屏幕截图,其中包含定义的消息。

使用 Power Fx 公式作为条件

若要评估更复杂的表达式,请设置条件节点以使用 Power Fx 公式。

在本例中,助手确定预订日期是否有资格享受折扣。 为此,它会检查客户提供的预订日期是否距当前日期相差 14 天或更长时间。

  1. 创建主题并添加问题节点。

  2. 对于输入消息,请输入 Booking date?

  3. 识别下面,选择实体日期和时间

  4. 选择将响应另存为下的框,然后选择变量 Var1 并将其命名为 bookingDate

    问题节点的屏幕截图,其中选择了日期和时间实体并且设置了变量。

  5. 选择加号 + 图标,然后选择添加条件

  6. 条件节点中,选择节点菜单 (),然后选择更改为公式

    突出显示“节点菜单”图标和“更改为公式”的条件节点的屏幕截图。

  7. 函数框中,选择 > 箭头,然后选择公式选项卡。

  8. fx 框的内容替换为公式 Topic.bookingDate > (DateAdd (Now(), 14)),然后选择插入

  9. 条件节点下,添加一个发送消息节点,并输入消息 You qualify for a discount

  10. 所有其他条件节点下,添加一个发送消息节点,并输入消息 Sorry, you don't qualify for a discount

    条件节点中消息节点的屏幕截图。