Data Formulator:微软开源的AI 数据可视化工具

文摘   2025-02-12 09:34   美国  

 

还在为数据可视化头疼?微软研究院的开源项目 Data Formulator,让你告别代码,拥抱 AI!UI 拖拽 + 自然语言,动动手指、说说话,就能搞定复杂图表。无论你是数据小白还是专家,Data Formulator 都能帮你轻松驾驭数据,发现隐藏的洞察,成为数据可视化达人!


数据可视化,AI 时代的“水晶球”

数据时代,信息爆炸。如何从海量数据中挖掘价值、预测趋势?数据可视化,就是你的“水晶球”。它让数据“说话”,一眼洞察本质,发现规律。

想象一下,你是餐厅老板,面对每日营业数据却无从下手。传统工具虽强大,但操作复杂,学习成本高。你可能要花大量时间学习,或求助专业人士,才能做出想要的图表。

现在,AI 让数据可视化迎来变革! AI 工具能自动处理数据、生成图表,还能理解你的自然语言指令。这就像给餐厅老板配了位“AI 参谋”,数据分析从未如此简单高效。

Data Formulator:数据可视化,这么玩!

什么是 Data Formulator?

Data Formulator 是微软研究院的颠覆性 AI 数据可视化工具。它打破传统,将 UI 操作的直观性与自然语言的灵活性完美融合,带来前所未有的体验。

传统工具像“复杂乐高”,Data Formulator 则是“智能积木”,你只需告诉它你想要什么,它就自动帮你完成。

Data Formulator 的核心优势:

  • • 零代码: 告别代码,告别加班!拖拽、点选、说话,就能搞定数据转换和图表生成。

  • • AI 赋能: AI 大模型自动处理数据,生成高质量图表,效率提升十倍!

  • • 灵活迭代: 探索数据就像“寻宝”,Data Formulator 让你随时调整策略,从不同角度反复推敲,直至找到“宝藏”

  • • 开源免费: 人人可用,可修改,可分享,让 AI 的力量惠及每个人。

谁适合使用 Data Formulator?

  • • 数据分析师: 告别繁琐数据处理,专注数据洞察和业务决策。

  • • 业务人员: 快速创建报表,监控关键指标,及时发现问题。

  • • 数据科学家: 验证数据模型,进行数据驱动的实验探索。

  • • 学生/研究人员: 更直观便捷地学习和研究数据可视化。

  • • 其他任何人: 只要你需要与数据打交道,Data Formulator 都是你的得力助手。

深入 Data Formulator 的“魔法”

Data Formulator 就像一位“AI 魔法师”,将复杂过程隐藏在幕后,让你只需关注数据本身,就能轻松创作出惊艳的可视化作品。

多模态交互:UI 与自然语言的“珠联璧合”

Data Formulator 的核心创新,在于其多模态交互界面。 它将传统 UI 操作(拖拽、选择等)与自然语言输入结合,让你“左右开弓”,自由切换,高效操作。

概念编码架(Concept Encoding Shelf):可视化“指挥中心”

概念编码架是 Data Formulator 的核心交互区,就像可视化“指挥中心”。你可以在这里:

  • • 拖拽字段: 像搭积木,将字段拖到视觉通道(x 轴、y 轴、颜色等),定义图表样式和内容。

  • • 输入指令: 直接输入字段名或自然语言描述,告诉 Data Formulator 你想要什么,就像给“AI 魔法师”下指令。

此图展示了 Data Formulator 的用户界面。图中有四个标注,突出了用户界面的关键组成部分。第一个标注描述了“1. 概念编码架:通过字段编码和自然语言指令来指定图表”。第二个标注描述了“2. (局部)数据线程:回溯和修改输入”。第三个标注描述了“3. 数据线程:导航数据派生历史”。第四个标注包含“4. 数据视图:查看原始数据和派生数据”。用户界面的中心包含一个显示可再生能源百分比的可视化图表。
此图展示了 Data Formulator 的用户界面。图中有四个标注,突出了用户界面的关键组成部分。第一个标注描述了“1. 概念编码架:通过字段编码和自然语言指令来指定图表”。第二个标注描述了“2. (局部)数据线程:回溯和修改输入”。第三个标注描述了“3. 数据线程:导航数据派生历史”。第四个标注包含“4. 数据视图:查看原始数据和派生数据”。用户界面的中心包含一个显示可再生能源百分比的可视化图表。

