解锁Power BI数据集的潜力:使用PowerBI Toolkit智能查询

143 阅读2分钟
# 引言

Power BI是一个强大的商业智能工具,帮助企业分析和展示数据。而将自然语言处理能力集成到Power BI中,可以进一步简化数据查询的过程。本文将探讨如何使用PowerBI Toolkit,通过一个智能代理来与Power BI数据集进行交互,以便快速获取数据洞察。

# 主要内容

## 1. 工具包概述

PowerBI Toolkit是一个为Power BI数据集创建智能代理的工具,旨在通过大语言模型(LLM)将自然语言问题转换为可执行的查询。工具包利用了`azure-identity`进行认证,支持通过令牌或用户名对RLS(Row-level Security)进行模拟操作。

## 2. 使用智能代理

智能代理通过进行初始化并与数据集联动,来执行询问和查询操作。可以通过`create_pbi_agent`函数创建一个代理,该代理使用LLM执行从问题到查询的转换。

## 3. 初始化

```python
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

# 初始化LLM
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?")

# 针对特定维度进行查询
agent_executor.run("How many records are there by dimension1 in table2?")
agent_executor.run("What unique values are there for dimensions2 in table2")

常见问题和解决方案

1. 认证问题

  • 问题:认证失败,无法使用DefaultAzureCredential
    • 解决方案:确保Azure身份验证信息设置正确,可以尝试使用令牌认证。

2. 查询不准确

  • 问题:智能代理返回的查询不准确。
    • 解决方案:通过提供更多的上下文示例来校正模型。例如,通过few_shots示例提升查询准确率。

总结和进一步学习资源

本文介绍了PowerBI Toolkit如何通过智能代理帮助用户与Power BI数据集进行交互。扩展阅读包括工具的概念指南和使用指南。

参考资料

  1. Azure Identity
  2. Langchain Community Packages
  3. OpenAI GPT-3.5 Turbo 和 GPT-4 模型

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!


---END---