자연어로 SQL을 실행하는 터미널 클라이언트. Oracle Select AI에서 영감을 받았고, OpenAI GPT-4o를 사용해 자연어를 SQL로 변환합니다.
SQLite / PostgreSQL / MySQL을 지원합니다.
pip install openai rich psycopg2-binary mysql-connector-pythonrich는 선택 사항이지만 설치하면 출력이 훨씬 예쁩니다.
# API 키 설정
export OPENAI_API_KEY="sk-..." # macOS / Linux
$env:OPENAI_API_KEY = "sk-..." # Windows PowerShell
# SQLite
python sql_ai.py --db sqlite:///mydb.db
# PostgreSQL
python sql_ai.py --db postgresql://user:pass@localhost/mydb
# MySQL
python sql_ai.py --db mysql://user:pass@localhost/mydbpython setup_demo.py
python sql_ai.py --db sqlite:///test.db> SELECT * FROM users LIMIT 5;
> ALTER TABLE users ADD COLUMN phone TEXT; UPDATE users SET phone = '010-0000-0000' WHERE name = 'seohu';
세미콜론으로 구분된 여러 문장을 한 번에 실행할 수 있습니다. 중간에 실패하면 전체 롤백됩니다.
> SAI "각 유저가 작성한 글 수"
> SAI "가장 최근에 작성된 글 3개"
> SAI '이메일이 gmail인 유저 목록'
DB 스키마(테이블 구조, FK, 인덱스)를 자동으로 참고해서 SQL을 생성합니다.
| 커맨드 | 설명 |
|---|---|
.tables |
테이블 목록 |
.schema |
전체 스키마 (CREATE TABLE 문) |
.describe <table> |
컬럼 · PK · FK · 인덱스 상세 |
exit |
종료 |
> .describe posts
posts
Column Type Flags
──────────────────────────────
id INTEGER PK
user_id INTEGER NOT NULL
title TEXT NOT NULL
content TEXT -
created_at TEXT -
Foreign Keys:
user_id → users(id)
python sql_ai.py --db sqlite:///mydb.db -e "SELECT COUNT(*) FROM users;"--db DSN 데이터베이스 연결 문자열 (기본값: sqlite:///test.db)
--api-key KEY OpenAI API 키 (환경변수 OPENAI_API_KEY로 대체 가능)
-e, --execute SQL 단일 쿼리 실행 후 종료
sql_ai.py 메인 (단일 파일)
setup_demo.py SQLite 데모 DB 생성 스크립트