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 통합)
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트