kquerychat는 SQL과 대형 언어 모델(LLM)을 활용하여 테이블 형식 데이터를 안전하고 신뢰할 수 있게 자연어로 탐색할 수 있도록 합니다. 사용자에게는 데이터에 대해 빠르게 질문하고 검증 가능한 데이터 기반 답변을 받을 수 있는 직관적인 웹 애플리케이션을 제공합니다. 개발자는 채팅 UI 컴포넌트, 생성된 SQL 쿼리, 필터링된 데이터에 접근하여 자연어 쿼리를 데이터 워크플로우에 통합하는 맞춤형 애플리케이션을 구축할 수 있습니다.
참고: 이 패키지는 querychat의 한국어 포팅 버전입니다.
개발 버전을 GitHub에서 설치할 수 있습니다:
# install.packages("pak")
pak::pak("bit2r/kquerychat")데이터와 채팅을 시작하는 가장 빠른 방법은 querychat_app()을 사용하는 것입니다. 이는 완전히 다듬어진 Shiny 앱을 제공합니다. 데이터 소스 (예: data.frame, 데이터베이스 연결 등)가 필요하며 선택적으로 다른 매개변수 (예: LLM client 모델)를 지정할 수 있습니다.
library(kquerychat)
# bitData 패키지에서 penguins 데이터셋 로드
penguins <- bitData::penguins
querychat_app(penguins, client = "openai/gpt-4.1")실행되면 (API 키가 필요합니다1) 3개의 주요 뷰를 확인할 수 있습니다:
- 탐색을 시작할 위치에 대한 제안이 있는 사이드바 채팅.
- 필터링 및 정렬 쿼리를 반영하여 업데이트되는 데이터 테이블.
- 투명성과 재현성을 위한 데이터 테이블 뒤의 SQL 쿼리.
"Adelie 펭귄을 보여줘"와 같은 제안을 선택한다고 가정해 봅시다. 이것은 필터링 작업이므로 데이터 테이블과 SQL 쿼리가 모두 그에 따라 업데이트됩니다.
kquerychat는 계산 및 집계가 필요한 데이터에 대한 보다 일반적인 질문도 처리할 수 있습니다. 예를 들어, "종별 평균 부리 길이는 얼마인가요?"라고 질문할 수 있습니다. LLM은 계산을 수행하기 위한 SQL 쿼리를 생성하고, kquerychat는 이를 실행하여 결과를 채팅에 반환합니다.
kquerychat는 확장성이 뛰어나도록 설계되었습니다. 채팅 인터페이스, 필터링/정렬된 데이터 프레임, SQL 쿼리 등에 대한 프로그래밍 방식의 접근을 제공합니다. 이를 통해 데이터와의 자연어 상호 작용을 활용하는 맞춤형 웹 앱을 쉽게 구축할 수 있습니다.
단계별 가이드는 Build an app을 참조하세요.
kquerychat는 LLM을 사용하여 자연어를 SQL 쿼리로 변환합니다. 로컬에서 실행할 수 있는 소규모 모델부터 주요 AI 제공업체의 대규모 프론티어 모델까지 모든 크기의 모델이 이 작업에 매우 효과적입니다. 그러나 최고의 모델도 좋은 성능을 내려면 데이터의 전체 구조를 이해해야 합니다.
이를 해결하기 위해 kquerychat는 스키마 메타데이터 -- 열 이름, 유형, 범위, 범주형 값 -- 를 LLM의 시스템 프롬프트에 포함합니다. 중요한 점은 kquerychat가 원시 데이터를 LLM에 보내지 않는다는 것입니다. 모델이 정확한 쿼리를 생성하는 데 필요한 구조적 정보만 공유합니다. LLM이 쿼리를 생성하면 kquerychat는 SQL 데이터베이스 (기본값은 DuckDB2)에서 이를 실행하여 정확한 결과를 얻습니다.
이러한 설계로 인해 kquerychat는 신뢰할 수 있고, 안전하며, 재현 가능합니다:
- 신뢰성: 쿼리 결과는 LLM이 생성한 요약이 아닌 실제 데이터베이스에서 나오므로 출력이 정확하고 검증 가능하며 환각3에 덜 취약합니다.
- 안전성: kquerychat의 도구는 설계상 읽기 전용이므로 데이터에 대한 파괴적인 작업을 피합니다.4
- 재현성: 생성된 SQL을 내보내고 다른 환경에서 다시 실행할 수 있으므로 분석이 단일 도구에 갇히지 않습니다.
데이터 프라이버시
LLM에 정확히 어떤 정보가 제공되는지 그리고 이를 사용자 지정하는 방법에 대한 자세한 내용은 Provide context 및 Tools 문서를 참조하세요.
여기에서 다음에 대해 자세히 알아볼 수 있습니다:
- Models: kquerychat 뒤의 LLM을 사용자 지정합니다.
- Data sources: kquerychat와 함께 사용할 수 있는 다양한 데이터 소스.
- Provide context: LLM이 제대로 작동하는 데 필요한 컨텍스트를 제공합니다.
- Build an app: kquerychat를 중심으로 맞춤형 Shiny 앱을 설계합니다.
- Greet users: 환영하는 온보딩 경험을 만듭니다.
- Tools: kquerychat가 내부적으로 수행할 수 있는 작업을 이해합니다.
이 프로젝트는 MIT 라이선스를 따릅니다. 원본 querychat 프로젝트의 저작권은 Posit Software, PBC에 있습니다.