智能AI
morning
Flint:为AI时代打造的可视化语言
2026-08-04
1 阅读
约10分钟阅读
微软研究院AI
字号:
(本文阅读时间:7 分钟) 图表是人们理解和分析数据的重要工具。然而,当 AI Agent 参与图表生成时,往往会面临一个两难的问题:如果让 AI 用尽量简单的代码生成,虽然可靠性较高,但生成的图表通常缺乏美感,表现力有限;如果让 AI 自由发挥,直接编写完整且精细的底层参数,尽管能够获得更丰富、美观的图表,却也带来了代码易出错、用户难修改等问题。 这一矛盾的根源就在于,高质量图表的生成涉及大量设计决策。比如,日期应如何解析?坐标轴是否从零开始?数值应采用何种格式展示?标签需要预留多少空间?什么样的配色方案更有利于信息传达? 那么,能否找到一种恰到好处的方案 —— 既足够简洁,便于 AI Agent 稳定生成以及人类直接编辑;又能够自动补全专业图表所需的设计细节? 为了应对这一挑战,来自微软研究院与中国人民大学的研究团队提出了一种 面向 AI 时代的可视化中间语言 Flint 。通过简洁、可编辑的图表意图描述, Flint 能够 自动编译生成专业、美观的图表 ,帮助人类与 AI Agent 更高效地完成数据分析与可视化工作。 Flint 现已开源,相关链接已整理至文末,欢迎点击体验。 Flint :让 “ 意图 ” 直接变成 “ 图表 ” Flint 的核心理念是将 “ 表达意图 ” 和 “ 实现细节 ” 分离。用户只需说明希望展示什么样的数据、采用什么样的图表形式,而关于坐标轴、刻度、布局、配色以及数据格式化等设计决策,则由编译器自动推导并完成。 换句话说, Flint 让人类与 AI Agent 专注于表达 “ 想画什么 ” ,而将 “ 如何画好 ” 交给系统处理。 图 1 : Flint 支持丰富 的可视化图表,并可通过 Vega-Lite 、 ECharts 和 Chart.js 等可视化库进行渲染。 Flint 是如何工作的? 传统的可视化工具通常要求用户显式指定大量底层配置。例如,需要定义日期字段的解析方式、设置热力图单元格尺寸、选择适合表现正负值的颜色映射方案等。虽然这些配置对于最终效果十分重要,但编写和维护起来往往较为繁琐,也容易产生错误。 而 Flint 通过引入高层级的数据规格( Data Specification )和图表规格( Chart Specification ),将这些复杂配置系统化管理。用户只需提供: - 数据规格 :定义字段的语义类型(如价格、百分比、相关性、排名、国家等)及可选元数据。 - 图表规格 : 定义图表类型(如热力图、折线图等),并将数据字段映射到视觉通道(如 x 轴、 y 轴、颜色、大小等)。 图 2 : Flint 架构图 。 基于这些信息, Flint 编译器能够自动推导数据解析规则、坐标轴设置、聚合方式、格式化策略、色彩方案以及布局配置,并最终生成 Vega-Lite 、 Apache ECharts 或 Chart.js 等后端所需的原生可视化代码。 这一机制使用户无需处理繁琐的底层实现细节,即可获得设计合理、表达清晰的高质量图表。 图 3 : Flint 将用户提供的数据规格和图表规格编译成完整的后端原生规格并渲染出可视化图表。在这个热力图示例中, Flint 规格指定了语义类型(将 period 设为 YearMonth , newUsers 设为 Profit ),并将字段映射到视觉通道。编译器由此推导出 Vega-Lite 的底层细节,包括时间解析、坐标轴格式、色阶、单元格大小、图例配置以及布局。 五项关键能力,让可视化更简单 在接收输入数据后, Flint 可以结合 智能体自动生成数据规格( dataSpec ),用户只需简单编写图表规格( chartSpec ),即可生成指定的图表,并能快速在不同图表之间进行切换,从而有效提升数据探索效率。 总体而言, Flint 具备以下 五项关键能力 : - 简洁规格代码,生成高质量图表 :从简单的图表意图出发, Flint 能够 自动填充生成完整可视化所需的所有底层细节。 - 语义类型指导设计 :字段可以被描述为 “ 价格 ” 、 “ 百分比 ” 、 “ 国家 ” 等。编译器会根据这些语义自动选择合适的刻度、基线、格式和配色方案,让图表更具表现力。 -自适应布局 : Flint 可以 自动管理尺寸、间距、标签和布局。即使数据的基数或密度发生变化,图表依然保持清晰可读,无需用户手动配置。 - 一份规格,多端适配 :一份 Flint 规格可以编译成 Vega-Lite 、 Apache ECharts 或 Chart.js 代码,无需为不同后端重新设计图表。 - 专为智能体工作流打造 :该项目开源并包含 flint-chart 库和 flint-chart-mcp 服务器,使得智能体可以直接在聊天或编程环境中创建、验证和渲染图表。 图 4 : 给定输入数据后,编译器利用语义信息来选择底层参数,并将 Flint 渲染为针对目标图表类型(例如 Vega-Lite 的 Facet Line Chart )的代码。当用户编辑 Flint 以创建新的可视化图表时,编译器会自动更新这些配置,从而生成高质量的图表,无需用户手动调整坐标轴、图层或配色方案等详细参数。这使得用户能够在不同的图表类型和渲染后端之间快速探索数据。 为什么 Flint 特别适合 AI Agent ? Flint 非常适合基于大语言模型的图表生成 任务,因为语义对于模型来说,比复杂繁琐的底层可视化参数更容易推断。字段名称、值模式以及常见的领域知识,都能帮助 AI Agent 识别某一列数据表示的是日期、价格、百分比还是国家。一旦这些含义变得明确,编译器就可以接手处理那些原本容易造成歧义的设计决策。 在一项研究测试中,研究团队将 Flint 与 DirectVL (一种使用大模型直接生成完整 Vega-Lite 代码的基线方法)进行了对比。在基于 Tidy Tuesdays 数据集的三款模型测试中, Flint 均获得了更高的 大模型 评分。 表 1 :对比 AI 智能体通过 Flint 或 Vega-Lite (DirectVL) 来生成可视化的评测。 Flint 能提升 AI 智能体生成图表的质量和可靠性。 目前, Flint 已经成为微软研究院 Data Formulator 的核心能力之一。 Data Formulator 是一款 AI 辅助数据分析与可视化工具,通过结合自然语言交互与自动图表生成,帮助用户更高效地探索和理解数据。 让 Agent 轻松接入 为了让 Agent 能够更方 便地使用 Flint ,研究团队还发布了 flint-chart-mcp 。这是一个基于模型上下文协议( MCP )的服务器,允许 Agent 在聊天或开发环境中直接创建、验证和渲染图表。 MCP 调用可以内嵌数据或读取本地文件,服务器还可以打开交互式图表视图,方便用户检查和优化结果。 图 5 : 智能体可基于 flint-chart- mcp 生成由 Flint 驱动的交互式可视化图表。 Flint 正在构建一种面向人类与 AI Agent 协同工作的可视化语义层。在这一框架下,用户可以通过简洁的图表意图描述数据需求,而编译器负责完成
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