AVA
AI-Native Visual Analytics
A technology framework designed for more convenient visual analytics, powered by AI
Natural Language
Ask questions about your data in plain English
LLM-Powered
Leverages large language models for intelligent analysis
Smart Processing
Auto-switches between in-memory and SQLite based on data size
Contents
📦Installation
Install AVA using your preferred package manager:
🚀Quick Start
Get started with AVA in just a few lines of code:
import { AVA } from '@antv/ava';
// Initialize with LLM config
const ava = new AVA({
llm: {
model: 'ling-1t',
apiKey: 'YOUR_API_KEY',
baseURL: 'LLM_BASE_URL',
},
sqlThreshold: 1024 * 1024 * 2, // 2MB threshold
});
// Load data
await ava.loadObject([
{ city: 'Hangzhou', gdp: 18753 },
{ city: 'Shanghai', gdp: 43214 }
]);
// Ask questions
const result = await ava.analysis(
'What is the average GDP?'
);
console.log(result.text);
// Access: result.code, result.sql, result.data
// Generate visualization from analysis result
const viz = await ava.visualize(result);
console.log(viz.syntax); // chart syntax for GPT-Vis
// or use viz.html for standalone HTML
// Clean up
ava.dispose();🏗️Architecture
AVA uses a modular pipeline architecture:
📚API Reference
Constructor
new AVA(options: AVAOptions)Data Loading
loadCSV(content: string)Load data from CSV string
loadObject(data: object[])Load data from array of objects
loadURL(url: string, transform?: Function)Load data from URL
loadText(text: string)Extract data from unstructured text
Analysis
analysis(query: string)Analyze data with natural language query. Returns text summary + structured data + code/SQL.
text — Natural language summary of the analysisdata — Structured analysis result (array or object)code — JavaScript code used (if applicable)sql — SQL query used (if applicable)Visualization
visualize(analysisResult: AnalysisResponse)Generate chart from analysis result. Must be called after analysis().
chartType — Recommended chart typesyntax — GPT-Vis chart syntax for renderinghtml — Standalone HTML that renders the chartQuery Suggestions
suggest(count?: number)Get AI-recommended analysis queries based on dataset characteristics (default: 3)
query — Suggested analysis questionscore — Meaningfulness score (0-1)reason — Explanation for the suggestion💡Usage Examples
Query Suggestions
await ava.loadObject([
{ city: 'Hangzhou', gdp: 18753 },
{ city: 'Shanghai', gdp: 43214 }
]);
// Get 5 suggested queries
const suggestions = await ava.suggest(5);
console.log(suggestions[0]);
// { query: "What is the average GDP?",
// score: 0.95,
// reason: "Reveals economic patterns" }
// Use suggested query for analysis
const result = await ava.analysis(suggestions[0].query);Browser File Upload
const fileInput = document.querySelector('input[type="file"]');
fileInput.addEventListener('change', async (e) => {
const file = e.target.files[0];
const content = await file.text();
await ava.loadCSV(content);
const result = await ava.analysis('Show trends');
});API Data Analysis
await ava.loadURL(
'https://api.example.com/sales',
(response) => response.data.items
);
const result = await ava.analysis('Compare by region');⚙️Configuration
AVA supports multiple LLM providers: