Power BI Toolkit 中的智能代理交互示例

在当今的数据驱动世界中,Power BI 是一种强大的商业智能工具。本文将展示如何使用一种智能代理与 Power BI 数据集进行交互。这个代理不仅可以回答关于数据集的一般性问题,还能从错误中恢复。请注意,本示例在 active development 阶段,返回的结果可能不全准确。代理通过 executequery 端点运行,该端点不允许删除操作。

技术背景介绍

Power BI 是一种业务分析工具,允许用户对数据进行可视化和分析。本示例主要基于 Azure 身份验证和 OpenAI 的大语言模型(LLM)进行查询构建和执行。可使用 azure.identity 包进行身份验证(安装方式为 pip install azure-identity)。代理也可以用字符串形式的 token 创建 Power BI 数据集,而无需凭证。此外,可提供用户名来代入角色使用启用 RLS 的数据集。

本示例工具包利用 LLM 从问题生成查询,主要测试了 gpt-3.5-turbo-instruct 模型,且在语境理解上有良好表现。

核心原理解析

初始化需要以下几个关键步骤:

  1. 身份验证设置:使用 Azure 的 DefaultAzureCredential 进行认证。
  2. 工具包和代理配置:包括 Power BI 数据集和 LLM 的设置。
  3. 代理运行:通过 agent_executor 执行查询或描述任务。

代码实现演示

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>",  # 替换为实际数据集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")

应用场景分析

这种交互代理特别适合数据科学家和分析师快速探索和查询数据,而不需要精通 DAX 或 SQL。通过使用 LLM 和 Power BI 集成,用户可以自然语言形式请求数据分析,降低学习和使用门槛。此外,应用于启用 RLS 的数据集时,用户可以查看特定角色下的数据。

实践建议

  • 安全性:确保使用安全的 Azure 凭据及适当的访问控制。
  • 性能优化:根据查询复杂度调整 max_tokenstemperature 以优化响应时间和准确性。
  • 错误处理:在生产环境中,添加异常捕获以处理潜在的运行时错误。

如果遇到问题欢迎在评论区交流。
—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值