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 – 可免费商用与非商用。


链接

相关

  • 项目
  • 项目
  • 项目
  • 项目