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

기능 목록
- "가장 높은 건물은 무엇인가요?"와 같은 자연어 질문을 SQL 쿼리로 변환합니다.
SELECT building_name FROM buildings ORDER BY height DESC LIMIT 1
. - 쿼리 생성 정확도를 향상시키기 위해 자가 학습을 지원하는 CoT(Chain of Thought) 개선 방법론입니다.
- 복잡한 SQL 생성을 최적화하기 위해 SQL과 유사한 중간 언어를 제공합니다.
- 모델 생성 오류(착시 문제)를 줄이기 위한 입력-출력 정렬을 포함합니다.
- 전처리, 추출, 생성, 최적화, 정렬의 다섯 가지 모듈을 지원하여 전체 쿼리 프로세스를 포괄합니다.
- 오픈 소스이며 무료로 제공되므로 사용자는 필요에 따라 코드를 수정하거나 자신의 프로젝트에 통합할 수 있습니다.
도움말 사용
OpenSearch-SQL은 작동하려면 설치 및 구성해야 하는 명령줄 도구입니다. 다음은 처음부터 시작하는 데 도움이 되는 자세한 단계입니다.
설치 프로세스
- Python 환경 준비하기
컴퓨터에 Python 3.8 이상이 설치되어 있는지 확인합니다. 다음과 같이 입력하면 됩니다.python --version
확인합니다. 그렇지 않은 경우 공식 Python 웹사이트(https://www.python.org/)에서 다운로드하여 설치하세요. - 프로젝트 파일 다운로드
브라우저를 열고 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
.
- 종속성 설치
프로젝트 폴더로 이동하여 터미널을 열고 다음 명령을 실행하여 필요한 라이브러리를 설치합니다:
pip install -r requirements.txt
그러면 데이터 처리 및 모델 호출을 위한 라이브러리 등 프로젝트를 실행하는 데 필요한 Python 패키지가 설치됩니다.
데이터 전처리
OpenSearch-SQL은 쿼리 정확도를 높이기 위해 몇 가지 예제가 필요합니다. 제공된 공식 스크립트를 사용하여 데이터를 생성할 수 있습니다.
- 데이터 준비
이 프로젝트는 샘플 파일을 제공합니다.bird_dev.json
위치Bird/bird_dev.json
DAIL-SQL 방법론을 기반으로 합니다. 이 파일은 DAIL-SQL 방법론을 기반으로 생성되며 몇 가지 쿼리 예제가 포함되어 있습니다. 자체 데이터가 있는 경우 이 파일로 대체할 수 있습니다. - 전처리 스크립트 실행
프로젝트 루트 디렉토리에서 실행합니다:
sh run/run_preprocess.sh
이 스크립트는 몇 개의 샷 데이터, 테이블 구조 및 기타 정보를 처리합니다. 완료되면 터미널에 각 디렉터리에 대한 출력이 표시됩니다. Windows 사용자의 경우 Git Bash 또는 WSL로 실행하거나 스크립트의 명령을 수동으로 실행할 수 있습니다.
기본 프로그램 실행
- 트리거 절차
프로젝트 루트 디렉토리에서 실행합니다:
sh run/run_main.sh
이렇게 하면 src/runner/database_manager.py
파일을 실행하여 쿼리 처리를 시작합니다. 프로그램 경로는 스크립트에 설정되어 있습니다.
- 출력 확인
기본 애플리케이션이 실행되면 구성에 따라 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 쿼리로 쉽게 변환하여 다양한 데이터 분석 작업을 처리할 수 있습니다.
애플리케이션 시나리오
- 데이터 분석
데이터 분석가는 이를 사용하여 질문을 SQL로 변환하고 판매 데이터 또는 사용자 행동을 빠르게 집계할 수 있습니다. - 교육 및 훈련
학생들은 질문을 입력한 다음 생성된 쿼리문을 비교하여 SQL을 학습하는 데 사용할 수 있습니다. - 자동화된 보고
기업에서는 이를 사용하여 보고서 SQL을 자동으로 생성하고 수동 작성 시간을 줄일 수 있습니다.
QA
- OpenSearch-SQL을 사용하려면 인터넷 연결이 필요하나요?
로컬 모델을 사용하는 경우 네트워킹이 필요하지 않습니다. 그러나 GPT와 같은 온라인 모델을 사용할 때는 네트워킹 및 API 키가 필요합니다. - 어떤 데이터베이스가 지원되나요?
테이블 구조와 데이터만 제공되면 SQL을 지원하는 모든 데이터베이스를 대상으로 합니다. - BIRD 목록에서 1위가 된다는 것은 어떤 의미인가요?
테스트 세트의 2024년 8월 점수는 72.28%로 텍스트-SQL 작업에서 가장 정확도가 높고 복잡한 쿼리를 처리할 수 있는 것으로 나타났습니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...