OpenSearch-SQL: 자연어를 SQL 쿼리로 변환하는 오픈 소스 도구

최신 AI 리소스5개월 전에 게시 됨 AI 공유 서클
2.1K 00

일반 소개

OpenSearch-SQL은 사용자의 자연어 설명을 SQL 쿼리 문으로 변환하여 데이터베이스에 익숙하지 않은 사용자도 데이터에 쉽게 액세스할 수 있도록 도와주는 강력한 텍스트-SQL 도구인 오픈 소스 프로젝트입니다. 이 프로젝트는 OpenSearch-AI 팀에 의해 개발되었으며 Apache 2.0 라이선스를 기반으로 무료 개방되어 있으며, 2024년 8월 BIRD 벤치마크에서 검증 세트의 경우 69.3%, 테스트 세트의 경우 72.28%의 정확도로 1위를 차지했습니다.OpenSearch-SQL은 추가 교육 없이 실행할 수 있으며 GPT와 같은 모델을 지원합니다. OpenSearch-SQL은 추가 학습 없이 실행할 수 있으며 GPT, DeepSeek 등과 같은 모델을 지원하므로 데이터 분석 및 데이터베이스 쿼리에 적합합니다.

OpenSearch-SQL:将自然语言转为SQL查询的开源工具

 

기능 목록

  • "가장 높은 건물은 무엇인가요?"와 같은 자연어 질문을 SQL 쿼리로 변환합니다. SELECT building_name FROM buildings ORDER BY height DESC LIMIT 1.
  • 쿼리 생성 정확도를 향상시키기 위해 자가 학습을 지원하는 CoT(Chain of Thought) 개선 방법론입니다.
  • 복잡한 SQL 생성을 최적화하기 위해 SQL과 유사한 중간 언어를 제공합니다.
  • 모델 생성 오류(착시 문제)를 줄이기 위한 입력-출력 정렬을 포함합니다.
  • 전처리, 추출, 생성, 최적화, 정렬의 다섯 가지 모듈을 지원하여 전체 쿼리 프로세스를 포괄합니다.
  • 오픈 소스이며 무료로 제공되므로 사용자는 필요에 따라 코드를 수정하거나 자신의 프로젝트에 통합할 수 있습니다.

 

도움말 사용

OpenSearch-SQL은 작동하려면 설치 및 구성해야 하는 명령줄 도구입니다. 다음은 처음부터 시작하는 데 도움이 되는 자세한 단계입니다.

설치 프로세스

  1. Python 환경 준비하기
    컴퓨터에 Python 3.8 이상이 설치되어 있는지 확인합니다. 다음과 같이 입력하면 됩니다. python --version 확인합니다. 그렇지 않은 경우 공식 Python 웹사이트(https://www.python.org/)에서 다운로드하여 설치하세요.
  2. 프로젝트 파일 다운로드
    브라우저를 열고 https://github.com/OpenSearch-AI/OpenSearch-SQL 으로 이동합니다. 오른쪽 상단의 '코드' 버튼을 클릭하고 'ZIP 다운로드 "을 클릭하고 "ZIP 다운로드"를 선택하여 소스 코드를 다운로드하거나 Git 명령을 사용하여 복제합니다:
git clone https://github.com/OpenSearch-AI/OpenSearch-SQL.git

예를 들어 로컬에서 다운로드하여 압축을 풉니다. C:\OpenSearch-SQL 어쩌면 /home/user/OpenSearch-SQL.

  1. 종속성 설치
    프로젝트 폴더로 이동하여 터미널을 열고 다음 명령을 실행하여 필요한 라이브러리를 설치합니다:
pip install -r requirements.txt

그러면 데이터 처리 및 모델 호출을 위한 라이브러리 등 프로젝트를 실행하는 데 필요한 Python 패키지가 설치됩니다.

데이터 전처리

OpenSearch-SQL은 쿼리 정확도를 높이기 위해 몇 가지 예제가 필요합니다. 제공된 공식 스크립트를 사용하여 데이터를 생성할 수 있습니다.

  1. 데이터 준비
    이 프로젝트는 샘플 파일을 제공합니다. bird_dev.json위치 Bird/bird_dev.jsonDAIL-SQL 방법론을 기반으로 합니다. 이 파일은 DAIL-SQL 방법론을 기반으로 생성되며 몇 가지 쿼리 예제가 포함되어 있습니다. 자체 데이터가 있는 경우 이 파일로 대체할 수 있습니다.
  2. 전처리 스크립트 실행
    프로젝트 루트 디렉토리에서 실행합니다:
sh run/run_preprocess.sh

이 스크립트는 몇 개의 샷 데이터, 테이블 구조 및 기타 정보를 처리합니다. 완료되면 터미널에 각 디렉터리에 대한 출력이 표시됩니다. Windows 사용자의 경우 Git Bash 또는 WSL로 실행하거나 스크립트의 명령을 수동으로 실행할 수 있습니다.

기본 프로그램 실행

  1. 트리거 절차
    프로젝트 루트 디렉토리에서 실행합니다:
sh run/run_main.sh

이렇게 하면 src/runner/database_manager.py 파일을 실행하여 쿼리 처리를 시작합니다. 프로그램 경로는 스크립트에 설정되어 있습니다.

  1. 출력 확인
    기본 애플리케이션이 실행되면 구성에 따라 SQL 쿼리 결과를 생성합니다. 출력 파일 경로는 src/runner/database_manager.py (명목식 형태로 사용됨) _set_paths 함수에 정의되어 있으며 필요에 따라 조정할 수 있습니다.

주요 기능 작동

  • 자연어를 SQL로 변환
    "매출이 가장 높은 도시는 어디인가요?"와 같은 질문을 입력합니다. 프로그램이 이를 생성합니다:
SELECT city FROM sales ORDER BY amount DESC LIMIT 1

자세한 내용은 questions.json 파일에 직접 질문을 추가하고 실행하여 결과를 확인합니다.

  • CoT 향상
    이 프로젝트는 Query-CoT-SQL 형식의 예제를 제공합니다. 예를 들어
  • 사용자 입력: "평균 연령은 어떻게 되나요?"
  • CoT 프로세스: 먼저 연령 열을 찾은 다음 평균을 계산합니다.
  • 출력:SELECT AVG(age) FROM users.
  • 정렬 기능
    결과가 잘못 생성된 경우 프로그램이 자동으로 수정합니다. 예를 들어 "모든 학생 성적 나열"을 입력했지만 데이터베이스에 여러 테이블이 있는 경우 조인 작업이 올바르게 수행되는지 확인합니다:
SELECT s.name, sc.score FROM students s JOIN scores sc ON s.id = sc.student_id

주의

  • BIRD 데이터 집합을 테스트해야 하는 경우, 다음 링크를 사용하여 Bird/fewshot/questions.json 문서화.
  • 이 프로그램은 여러 모델을 지원하며 기본 구성을 위해 API 키가 필요할 수 있습니다. GPT 또는 DeepSeek를 사용하는 경우 코드에서 키를 설정해야 합니다.

이러한 단계를 통해 자연어를 SQL 쿼리로 쉽게 변환하여 다양한 데이터 분석 작업을 처리할 수 있습니다.

 

애플리케이션 시나리오

  1. 데이터 분석
    데이터 분석가는 이를 사용하여 질문을 SQL로 변환하고 판매 데이터 또는 사용자 행동을 빠르게 집계할 수 있습니다.
  2. 교육 및 훈련
    학생들은 질문을 입력한 다음 생성된 쿼리문을 비교하여 SQL을 학습하는 데 사용할 수 있습니다.
  3. 자동화된 보고
    기업에서는 이를 사용하여 보고서 SQL을 자동으로 생성하고 수동 작성 시간을 줄일 수 있습니다.

 

QA

  1. OpenSearch-SQL을 사용하려면 인터넷 연결이 필요하나요?
    로컬 모델을 사용하는 경우 네트워킹이 필요하지 않습니다. 그러나 GPT와 같은 온라인 모델을 사용할 때는 네트워킹 및 API 키가 필요합니다.
  2. 어떤 데이터베이스가 지원되나요?
    테이블 구조와 데이터만 제공되면 SQL을 지원하는 모든 데이터베이스를 대상으로 합니다.
  3. BIRD 목록에서 1위가 된다는 것은 어떤 의미인가요?
    테스트 세트의 2024년 8월 점수는 72.28%로 텍스트-SQL 작업에서 가장 정확도가 높고 복잡한 쿼리를 처리할 수 있는 것으로 나타났습니다.
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...