antvis/AVA
🤖 AI-native Visual Analytics framework build for agents.
AVA – AI 原生視覺化分析
它是什麼
- AVA 是一個 TypeScript 函式庫,讓您可以載入表格資料、針對資料提出自然語言問題,並獲得文字答案 以及 圖表。它利用大型語言模型 (LLM) 處理繁重的工作,對於較大的資料集,則使用 SQLite/IndexedDB。
主要功能
| 功能 | 您將獲得 |
|---|---|
| 自然語言查詢 | 輸入如 “各區域的平均營收是多少?” 之類的問題,AVA 會回傳摘要、原始資料以及產生該結果的程式碼。 |
| 查詢建議 | AVA 可以根據載入的資料提出一系列可能的分析建議,每一項都包含信心分數與簡短理由。 |
| LLM 驅動分析 | LLM 會解讀查詢,決定執行 JavaScript (小型資料) 或 SQL (大型資料),並產生自然語言解釋。 |
| 智慧資料處理 | 小於約 10 KB 的資料集會透過產生的 JS 在記憶體中處理;較大的資料集則儲存在 SQLite (Node) 或 IndexedDB (瀏覽器) 中,並使用 SQL 查詢。 |
| 視覺化生成 | 分析後,AVA 可以輸出 GPT‑Vis 語法的圖表描述、圖表類型以及可直接嵌入的 HTML 片段。 |
| 跨環境支援 | 無需修改程式碼即可在瀏覽器和 Node.js 中運作。 |
典型工作流程
- 建立實例 並提供 LLM 憑證。
- 載入資料 – CSV 檔案/路徑、CSV 字串、JSON 陣列、遠端 URL 或自由格式文字。
- 提問或獲取建議 –
suggest()回傳可能的分析清單;analysis(query)執行選定的查詢。 - 視覺化 – 將分析結果傳遞給
visualize()以取得圖表程式碼與 HTML。 - 釋放資源 – 呼叫
dispose()以清理 SQLite/IndexedDB 資源。
範例 (Node 或瀏覽器)
import { AVA } from '@antv/ava';
const ava = new AVA({
llm: { model: 'ling-1t', apiKey: 'YOUR_API_KEY', baseURL: 'https://my-llm.com' },
sqlThreshold: 2 * 1024 * 1024, // 2 MB
});
await ava.loadCSV('data/companies.csv');
const suggestions = await ava.suggest(3);
const result = await ava.analysis(suggestions[0].query);
console.log(result.text); // 自然語言答案
console.log(result.data); // 原始資料表
console.log(result.code ?? result.sql); // 產生結果的 JS 或 SQL
const viz = await ava.visualize(result);
if (viz) {
console.log(viz.chartType); // 例如 "column"
document.body.innerHTML = viz.html; // 在瀏覽器中渲染圖表
}
ava.dispose();
架構概覽
- 資料模組 – 載入 CSV、JSON、URL 或從純文字中提取表格。
- 元資料提取 – 推斷欄位類型與基本統計資訊。
- 大小檢查 – 決定使用記憶體內 JS 輔助程式 (< 10 KB) 或 SQLite/IndexedDB (≥ 10 KB)。
- 分析模組 – LLM 產生 JavaScript 程式碼或 SQL,由 AVA 執行。
- LLM 摘要 – 將原始結果轉化為可讀的段落。
- 視覺化模組 (選用) – 偵測視覺意圖、選擇圖表類型,並輸出 GPT‑Vis 語法與自包含的 HTML 圖表。
適用對象
- 希望對 CSV/JSON 檔案進行快速、對話式探索的資料分析師。
- 需要建置「詢問您的資料」功能,但不想編寫自訂查詢邏輯的儀表板開發者。
- 展示 LLM 如何連結自然語言與資料視覺化的教育工作者。
開始使用
npm install @antv/ava # 或 pnpm/yarn
然後依照上述快速入門程式碼操作。
授權條款: MIT – 可免費商用與非商用。
連結
- 網站 / 範例: https://ava.antv.vision
- 文件: https://ava.antv.vision/documentation
- 相關專案: GPT‑Vis (圖表生成), Vercel AI SDK (LLM 整合)
相關
- 專案
- 專案
- 專案
- 專案