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 整合)
相关
- 项目
- 项目
- 项目
- 项目