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 中運作。

典型工作流程

  1. 建立實例 並提供 LLM 憑證。
  2. 載入資料 – CSV 檔案/路徑、CSV 字串、JSON 陣列、遠端 URL 或自由格式文字。
  3. 提問或獲取建議suggest() 回傳可能的分析清單;analysis(query) 執行選定的查詢。
  4. 視覺化 – 將分析結果傳遞給 visualize() 以取得圖表程式碼與 HTML。
  5. 釋放資源 – 呼叫 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 – 可免費商用與非商用。


連結

相關

  • 專案
  • 專案
  • 專案
  • 專案