본문 바로가기
IT일반

Vanna AI: SQL 데이터베이스를 위한 자연어 인터페이스

by 요긴소프트 2024. 12. 2.
728x90
반응형

Vanna.AI는 SQL 데이터베이스와 대화하듯 상호작용할 수 있게 해주는 오픈소스 RAG(Retrieval-Augmented Generation) 프레임워크입니다. MIT 라이선스로 제공되는 이 파이썬 기반 도구는 자연어를 SQL로 변환하고 데이터베이스를 쉽게 활용할 수 있게 해줍니다.

 

Vanna.AI - Personalized AI SQL Agent

 

vanna.ai

 

주요 특징:

  1. 간단한 2단계 작동 방식
  • 데이터로 RAG "모델" 학습
  • 자연어로 질문하면 자동으로 SQL 쿼리 생성 및 실행
  1. 다양한 지원
  • LLM: OpenAI, Anthropic, Gemini, HuggingFace 등
  • 벡터 저장소: AzureSearch, Opensearch, PgVector 등
  • 데이터베이스: PostgreSQL, MySQL, Snowflake, BigQuery 등
  1. 여러 사용자 인터페이스
  • Jupyter Notebook
  • Streamlit
  • Flask
  • Slack
  1. 주요 장점
  • 복잡한 데이터셋에서도 높은 정확도
  • 보안과 프라이버시 보장 (데이터베이스 내용이 LLM으로 전송되지 않음)
  • 자가 학습 기능
  • 사용자 피드백을 통한 지속적인 개선
  • 확장 가능한 구조

출처 : https://github.com/vanna-ai/vanna?tab=readme-ov-file

시작하기:

# 설치
pip install vanna

# 기본 사용 예시
from vanna.openai.openai_chat import OpenAI_Chat
from vanna.chromadb.chromadb_vector import ChromaDB_VectorStore

class MyVanna(ChromaDB_VectorStore, OpenAI_Chat):
    def __init__(self, config=None):
        ChromaDB_VectorStore.__init__(self, config=config)
        OpenAI_Chat.__init__(self, config=config)

vn = MyVanna(config={
    'api_key': 'sk-...',
    'model': 'gpt-4-...'
})

# 질문하기
vn.ask("What are the top 10 customers by sales?")

Vanna는 RAG 방식을 사용함으로써 기존 파인튜닝 방식 대비 다음과 같은 이점이 있습니다:

  • LLM 간 이동이 용이
  • 학습 데이터 관리가 쉬움
  • 운영 비용이 저렴
  • 새로운 LLM 적용이 간편

이 도구는 데이터 분석가나 개발자가 아닌 사용자들도 SQL 데이터베이스를 쉽게 활용할 수 있게 해주는 강력한 솔루션이 될 것으로 기대됩니다.

728x90
반응형