ChatGPT+Power BI=人工智能的天作之合

原创:      2023-06-06 12:18

图片

本文翻译自Gabe Araujo, M.Sc.的文章—《ChatGPT + Power BI = A Match Made in AI Heaven! 》来源:Medium  在文章的最后,我将演示如何使用Python将ChatGPT与Power BI集成。


将ChatGPT这样的语言模型整合到Power BI中,可以改变数据分析师和商业智能专家的游戏规则。

这是一个具有成本效益的方法,可以帮助你进行DAX查询,加快你的工作流程,它可以帮助你建立更准确、更有洞察力的报告,推动商业决策。

因此,如果你想把你的Power BI技能提高到一个新的水平,可以考虑把ChatGPT整合到你的工作区。只需点击几下,你就可以开始比以前更快、更有效地获得你需要的答案。

在这篇文章中,我将向你展示如何将ChatGPT集成到Power BI中以帮助进行DAX查询。使用AI助手功能可以帮助你快速找到你需要的答案,并加快你的工作流程。所以,让我们开始吧!

为什么要将ChatGPT整合到Power BI中?

作为Power BI的用户,你已经知道这个工具在数据可视化和分析方面有多么强大。然而,即使是最有经验的用户有时也会在复杂的DAX查询中挣扎,特别是在处理大型数据集时。

通过将ChatGPT集成到您的Power BI工作区,您可以快速获得问题的答案,找到相关信息,并加快您的工作流程。ChatGPT可以帮助你完成一系列的任务,从计算度量和建立复杂的计算到排除错误和优化查询。

将ChatGPT整合到Power BI中需要一些专业技术知识,因为你需要使用Power BI的自定义可视化功能以及API调用来与ChatGPT的API进行交互。

下面是一个分步指南,帮助你将ChatGPT整合到Power BI中:

  1. 注册获得OpenAI的API密钥:要访问ChatGPT的API,您首先需要一个API密钥。
  2. 通过访问https://www.openai.com/api/,从OpenAI注册一个API密钥。
  3. 在Power BI中创建自定义视觉:你可以使用TypeScript和D3.js在Power BI中创建自定义视觉。
  4. 要为自定义可视化开发设置环境,请遵循微软的官方指南:https://docs.microsoft.com/en-us/power-bi/developer/visuals/environment-setup。
  5. 创建一个新的自定义可视化项目:使用Power BI的命令行工具来创建一个新的自定义可视化项目。
  6. 打开一个终端或命令提示符,然后运行:


pbiviz new chatgpt_visual
cd chatgpt_visual
pbiviz start


添加API调用功能:在你的新的自定义视觉项目中,修改src/visual.ts文件以包括对ChatGPT进行API调用的必要代码。

你将需要使用一个库,如'axios'来进行HTTP请求。通过运行npm install axios来安装它。

然后,修改src/visual.ts文件,添加必要的导入和一个函数来调用ChatGPT API:

import * as axios from'axios';

async function callChatGPTAPI(prompt: string, apiKey: string): Promise<string> {
   constresponse = await axios.default.post('https://api.openai.com/v1/engines/davinci-codex/completions', {
       prompt: prompt,
       max_tokens: 50,
       n: 1,
       stop: null,
       temperature: 1,
   }, {
       headers: {
           'Authorization': `Bearer ${apiKey}`,
           'Content-Type': 'application/json'
       }
   });
   return response.data.choices[0].text;
}


在你的视觉更新函数中使用API调用:修改src/visual.ts文件中的更新函数,调用ChatGPT的API并显示结果。例如,你可以使用一个文本元素来显示ChatGPT的响应。

publicupdate(options: VisualUpdateOptions) {

   // Add your Power BI visual update code here
   // ...
// Call the ChatGPT API with a sample prompt and your API key
   callChatGPTAPI("Integrate Power BI with ChatGPT", "<your_openai_api_key>")
       .then(response => {
           // Display the response in a text element
           const textElement = this.target.append("text")
               .attr("x", 10)
               .attr("y", 50)
               .text(response);
           // Update the text element with the response from ChatGPT
           textElement.text(response);
       })
       .catch(error => {
           console.error("Error calling ChatGPT API:", error);
       });
}


打包并导入定制的视觉效果:一旦你完成了代码,通过在终端运行pbiviz软件包来打包自定义视觉。

这将在dist文件夹中生成一个.pbiviz文件。

在Power BI中,通过选择 "可视化 "窗格中的省略号(...),点击 "从文件导入",并选择生成的.pbiviz文件,导入自定义的可视化。

图片

在你的报告中使用自定义视觉:通过从 "可视化 "窗格中选择,将自定义可视化添加到你的Power BI报告中。

由于自定义的视觉效果使用了ChatGPT API,你可能想提供一种方法让用户输入提示信息,并在视觉效果中显示回应。

图片

这里有一个DAX查询的例子,你可以向ChatGPT提问:

每个产品类别的总销售额是多少?

而这里是DAX表达式的代码片段,你可以用它来实现同样的结果:

TotalSales= SUM('Sales'[Amount])


