Flint:AI時代的可視化語言
Flint是微軟研究院推出的一種開源可視化中間語言,旨在幫助AI代理從簡潔、人類可編輯的規範中生成表達力強、視覺精美的圖表。它通過語義類型自動處理設計細節,支持多種後端渲染,並已在Data Formulator項目中得到應用。
Flint是微軟研究院推出的一種可視化中間語言,專為AI驅動的圖表生成而設計。它幫助AI代理從簡潔、人類可編輯的規範中創建表達力強且視覺精美的圖表,無需繁瑣的低級參數配置。
在傳統方法中,創建一張好圖表需要處理大量設計決策:日期解析、縮放起點、值格式化、標籤空間以及顏色選擇等。現代可視化庫如Vega-Lite、Apache ECharts和Chart.js提供了這些控制項,但存在權衡:依賴系統默認值的簡短規範往往產生平淡無奇的圖表,而精雕細琢的可視化則需要冗長且易錯的詳細參數。
隨着大語言模型和AI代理承擔更多可視化工作,這一權衡變得更加尖鋭。代理在處理複雜、低級的規範細節時尤其容易出錯,生成的脆弱代碼難以被人類檢查、修復或重用。Flint提供了一種折中方案:緊湊的規範,代理可以可靠生成,人類可以直接編輯,系統可編譯為設計良好的圖表。
Flint的工作原理是通過語義類型和圖表規範自動推導低級細節。數據規範捕獲語義類型和可選元數據,圖表規範定義圖表類型並將字段映射到視覺通道(如x、y、顏色、大小或分面)。編譯器從這些信息中推導出解析規則、縮放、座標軸、聚合、格式化、配色方案和佈局,生成後端原生規範用於渲染最終圖表。
由於中間表示與渲染庫分離,Flint可以針對不同API和編程模型的後端,用户可保持相同的緊湊圖表意圖,同時編譯到Vega-Lite、ECharts或Chart.js,並根據需要選擇最合適的後端。
Flint適用於基於LLM的圖表生成,因為模型更容易推斷語義類型而非完整的低級可視化參數。字段名、值模式和常見數據知識可幫助代理識別列的含義(如日期、價格、百分比等),隨後編譯器處理設計決策。研究顯示,Flint在LLM自評估管道中獲得了更高的總分。
為方便代理使用,Flint還發布了flint-chart-mcp,一個模型上下文協議(MCP)服務器,允許代理在聊天或編碼環境中創建、驗證和渲染圖表。Flint現已用於支持微軟研究項目Data Formulator。
Flint是開源的,項目網站和GitHub倉庫已開放,邀請社區探索和構建。