当前位置: 首页 > article >正文

调整建模让 Power BI Copilot 得到更好结果

每个人都对 Power BI Copilot 感到兴奋,新发布的预览版能够使用 Copilot 询问有关语义模型中的所有数据的问题,而不仅仅是报告中显示的数据,这是一个巨大的进步。

更多Power BI Copilot 的内容,请参考:

Copilot in Power BI等了好久终于等到今天

Copilot in Power BI详细使用说明

PowerBI Copilot已全面支持中文识别

PowerBI Copilot 零售数据分析自动化报告实战

PowerBI Copilot淘宝用户行为数据分析实战

Copilot for Power BI已在查看和编辑模式下可用

Power BI Copilot银行信贷数据分析实战

有关Copilot for Power BI的最新进展

震撼发布:使用Copilot自动生成DAX查询

使用 Copilot 深入了解 DAX 查询视图

Power BI Desktop中的Copilot终于来了!

Copilot in Power BI Desktop问题答疑

如何在 Power BI 中使用 Copilot

Copilot in Power BI更强大,来自于2405更新

Copilot for Power BI 正式发布

针对 Power BI 语义模型向 Copilot 提问

Copilot in Power BI 所有账号都可以使用

Power BI Premium成为历史Fabric挑起Copilot大梁

Copilot for Power BI对数据模型有哪些要求

Copilot in Power BI for Fabric Data Factory 概述

使用 Copilot 在 Power BI 服务中增强报表创建功能

以下内容翻译自Chris Webb 的 BI 博客,有删改。

无论幕后使用的 LLM 多么令人惊叹,您的用户从这个新的 Copilot 预览版中获得的结果质量取决于您作为开发人员控制的许多因素。如何对数据进行建模非常重要,正如公告博客所提到的,最初为 Copilot 的前身功能 Q&A 添加的语言架构也是如此。Copilot 返回的结果比 Q&A 提供的结果要好得多,但 Copilot 和 Q&A 的语言架构提供的额外信息(除非你告诉 Copilot 否则无法知道的信息)的结合使 Copilot 更加强大。此外,您无需编辑 YAML 文件即可使用此功能,因为语言架构的大部分功能现在都可以在 Power BI Desktop 的 Q&A 设置对话框中进行编辑。

在这篇博文中,我将向你展示几个示例,说明在查询语义模型时,添加到模型的语言架构如何改进新的 Power BI Copilot 预览版的结果。

语义模型

假设您拥有一个种植水果的农场。客户访问农场购买水果,您的员工为这些客户采摘水果。将销售数据存储在 Power BI 语义模型中,如下所示:

图片

Orders 表是一个事实数据表,每个订单行有一行。Order ID 列标识每个行项目链接到的订单,Amount 列包含销售额,Units 列包含每行交付的水果数量。Employee 维度提供采摘水果的员工的姓名;Customer 维度提供订购水果的客户的名称;Product 维度提供采摘的水果的名称。产品通过多对多关系与产品组关联。

以下是维度表中的数据:

图片

要从 Copilot 获得最佳结果,请注意:

数据被建模为经典的星型架构。

表名和列名是人类可读的英文,没有缩写,单词之间有空格。在这篇博文中,我谈到了我对 Power BI 命名约定的看法。

所有不应在报表中显示的表和列都已隐藏。

事实表度量列已被隐藏,并且已创建三个显式度量 – Order Amount、Order Units 和 Order Count (这是 Order ID 列上的非重复计数)。

同义词

虽然 Copilot 在此模型上表现良好,但让我们看一个简单的问题,它没有返回预期的结果:

图片

提示返回视觉对象,但仔细检查后,它不是您想要的结果。它显示 Orders 表中的行数,即行项目数,而不是订单数:

图片

要获得正确的结果,您需要告诉 Copilot Order Count 度量通过定义同义词来返回订单数。您可以在 Power BI Desktop 的“同义词”选项卡上的 Q&A 设置对话框中执行此操作:

图片

将 “number of orders” 设置为 Order Count 度量的同义词意味着提示现在返回以下视觉对象,其中包含您想要的结果:

图片

动词

下一个要查看的提示是:

谁采摘了柠檬?

您知道,在我们的农场,采摘水果的是员工,但模型中没有任何内容可以告诉 Copilot。因此,上面的提示导致 Copilot 说它不知道“picked”在这种情况下是什么意思:

图片

在 Q&A 设置 对话框的 relationships 选项卡上,您可以通过定义 Verb 关系来解决此问题:

图片

该关系告诉 Copilot,“员工姓名”选择“产品名称”,订单表连接两列。

有了这种关系,Copilot 正确地回答了 Gabi 是唯一挑选柠檬的员工:

图片

名词

客户 Chris 也被员工广泛称为“Webb 先生”,但该名称并未存储在模型中的任何位置。因此,提示

我们从 Webb 先生那里赚了多少钱?

结果如下,相当合理的响应:

图片

但是,通过设置名词关系来告诉 Copilot “Mr Webb”是一种客户名称,其中客户名称等于“Chris”:

图片

然后,结果就是您所期望的:

图片

动态名词

Copilot 在没有任何优化的情况下很好地处理了产品和产品组之间的多对多关系。例如,提示符:

显示所有 柑橘类水果 及其订购量

返回正确的结果:

图片

但是,假设在这种情况下,您希望显示单个产品,而不是产品组“柑橘类水果”。您可以通过设置动态名词关系来执行此操作:

图片

关系在于“Product group names”定义“产品名称”的种类,而 Product To Product Group 表将两者链接起来。完成此操作后,提示现在返回所需的结果:

图片

结论

这些示例只是触及了语言架构和 Copilot 的可能性的皮毛。除了文档之外,我还发现(相当旧的)“Natural Language for Power BI”YouTube 频道上的视频是在 Q&A 启动时创建的,对于理解这里的概念也很有用。这里有很多东西要学,但通过一些试验和错误,以及听取最终用户的反馈,您应该能够调整 Copilot,使其几乎始终返回高质量的结果。


http://www.kler.cn/news/343061.html

相关文章:

  • mysql学习教程,从入门到精通,SQL处理重复数据(39)
  • T7——咖啡豆识别
  • 【ShuQiHere】 智能代理与软件机器人:引领自动化未来的技术
  • 如何在uniAPP中添加样式
  • 基于ffmpeg实现多路rtsp拉流解码并分别保存
  • 基于YOLOv8-deepsort算法的智能车辆目标检测车辆跟踪和车辆计数
  • Windows多线程编程 互斥量和临界区使用
  • 【Linux 】文件描述符fd、重定向、缓冲区(超详解)
  • 大模型论文集-20241011期
  • MySQL基本语法、高级语法知识总结以及常用语法案例
  • 决策树(descision tree)
  • Docker exec bash -c 使用详解与 Python 封装示例
  • 定制化的新生代 Layer1 代币经济学
  • 算子级血缘在数据全链路变更感知、影响分析场景下的应用
  • 【JAVA+flowable】工作流 获取流程节点 几种方法总结
  • 【Android】限制TextView大小并允许滑动
  • 基于SpringBoot vue 医院病房信息管理系统设计与实现
  • 高级java每日一道面试题-2024年10月5日-数据库篇[MySQL篇]-MySQL为什么InnoDB是默认引擎?
  • 新版 Notepad++ 下载与安装教程
  • MES系统中人机接口设计和开发研究