通过将ChatGPT整合到Power BI中,你可以快速得到问题的答案,并加快你的工作流程。这里还有一些你可以问ChatGPT的DAX查询的例子:

本季度的总销售额是多少?

上个月每个客户的平均收入是多少?

每个地区今年迄今为止的收入是多少?


ChatGPT还可以帮助你排除DAX表达式中的错误。

例如,如果你收到类似 "检测到一个循环依赖 "的错误信息,你可以向ChatGPT寻求帮助,并指导你按步骤解决这个问题。

专业提示:在建立复杂的DAX表达式时,你可以使用 "AI Chatbot "的视觉效果来节省时间。你可以要求ChatGPT帮助你逐步建立表达式,而不是手动打出每一个计算结果。这可以为你节省大量的时间和精力,特别是在处理大型数据集的时候。

要使用Python将ChatGPT与Power BI集成,你可以按照以下步骤进行:

图片

在Power BI Desktop中启用Python

如果尚未启用,要在Power BI Desktop中启用Python,请按照以下步骤进行:

  1. 安装Python:你需要在你的电脑上安装Python。你可以从官方网站(https://www.python.org/downloads/)下载并安装Python。
  2. 安装Python后,你需要在Power BI Desktop中安装Python集成功能。
  3. 打开Power BI Desktop,进入文件->选项和设置->选项-> Python脚本。勾选 "Python脚本 "并点击 "确定"。这将在Power BI Desktop中启用Python脚本。
  4. 启用Python脚本后,你需要在Power BI Desktop中设置Python路径。
  5. 转到文件->选项和设置->选项->Python脚本。点击 "Detect "来自动检测Python的安装路径,或者你可以通过点击"... "并选择Python可执行文件来手动设置路径。
  6. 重新启动Power BI桌面:设置完Python路径后,你需要重启Power BI Desktop以使变化生效。


安装必要的Python库:

  • openai:这是一个提供访问ChatGPT模型的库。
  • pandas:这个库用于创建和操作数据帧。
  • pyodbc:这个库用来连接到Power BI数据源。


你可以通过在终端或命令提示符中运行以下命令,使用pip安装这些库:

pip install openai pandas pyodbc


认证和设置OpenAI的API:

  • 在OpenAI网站上创建一个账户并获得一个API密钥。
  • 通过运行 pip install openai 来安装 OpenAI Python 库。
  • OPENAI_API_KEY环境变量设为你的API密钥。


你可以通过运行以下Python代码来验证和设置OpenAI的API:

import openai_secret_manager  assert"openai"in openai_secret_manager.get_services() secrets = openai_secret_manager.get_secret("openai")  
# Set up the OpenAI API client
import openai openai.api_key = secrets["api_key"]


定义一个查询ChatGPT模型并返回响应的函数:

defquery_chatgpt(prompt):     response = openai.Completion.create(         engine="text-davinci-002",         prompt=prompt,         max_tokens=1024,         n=1,         stop=None,         temperature=0.7,     )     message = response.choices[0].text.strip()     return message


query_chatgpt函数接受一个提示作为输入,将其发送到ChatGPT模型,并返回响应。

使用pyodbc连接到Power BI的数据源:

import pyodbc  # Set up the connection string server = 'your-server-name' database = 'your-database-name' username = 'your-username' password = 'your-password' cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+password)


编写一个Power Query函数,调用query_chatgpt函数并将响应作为一个表返回:

将Python脚本发布为PowerBI中的数据源:

  • 打开Power BI桌面,进入 "主页 "标签。
  • 点击'转换数据'。
  • 点击'新源'->'Python脚本'。
  • 输入Python脚本并点击'确定'。
  • 点击'关闭并应用'。


在你的Power BI报告中使用ChatGPT数据源:

  • 转到'报告'标签。
  • 点击'获取数据'->'更多'。
  • 选择'Python脚本'数据源并点击'连接'。
  • 输入你想发送给ChatGPT模型的提示。
  • 来自ChatGPT模型的响应将在Power BI报告中显示为一个表格。


注意:确保将代码中的占位符(如你的服务器名称、你的数据库名称、你的用户名和你的密码)替换为你环境的实际值。

最后的想法

将ChatGPT集成到Power BI中是一个很好的方法,可以加快你的工作流程,提高分析的准确性,并迅速得到你需要的答案。

按照本文所述的步骤,你可以马上开始使用ChatGPT来帮助你进行DAX查询。


转载请注明出处!


延伸阅读:
DAX中不同数据类型的舍入误差
使用Group By Columns优化SWITCH对切片器的选择
Power BI新功能解析 | 使用度量值的动态格式字符串实现基于货币符号的汇率换算
使用新的DAX窗口函数计算客户终身价值
仪表板设计的注意事项



如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。点击左下角“阅读原文”可直达云课堂。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。                
图片



长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~
 
图片


客户案例

按行业 按部门

线上课程

课程直通 讲师介绍

官方微信

联系我们

北京

13811982114
agileex@agileex.com

北京市朝阳区博雅国际中心A座601

上海

13811982114
agileex@agileex.com

上海市静安区沪太路453号302室

Copyright © 2022 北京敏捷艾科数据技术有限公司agileex.com - 京ICP备16008845号-1