Data Formulator 会智能理解你的意图,自动生成数据转换和图表,就像一位“心有灵犀”的助手。

数据线程(Data Threads):数据探索“时光机”

数据线程是另一大亮点。它记录你每一步操作:数据转换、图表生成、参数调整。

你可以随时通过数据线程回溯历史,查看之前的结果,或在之前图表基础上修改迭代,就像有“时光机”,在数据“历史长河”中自由穿梭。

此图展示了 Data Formulator 数据线程的工作原理。左侧展示了两个数据线程,一个是 2000 年至 2020 年每个国家不同能源发电量的派生过程,另一个是用户派生每个国家每年可再生能源百分比的线程,随后是一个显示这些国家排名的折线图。该图表明,每个图表都由 Python 数据转换代码支持,以派生符合用户指令的数据。右侧展示了用户可以在本地数据线程中执行的操作:(a) 用户可以单击并重新运行之前的指令,(b) 用户可以提供新的指令以继续,(c) 用户可以单击之前的卡片并修改指令后重新运行。
此图展示了 Data Formulator 数据线程的工作原理。左侧展示了两个数据线程,一个是 2000 年至 2020 年每个国家不同能源发电量的派生过程,另一个是用户派生每个国家每年可再生能源百分比的线程,随后是一个显示这些国家排名的折线图。该图表明,每个图表都由 Python 数据转换代码支持,以派生符合用户指令的数据。右侧展示了用户可以在本地数据线程中执行的操作:(a) 用户可以单击并重新运行之前的指令,(b) 用户可以提供新的指令以继续,(c) 用户可以单击之前的卡片并修改指令后重新运行。

图表规范与数据转换:分而治之,合而为一

Data Formulator 的设计哲学:“分而治之,合而为一”

分而治之:解耦复杂任务

图表样式规范(选类型、配通道)与数据转换(筛选、聚合、计算)解耦,让你专注当前任务,无需在不同工具间切换。就像“交响乐”分解为不同乐章,分别练习,最后合奏。

合而为一:UI 与 AI 无缝协作

概念编码架和 AI 引擎将二者无缝整合。同一界面完成全流程,无需代码,就像 UI 和 AI 两位“大师”联手创作。

AI 驱动的数据转换:幕后“魔法师”

Data Formulator 的核心竞争力:强大的 AI 数据转换引擎。 就像幕后“魔法师”,自动理解你的指令,生成 Python 代码执行转换。

支持各种常见转换操作:

  • • 数据筛选: 轻松过滤,例如“只显示最近 30 天数据”。

  • • 数据聚合: 分组、汇总,快速计算,例如“按产品类别计算总销售额”。

  • • 数据排序: 升序、降序,例如“按客户消费金额排序”。

  • • 数据计算: 基于现有字段,计算新字段,例如“计算利润率”。

  • • 数据重塑: 改变结构,例如“‘日期’列拆分为‘年’、‘月’、‘日’”。

自然语言描述需求,Data Formulator 帮你搞定,就像“私人订制”数据专家。

迭代式探索:像“侦探”一样抽丝剥茧

Data Formulator 鼓励你像“侦探”一样,迭代探索。你可以:

  1. 1. 由浅入深: 简单图表开始,逐步添加字段、调整参数、修改条件,不断优化,就像“剥洋葱”。

  2. 2. 回溯追踪: 随时回到之前状态,重新探索,尝试不同方案,就像“时光倒流”。

  3. 3. 对比分析: 多个图表组合,多角度对比,发现隐藏规律,就像“多棱镜”。

