一覽

簡潔規格生成精美圖表。Flint 讓 AI 代理能從簡單、易於人工編輯的規格,可靠地生成富有表現力且視覺精美的圖表。

語義類型引導設計。Flint 利用語義資料類型來表達資料含義,幫助編譯器選擇適當的比例尺、基準線、格式和配色方案。

版面配置自動適應資料。Flint 自動管理尺寸、間距、標籤和版面,確保圖表在基數和密度變化時仍保持可讀性,無需使用者明確配置。

單一規格支援多種後端。單一的 Flint 規格可以編譯成 Vega-Lite、Apache ECharts 或 Chart.js,無需從頭重寫圖表。

專為代理工作流程打造。這個開源專案包含 flint-chart 函式庫和 flint-chart-mcp 伺服器,讓代理可以直接在聊天或程式碼環境中建立、驗證和渲染圖表。

圖 1. Flint 透過其簡單的規格支援多樣化的視覺化,這些圖表可以使用 Vega-Lite、Echarts 和 Chart.js 等視覺化函式庫進行渲染。

製作一個好的圖表需要許多設計決策:例如日期應該如何解析、比例尺是否應該從零開始、數值應該如何格式化、標籤需要多少空間,以及哪些顏色能讓資料更容易閱讀。現代視覺化函式庫如 Vega-Lite、Apache ECharts 和 Chart.js 提供了這些控制項,但這也帶來了取捨。

依賴系統預設的簡短規格通常會產生平淡無奇的圖表,而要製作精美的視覺化則需要詳細且刻意選擇參數的規格,這些規格往往冗長、脆弱且容易出錯。

隨著大型語言模型(LLM)和 AI 代理承擔更多視覺化工作,這種取捨變得更加明顯。當代理必須管理複雜、低階的規格細節時,尤其容易出錯,而生成的脆弱程式碼也難以讓人們檢查、修復或重複使用。

理想情況下,我們需要一種介於兩者之間的方法:一種緊湊的規格,讓代理能夠可靠地生成,人們可以直接編輯,並且系統能夠編譯成精心設計的圖表。

為了解決這個挑戰,我們推出了 Flint,一個專為 AI 驅動圖表建立而設計的視覺化中間語言。Flint 幫助 AI 代理從簡單、易於人工編輯的圖表規格中,建立富有表現力且吸引人的圖表。

Flint 編譯器不再需要針對比例尺、軸線、間距和版面配置提供冗長的低階參數,而是從資料、語義類型、圖表類型和編碼中推導出最佳化的圖表設定。相同的 Flint 規格可以透過多個後端渲染,包括 Vega-Lite、Apache ECharts 和 Chart.js。

圖 2. Flint 將緊湊、易於人工編輯的圖表規格編譯成完整的後端原生規格和渲染後的視覺化。在這個熱力圖範例中,Flint 規格命名了語義類型(period 為 YearMonth,newUsers 為 Profit),並將欄位映射到視覺通道。編譯器推導出 Vega-Lite 的詳細資訊,包括時間解析、軸線格式、顏色比例尺、單元格大小、圖例配置和版面配置。

Flint 的運作方式

圖 2 說明了 Flint 編譯器如何將緊湊的圖表規格轉換為精緻的熱力圖。

傳統上,要製作高品質的熱力圖,我們需要透過低階圖表屬性明確告知系統如何處理 period 欄位、如何正確標記 MonthYear 值、調整個別熱力圖單元格大小,以及選擇適當代表正負 newUsers 值的顏色比例尺。如果沒有這些配置,視覺化函式庫必須從欄位名稱和原始值中猜測,這可能導致圖表在技術上有效但潛在誤導。

儘管這些細節很重要,但硬編碼它們可能很困難且容易出錯,並使規格變得脆弱且難以讓使用者理解或調整。

在 Flint 中,這些低階細節得到系統性管理,編譯器會從高階資料和圖表規格中推斷它們。資料規格捕捉了語義類型和可選的元資料,而圖表規格則定義了圖表類型並將欄位映射到視覺通道,例如 x、y、顏色、大小或分面。

根據這些資訊,編譯器推導出解析規則、比例尺、軸線、聚合、格式、配色方案、版面配置,並生成後端原生規格,用於渲染最終精美的視覺化。這讓使用者無需明確設定脆弱且容易出錯的低階細節。

此外,由於中間表示與任何單一渲染函式庫分離,Flint 可以針對具有非常不同 API 和程式設計模型的後端。使用者可以保持相同的緊湊圖表意圖,同時編譯到 Vega-Lite、ECharts 或 Chart.js,並選擇最符合視覺化需求的後端。

Flint 非常適合基於 LLM 的圖表生成,因為語義類型通常比完整的低階視覺化參數更容易讓模型推斷。欄位名稱、數值模式和常見資料知識可以幫助代理識別某個欄位是日期、價格、百分比、國家、排名還是相關性。

一旦這些含義明確,編譯器就可以處理許多設計決策,否則這些決策將以脆弱、特定於函式庫的程式碼形式出現。

在我們的研究中,我們將 Flint 與 DirectVL 進行了比較。DirectVL 是一個基準線,要求模型在 LLM 自我評估流程中直接生成完整的(更複雜的)Vega-Lite 規格。在根據 Tidy Tuesdays 測試資料進行的三個模型測試中,Flint 獲得了更高的 LLM 評分:使用 GPT-5.1 時為 16.27 對 15.91,使用 GPT-5-mini 時為 16.16 對 15.60,以及使用 GPT-4.1 時為 15.91 對 15.34。

事實上,Flint 如此強大且可靠,以至於它現在被用於支援 Data Formulator,一個微軟研究用於 AI 輔助資料分析和視覺化的專案。

為了讓您的代理能夠輕鬆存取 Flint,我們還發布了 flint-chart-mcp,這是一個模型上下文協定(MCP)伺服器,允許代理在聊天或程式碼環境中建立、驗證和渲染圖表。

MCP 呼叫可以嵌入內聯資料或讀取配置的本地檔案,伺服器還可以開啟互動式圖表視圖,以便使用者檢查和完善結果。

圖 3. 一旦您使用您喜歡的 AI 客戶端設定好 flint-chart-mcp,代理就可以生成由 Flint 驅動的互動式視覺化,以回答您的資料探索問題。

試用 Flint

Flint 是開源專案,現已可供使用:

專案網站:https://microsoft.github.io/flint-chart/

GitHub:https://github.com/microsoft/flint-chart

Flint MCP 伺服器說明:https://microsoft.github.io/flint-chart/#/mcp

Flint 指向了一個視覺化的共享語義層,在這個層次上,人類和 AI 代理可以處理緊湊的圖表意圖,而編譯器則負責處理精細的低階細節。我們邀請社群探索並在此專案基礎上進行建構。