RAG? 또는 Text To SQL
Source: Dev.to
배경
최근에 비교적 작은 데이터베이스(컬럼 16개, 행 20,001개)로 구성된 회사 주소와 상태 세부 정보를 다루는 프로젝트를 진행했습니다. 사용자의 질의에 따라 데이터를 가져오면서 전혀 환각이 없도록 보장해야 했으며, 최대값·평균값 계산과 같은 집계 함수도 지원해야 했습니다. 챗봇이 개념 증명 단계였기 때문에 데이터베이스 크기를 의도적으로 작게 유지했습니다.
접근 방식
요구 사항을 고려하여 Text‑to‑SQL 아키텍처를 선택했습니다. 이 접근 방식은 Retrieval‑Augmented Generation(RAG)보다 결정론적 정확도가 높으며 AVG, MAX와 같은 집계 연산을 자연스럽게 수행할 수 있어 챗봇에 필요한 핵심 기능을 충족합니다.
고려 사항
- 동시성: 예상 부하가 최대 100명의 동시 사용자입니다.
- 확장성: 데이터베이스는 벡터 재인덱싱 같은 계산 오버헤드 없이 수평 확장이 가능합니다.
- 데이터 변동성:
capital과 같은 특정 컬럼은 자주 변경될 수 있어, 이러한 유형의 데이터셋에는 결정론적인 Text‑to‑SQL 솔루션이 더 효율적입니다.