此图展示了 Data Formulator 中的用户体验工作流程。左侧展示了数据线程,用户点击一个可视化了 20 个国家可再生能源百分比的折线图,并在主面板中将其展开。中间展示了“概念编码架”,用户提供了一条指令“仅显示二氧化碳排放量前 5 位的国家”。右侧展示了通过 AI 运行用户指令后产生的结果:结果是一个包含三列“Year”、“Entity”、“Renewable Percentage”的表格,并且表格中仅包含二氧化碳排放量前 5 位的国家的数据;同时生成了一个仅包含这五个国家趋势的折线图。该折线图被添加到了数据线程中
此图展示了 Data Formulator 中的用户体验工作流程。左侧展示了数据线程,用户点击一个可视化了 20 个国家可再生能源百分比的折线图,并在主面板中将其展开。中间展示了“概念编码架”,用户提供了一条指令“仅显示二氧化碳排放量前 5 位的国家”。右侧展示了通过 AI 运行用户指令后产生的结果:结果是一个包含三列“Year”、“Entity”、“Renewable Percentage”的表格,并且表格中仅包含二氧化碳排放量前 5 位的国家的数据;同时生成了一个仅包含这五个国家趋势的折线图。该折线图被添加到了数据线程中

多模态交互和数据线程,提供强大迭代支持,让你尽情探索,就像“探险家”在数据“迷宫”中自由穿梭,直至找到“真相”。

代码解析:Data Formulator 的“智慧引擎”

深入剖析核心代码,揭秘“智慧引擎”。

请求处理流程:用户指令到可视化

Data Formulator 后端用 Flask 框架,通过 RESTful API 接收前端请求。处理数据派生请求的关键代码:

