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倉庫已開放,邀請社群探索和構建。