vanna은(는) 무엇을 하나요?
오픈소스 AI SQL 에이전트. 스키마에 RAG 모델을 학습시키고 자연어 질문을 던져 즉시 데이터 결과를 얻으세요.
개요
vanna-ai/vanna는 데이터베이스와 자연어 인터페이스를 제공하는 오픈소스 라이브러리입니다. RAG(Retrieval-Augmented Generation) 접근 방식을 사용하여 사용자의 질문을 SQL 쿼리로 변환하고, 데이터베이스에서 결과를 가져옵니다.
주요 기능
- 자연어 질문을 SQL로 변환: "지난달 판매량 상위 10개 제품은?" 같은 질문을 SQL 쿼리로 자동 변환
- 스키마 학습: 데이터베이스 스키마(DDL), 문서, 예제 SQL 쿼리로 모델 학습
- 다중 데이터베이스 지원: PostgreSQL, MySQL, SQLite, BigQuery, Snowflake 등
- 프레임워크 통합: Jupyter, Streamlit, Flask, Slack 봇 등
- 커스터마이징 가능: 자신의 LLM, 임베딩 모델, 벡터 데이터베이스 사용 가능
사용 방법
import vanna
# Vanna 초기화
vn = vanna.Vanna()
# 데이터베이스 연결
vn.connect_to_postgresql(
host='localhost',
dbname='mydb',
user='myuser',
password='mypassword',
port=5432
)
# 모델 학습
vn.train(ddl="""
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
total_amount DECIMAL
);
""")
# 질문하기
answer = vn.ask("지난주 주문 건수는?")
print(answer)
지원 플랫폼
| 플랫폼 | 설명 |
|---|---|
| Jupyter | 노트북에서 대화형 사용 |
| Streamlit | 웹 UI 생성 |
| Flask | REST API 서비스 |
| Slack | 슬랙 봇 통합 |
환경 변수
VANNA_API_KEY: Vanna API 키 (선택 사항)OPENAI_API_KEY: OpenAI API 키 (기본 LLM)DATABASE_URL: 데이터베이스 연결 문자열
라이선스
MIT 라이선스