antvis/AVA
🤖 AI-native Visual Analytics framework build for agents.
AVA – AIネイティブなビジュアル分析
概要
- AVAは、表形式データを読み込み、それに関する自然言語の質問を投げかけることで、テキストによる回答 および チャートを取得できるTypeScriptライブラリです。大規模言語モデル (LLM) を活用して複雑な処理を行い、大規模なデータセットに対してはSQLite/IndexedDBを使用します。
主な機能
| 機能 | 内容 |
|---|---|
| 自然言語クエリ | “地域別の平均収益は?” のような質問を入力すると、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統合)
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト