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の両方で動作します。

典型的なワークフロー

  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 – 商用・非商用問わず無料。


リンク

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト