Skip to content

bit2r/kquerychat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kquerychat

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개의 주요 뷰를 확인할 수 있습니다:

  1. 탐색을 시작할 위치에 대한 제안이 있는 사이드바 채팅.
  2. 필터링 및 정렬 쿼리를 반영하여 업데이트되는 데이터 테이블.
  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 contextTools 문서를 참조하세요.

다음 단계

여기에서 다음에 대해 자세히 알아볼 수 있습니다:

  • Models: kquerychat 뒤의 LLM을 사용자 지정합니다.
  • Data sources: kquerychat와 함께 사용할 수 있는 다양한 데이터 소스.
  • Provide context: LLM이 제대로 작동하는 데 필요한 컨텍스트를 제공합니다.
  • Build an app: kquerychat를 중심으로 맞춤형 Shiny 앱을 설계합니다.
  • Greet users: 환영하는 온보딩 경험을 만듭니다.
  • Tools: kquerychat가 내부적으로 수행할 수 있는 작업을 이해합니다.

라이선스

이 프로젝트는 MIT 라이선스를 따릅니다. 원본 querychat 프로젝트의 저작권은 Posit Software, PBC에 있습니다.

Footnotes

  1. 기본적으로 kquerychat는 OpenAI를 사용하여 채팅 경험을 제공합니다. 따라서 이 예제가 작동하려면 OpenAI API 키가 필요합니다. 다른 모델 제공업체에 대한 자격 증명 설정 방법은 Models 문서를 참조하세요.

  2. DuckDB는 매우 빠르며 놀라울 정도로 많은 통계 함수를 제공합니다.

  3. 쿼리 도구는 컨텍스트 및 해석을 위해 쿼리 결과를 모델에 제공합니다. 따라서 모델이 해당 결과를 잘못 해석할 가능성이 있습니다.

  4. 프로덕션 데이터베이스에 대한 파괴적인 작업이 완전히 없음을 보장하려면 kquerychat의 데이터베이스 권한이 읽기 전용인지 확인하세요.

About

No description, website, or topics provided.

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages