SQL Langchain이란?
Database에서 특정 조건을 만족하는 데이터를 가져올때 "조건문"을 설정하거나 다른 Table들과 연관관계를 지정하여 원하는 형태의 데이터를 가져오는데, 이때 Database와 약속된 언어를 사용하여 이러한 요청을 진행하는데 그것이 바로,
쿼리(Query)이다.
쿼리문이라고도 하는데, 대표적인 예로 SELECT * FROM {Table_Name} WHERE "컬럼명" == "값" 형태가 있다.
이러한 쿼리문을 작성하는 것은 조건이 복잡해질수록 난이도가 상승하기에 다른 부서에서 필요한 데이터를 요청할때 데이터 관리자에게 조건을 설명하고 원하는 형태에 관해서 조율 해야 하는 문제가 있어왔습니다만, 최근 SQL Langchain이라는 게임 체인저가 등장하였습니다.
SQL Langchain은 간단하게 말하면, AI를 활용해서 원하는 데이터를 말하면 알아서 쿼리문을 작성해 주는 기능 입니다.
예를 들어
이름이 "김길동"이고 나이는 "30세 이상" 성별은 무관하고, 해당 고객이 구매한 제품을 2024-01-01부터 2024-03-31까지만 가져와봐 |
라고 요청하면 대충 다음과 같이 쿼리문을 작성해준다.(아주 쉬운 예시이다.)
SELECT c.고객명, ci.성별, ci.나이, p.제품명, p.제품 상세정보, p.판매일자 FROM 고객명 c JOIN 고객정보 ci ON c.고객 ID = ci.고객 ID JOIN 제품정보 p ON c.고객 ID = p.고객 ID WHERE c.고객명 = '김길동' AND ci.나이 >= 30 AND p.판매일자 BETWEEN '2024-01-01' AND '2024-03-31' |
물론 완벽하지는 않지만 초기 쿼리문 작성에 큰 도움이 되고, 간단한 데이터 형태라면 거의 원하는 조건을 만족하는 쿼리문이 나온다.
문제는 SQL Langchain을 사용하려면, 별도로 AI사용을 위한 API가 필요하고, GPT는 API를 사용하려면 유료 결제를 해야 한다.
LLAMA3 는 무료다.
이런 추가금액의 필요없이 무료로 Meta에서 배포해준 무료 LLM이 있는데, 바로 라마(llama) 라고 한다.
물론 GPT-4나 GPT-4O, claud와 같은 유료보다는 성능이 조금 떨어지지만 잘만 튜닝하면 상업적 목적으로도 AI활용이 가능하다.
이번엔 llama3와 sql Langchain을 활용하여 다음 기능이 있는 PC 앱을 만들어볼것이다.
1) 데이터 베이스 연결
2) 연결된 데이터 베이스의 데이터 분석
3) 분석된 데이터를 사용하여 인사이트를 표현하기 위한 적합한 쿼리문들 추천
4) 사용자가 원하는 형태의 데이터 추출
5) 3,4 의 데이터를 가져와 실제로 적합한 그래프를 그리는 코드
끝.