数学和数据查询的生成式 AI 策略

目前,对于 ChatGPT 或其他语言模型等工具处理数学和数据查询的能力存在不同意见。 在本文中,我们将确定在 Copilot Studio 中构建处理数学和数据查询的智能体时的策略并设定期望值。

本文中数学和数据查询的定义

本文的目的不是评估生成式 AI 是否可以帮助计算矩形的周长或圆的直径。 数学,在这里指的是某人会向智能体提出的典型自然语言问题。 这些问题假定人工智能可以汇总和解释用于建立模型的知识源或数据表中的总和、平均值和趋势。

在这种情况下,期望的结果不是回答数学方程式。 相反,它是为了帮助用户更有效地评估或理解数据。 当用户需要进行深度数据分析时,例如需要高级预测性或规范性分析,定制智能体通常不是首选工具。 但是,Microsoft 堆栈中有几个代理更直接地专注于分析。 例如,以下代理为此目的使用 Microsoft 应用程序代码补充语言模型:

自然语言理解中的数据聚合

当我们将代理建立在我们自己的知识源中时,我们简化了用户用自然语言请求的信息的发现。 请记住,语言模型旨在预测序列中的下一个单词,而不是执行严格的数学运算。 但是,它们仍然可以提供有用的见解和解释。 与浏览关键词搜索结果或手动滚动浏览表格中的所有记录相比,这些洞察力能更快地发现信息。

Copilot Studio 智能体可以代表我们扫描知识源。 这些智能体会汇总不同主题、操作和知识源的答案,无论它们是否涉及数字数据的集合。 然而,当我们用数据为模型奠定基础时,我们必须将人工智能响应所需的数据置于上下文中。 基于这种理解,我们知道何时应该提供更多的上下文或主题节点。 当在数据源中发现利基术语或高度技术性的措辞时,这种额外的理解是相关的。 以下是涉及数学表达式的数据查询示例:

示例问题 考虑事项
我们在北美有多少客户购买了产品 X? 此提示涉及关系数据库中的多个结构化表,并且通常会查看数百甚至数千条记录。
飓风过后,维修工作项目的总成本影响是多少? 这个提示涉及一个已修项目表,每个工作项目都有一列表示成本影响。 如果表中的修复数多于与飓风相关的工作项,则 AI 需要一个类别或原因列来了解哪些与飓风相关。
我们的哪些客户提交的更改请求最多? 此提示涉及一个包含更改请求的表,以及包含客户名称的相关表。 但是,这将首先对客户的请求进行计数,然后返回请求数最多的客户(而不是最高的成本影响美元值)。

提示清晰度和结构

语言模型很大程度上依赖于问题的措辞。 一个结构良好的提示,清楚地解释数学问题,定义变量,并将任务分解为步骤,导致更准确的回复。 例如,要求直接回答一个简单的算术问题可能很有效,但没有明确上下文的模糊或多层次的问题可能会混淆模型。

下面是一些基于结构化知识源(如 Dataverse 表格)的提示示例。 如下图所示,该示例说明了如何添加 Power Apps Dataverse 表格。

Power Apps Dataverse 表截图。

Dataverse 表被添加为知识源,并给出了准确的知识描述以及同义词和词汇定义,以帮助人工智能解释数据。

突出显示说明的知识源的屏幕截图。

知识源的屏幕截图,其中突出显示了同义词和词汇表定义。

特定提示

这些提示是特定的,并且范围限定为所请求的信息。

  • “您能否提供有关变更通知单参考 PCO-1003 的完整详细信息,包括帐户名称、请求的金额和请求原因?”
  • “2024 年 8 月有多少账户提交了变更请求?”
  • “迄今为止请求的变更单总数是多少?”
  • “哪个客户在 2024 年提交了最大的成本影响?”

通用提示

这些提示是通用的,不太可能一致地聚合所有结果,可能只返回前三个结果。

  • “请按各自收入的顺序列出我们的账户。”
  • “请列出今年 8 月提交的变更请求,并包括变更金额和状态。”
  • “您能列出迄今为止提交的所有变更单请求吗?”

备注

启用或禁用人工智能使用自身常识的能力会影响返回答案的准确性或适当性。

提示和技巧

以下是使用 Copilot Studio 时的一些建议,可帮助您对依赖数学表达式的生成式答案设定期望值。

  • 规划突出显示热门趋势的方案,而不是期望对数千条记录进行计算。 提高对这种总结而不是逐项列出的对话方法的认识。

  • 支持结构化知识源(表格而不是非表格)以优化数学表达式。

  • 支持特定方案,并了解差异的依赖关系。 例如,请注意这两个问题之间的区别:

    • 我们的哪些客户提交的更改请求最多? 计算请求 ID,并返回请求最多的客户 - 忽略其他列

    • 在变更请求中,哪些客户的成本影响最大? 按客户对成本影响列求和,并返回提交最高总金额的客户。 仅当它找到基于数字或货币的相应列时,它才会返回此信息。

  • 请务必标识并定义用于计算的任何数值列。 确保在知识源级别以及在任何 Copilot Studio 变量中使用时,使用适当的数据类型对其进行格式化。 如果可能,请包含清晰的描述,并在表、列或操作描述中包含相关列的常见同义词。

    小费

    通过自然语言理解,如果表标题的命名协议过于技术化,则 AI 可能无法回答对话流中提出的以人为中心的问题。 通过用户使用的典型措辞添加描述符。

  • 认识到人们只能通过他们有权查看的数据获得答案。 例如,Dataverse 中的销售表可能只向特定业务组公开某些记录,而不是所有记录。 因此,请确保您的代理不会对数据汇总方式设置错误的期望。 例如,对 2024 年总销售额的请求仅对拥有或共享的记录求和。

  • 始终设定消费者对 AI 驱动答案的期望。 使用智能体对话开始主题触发器后的第一条信息,轻轻突出一个或多个相关知识源的目的和限制。

使用 AI Builder 提示操作

通过提示操作,您可以将 Power Apps 中的生成式人工智能功能添加到 Copilot Studio 中的智能体和解决方案中。 此功能允许您执行分类、摘要、草稿内容生成、数据转换等任务。 通过提示操作,您还可以定制生成式人工智能响应,以使用表格中的特定筛选器和聚合。

在下面的截图中,您可以看到 Copilot Studio Maker 如何使用 Copilot Studio 中的 AI Builder 提示操作来汇总账户表和相关 PCO 表中的变更单请求。

在 Copilot Studio 中显示 AI Builder 提示的截图。

在前面的示例中,未使用代理的知识源。 提示包括帐号动态提示变量和作为数据的 Dataverse 表。

小费

相关表由 AI 假设,在这种情况下不需要添加。 (PCO 表与账户之间是多对一的关系)。