You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI与REST API集成:基于切片器调值调用预测API方案

Power BI调用Flask预测API实现交互式特征调整方案

完全可以实现这个需求,以下是具体落地方向:

一、先搞定切片器与特征调整逻辑

  • 给每个特征创建一个百分比调整参数:比如特征1调整比例,类型选百分比,范围按需设置(比如-50%到+50%)
  • 基于原始数据集,为每个特征生成调整后的值:新建计算列,公式为调整后特征1 = 原始特征1 * (1 + 特征1调整比例),10个特征对应创建10个此类计算列
  • 确保调整后的数据与原数据集的1000行一一对应,每行都保留完整的调整后特征集合

二、调用API的两种可行方式

方式1:Power Query自定义函数(推荐,更贴合Power BI生态)

  1. 编写Power Query函数处理API请求:
let
    调用预测API = (输入特征列表 as list) =>
        let
            构造JSON = Json.FromValue([input_features = 输入特征列表]),
            发送请求 = Web.Contents("你的Flask服务地址", [
                Headers = [
                    #"Content-Type" = "application/json"
                ],
                Content = 构造JSON,
                ManualStatusHandling = {400, 404, 500}
            ]),
            解析响应 = Json.Document(发送请求),
            提取预测结果 = 解析响应[predictions]
        in
            提取预测结果
in
    调用预测API
  1. 将调整后的数据集转换为嵌套列表(每行对应一个特征数组),调用上述函数获取所有预测结果
  2. 将预测结果与原数据集关联,用于后续可视化

方式2:使用Power BI内置Python脚本

  1. 在Power BI的「转换数据」中添加Python脚本,读取调整后的数据集
  2. 用Python的requests库发送POST请求:
import requests
import pandas as pd

# 读取Power BI传入的调整后数据
df = dataset

# 将每行特征转换为列表,拼成API要求的格式
input_features = df[["调整后特征1", "调整后特征2", ..., "调整后特征10"]].values.tolist()

# 调用Flask API
response = requests.post("你的Flask服务地址", json={"input_features": input_features})
predictions = response.json()["predictions"]

# 将预测结果转为DataFrame返回给Power BI
result_df = pd.DataFrame({"预测结果": predictions})
  1. 将返回的结果与原数据集合并,完成可视化准备

三、配置交互与可视化

  • 将每个百分比参数绑定到对应的切片器,用户调整切片器时,Power BI会自动更新调整后的特征值
  • 开启自动刷新:在Power Query中设置「允许数据刷新时重新运行查询」,确保切片器调整后自动调用API获取新预测结果
  • 用柱状图、折线图等组件展示原始预测结果与调整后结果的对比,让用户直观看到特征调整的影响

内容的提问来源于stack exchange,提问作者Bhavkeerat Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 17:18:27