@app.route('/derive-data', methods=['GET''POST'])
def derive_data():
    if request.is_json:
        content = request.get_json()        
        # ... 获取模型客户端、输入数据、指令等 ...

        # 判断是数据转换还是推荐
        mode = "transform" if len(new_fields) > 0 else "recommendation"

        # 选择 Agent
        if mode == "recommendation":
            agent = DataRecAgent(client, model)
            results = agent.run(input_tables, instruction)
        else:
            agent = DataTransformationAgentV2(client=model)
            results = agent.run(input_tables, instruction, [f['name'for f in new_fields])

        # 错误修复(最多一次)
        # ...

        # 返回结果
        response = flask.jsonify({ "token": token, "status""ok""results": results })
    else:
        response = flask.jsonify({ "token""""status""error" })

    response.headers.add('Access-Control-Allow-Origin''*')
    return response

代码解读:

  1. 1. 接收请求: 前端点击“Formulate”,发送 POST 请求到 /derive-data

  2. 2. 解析数据: 获取模型信息、输入数据、新字段、指令。

  3. 3. 模式选择: 有新字段为transform,否则为recommendation

  4. 4. Agent 调用: DataRecAgent 推荐,DataTransformationAgentV2 转换。

  5. 5. 错误修复: 若出错,尝试让 LLM 修复代码。

  6. 6. 返回结果: JSON 格式返回结果。

数据处理核心:DataLoadAgent 和 DataTransformationAgentV2

  • • DataLoadAgent “数据管家”,初始加载和预处理。

    • • 接收原始数据,利用 LLM 清洗、分析。

    • • 识别缺失值、异常值、数据类型。

    • • 生成数据摘要。

  • • DataTransformationAgentV2 “数据魔术师”,执行数据转换。

    • • 根据指令和数据,生成 Python 代码。

    • • 支持筛选、聚合、排序、计算等。

    • • “魔法”步骤:

  1. 1. 构建 Prompt: 指令、数据、上下文组合成 Prompt。

  2. 2. 调用 LLM: Prompt 给 LLM,生成 Python 代码。

  3. 3. 执行代码: 数据“变身”。

AI 模型调用:与 LLM“对话”

response = client.chat.completions.create(
    model=model,
    messages=[
        {"role""system""content""You are a helpful assistant."},
        {"role""user""content""用户指令"},
    ]
)
  • • get_client 创建 LLM 连接,像“桥梁”。

  • • chat.completions.create 发请求、获响应,像“对话”。

  • • messages:对话历史。

    • • "role": "system":定义 LLM 角色。

    • • "role": "user":用户指令。

Data Formulator 支持多种 LLM 模型,按需选择。

用户案例:Data Formulator 实战

微软用户研究,让参与者用 Data Formulator 完成真实任务。

研究设计:

  • • 参与者: 8 位不同背景、经验的用户。

  • • 任务: 复现两个案例,创建 16 个图表(12 个需复杂转换)。

    • • 案例 1: 大学专业收入分析。

    • • 案例 2: 电影数据分析。

用户反馈:

  • • 效率提升: 速度显著提高,尤其复杂任务。

  • • 易用性: 多模态交互、数据线程很直观。

  • • 迭代支持: 轻松回溯、修改、尝试。

迭代策略:

  • • 渐进式: 简单图表开始,逐步添加、调整。

  • • 回溯式: 回到之前,重新探索。

  • • 组合式: 多个图表组合,讲故事。

任务完成:

所有参与者成功完成,平均不到 1 小时,证明易用性和高效性。

对比:Data Formulator vs 现有工具

与传统工具(Tableau、Power BI)

特性Data FormulatorTableau/Power BI
数据转换AI 驱动,自动生成代码手动操作或脚本编写
交互方式多模态(UI + 自然语言)传统 UI 操作
迭代式探索数据线程强力支持支持有限
学习曲线更低较高
灵活性更高相对较低
优势AI赋能,操作更简便,支持自然语言交互,迭代更灵活功能丰富,社区支持强大,适合专业人士
不足对AI依赖性强,可定制性相对较弱操作复杂,学习曲线陡峭,数据转换能力有限

Data Formulator 在数据转换、交互、迭代、学习曲线有优势,Tableau/Power BI 功能丰富、社区强大。

与 AI 工具(LIDA、ChartGPT)

特性Data FormulatorLIDA/ChartGPT
交互方式多模态(UI + 自然语言)自然语言为主
迭代式探索数据线程强力支持有限支持或不支持
可控性UI 精细控制,自然语言辅助自然语言描述,可控性较弱
数据转换支持更复杂转换能力相对较弱
可解释性代码+解释,易理解较弱,难理解 AI 决策
优势UI和自然语言结合,迭代更方便,可控性更强,数据转换能力更出色纯自然语言交互,上手快
不足对UI的依赖性强,纯自然语言交互场景受限迭代支持不足,可控性弱,数据转换能力有限

Data Formulator 交互、迭代、可控性、转换能力、可解释性更优,LIDA/ChartGPT 纯自然语言交互上手快。

未来展望:AI 数据可视化

Data Formulator 展现了 AI 的巨大潜力。

Data Formulator 发展方向:

  • • 更多数据源和图表: “工具箱”更丰富。

  • • 更强 AI 模型: “魔法”更强大。

  • • 智能推荐: “AI 参谋”更精准。

  • • 协作分享: “社区”更活跃。

  • • 错误处理: “AI 医生”更可靠。

  • • 自定义: 用户自定义图表组件。

AI 数据可视化潜力:

  • • 降低门槛: 人人能做,“数据可视化平民化”。

  • • 提高效率: 告别繁琐,“工业革命”。

  • • 发现洞察: 自动识别,“掘金”。

  • • 智能交互: 人机合一,“知心伙伴”。

Data Formulator 创新多模态交互、强大 AI 引擎、灵活迭代,带来变革。 提升专业人士效率,让普通用户上手。

开源发布,注入活力。AI 不断发展,Data Formulator 未来可期,开启新篇章,让数据驱动决策惠及每个人。

推荐阅读

 

子非AI
子非AI,亦解AI之妙:一站式AI情报站,助你开启智能未来之门。
 最新文章