CI CHEESU IN / portfolio
online v2026.05 00:00:00 KST
Back to index
P-01 · AI · NL → SQL · 풀스택

Text2SQL 풀스택

자연어 질문을 받아 스키마를 조회하고, LLM으로 SQL을 생성·실행하며, 실패 시 피드백 루프로 재시도하는 풀스택 파이프라인.

OPERATIONAL Fastify · MySQL · LLM API 2025 · 개인 프로젝트
/ 01At a glance
평균 지연 (세션)
SQL 성공률 (세션)
처리 쿼리 수 (세션)
재시도 최대3 회
/ 02파이프라인 아키텍처

자연어 한 줄이 검증된 SQL과 결과로 바뀌기까지의 흐름. 핵심은 실행 전 안전 검증실패를 입력으로 되먹이는 재시도 루프입니다.

TEXT2SQL · REQUEST PIPELINE010203040506자연어 질문사용자 입력스키마 인지관련 테이블·컬럼LLM SQL 생성프롬프트 컨텍스트안전 검증SELECT 전용 · DML 차단DB 실행MySQL결과 · 차트자동 차트 추천실패 시 에러 피드백 → SQL 재생성 · 최대 3회
  1. 01
    자연어 질문사용자 입력
  2. 02
    스키마 인지관련 테이블·컬럼
  3. 03
    LLM SQL 생성프롬프트 컨텍스트
  4. 04
    안전 검증SELECT 전용 · DML 차단
  5. 05
    DB 실행MySQL
  6. 06
    결과 · 차트자동 차트 추천
↺ 검증·실행 실패 시 에러 피드백 → 03 SQL 재생성 · 최대 3회
/ 03Interactive Demo
$NL → SQL
connected
ask >
0 / 500
예시
1스키마 조회
2SQL 생성
3검증 · 실행
4결과 반환
SQL · MySQL dialect
대기 중
SQL
예시 칩을 클릭하거나 자연어 질문을 입력하세요.
Schema · e-commerce demo
... tables
API 연결 중…
서버가 실행 중인지 확인하세요.
Pipeline Log
/ 04설계 포인트
/ A

스키마 인지 단계

요청을 받으면 DB 스키마를 조회하고, 질문과 관련 깊은 테이블을 선별(top-N)해 해당 스키마만 LLM 프롬프트에 주입.

/ B

실행 전 안전 검증

SELECT로 시작하지 않거나 INSERT·UPDATE·DROP 등 금지 키워드·다중 문이 있으면 차단. LIMIT가 없으면 자동 부여(기본 200).

/ C

피드백 루프

실행 실패 시 DB 에러 메시지를 LLM에 전달해 SQL 재작성. 최대 3회 재시도.

/ D

도메인 시맨틱 레이어

도메인 사전(동의어·별칭)·조인 패턴 카탈로그·시간대(KST) 보정을 프롬프트에 주입해 모호한 표현도 일관된 SQL로 매핑.

/ E

통계 적재

각 요청의 모델·토큰·단계별 지연(LLM/검증/DB/후처리)을 기록. 후속 개선과 비용 분석의 기반.

/ F

차트 자동 추천

결과 컬럼 타입을 분석해 최적 차트 유형을 자동 선택. 날짜+숫자=라인, 카테고리+숫자=바/파이.

/ 05Stack & Links
Fastify MySQL LLM API SvelteKit TypeScript AWS Lambda CloudFront Terraform
GitHub 레포 보기 →