pg-jev - 자연어 조건으로 데이터를 검색하고 분류하는 PostgreSQL 확장
요약
pg-jev는 PostgreSQL 확장 기능으로, SQL 쿼리 내에서 '고객의 감정'이나 '처리 부서' 같은 자연어 조건을 사용하여 데이터를 필터링하고 분류할 수 있게 합니다. 별도의 벡터 컬럼 없이 기존 테이블에 적용 가능하며, 날짜/숫자는 SQL로 처리하고 의미 판단만 모델이 담당합니다.
핵심 포인트
- 자연어 조건으로 데이터 필터링 및 분류가 가능해짐.
- 별도 임베딩이나 벡터 인덱스 없이 기존 테이블에 적용 가능.
- 기존 SQL 기능(조인, 집계)과 결합하여 사용 가능.
- 병렬 요청 처리와 캐싱을 통해 효율성을 높임.
- SQL 안에
“고객이 화가 났는가”, “어느 팀이 처리해야 하는가” 같은 자연어 조건을 넣어 행을 필터링하고 분류하거나 점수순으로 정렬하는 확장 - 자연어를 SQL로 바꾸는 도구가 아니라,
각 행의 내용을 TypeSafe의 Jev 모델이 판단하고 그 결과를 SQL에서 사용하는 방식 - 별도의 임베딩, 벡터 컬럼이나 검색 인덱스 없이 기존 테이블과 뷰에 적용 가능
jev()
는 조건 충족 여부, jev_prob()
는 확률, jev_choice()
는 선택지, jev_score()
는 단계별 기준에 따른 점수를 반환
- 불만이 강한 고객 문의 찾기, 문의 담당 부서 배정, 상품의 고급스러움에 따른 정렬 등에 활용
기존 SQL의 조건, 조인, 집계와 결합할 수 있으며, 날짜와 숫자는 SQL로 처리하고 의미 판단만 모델에 맡기는 방식
- 기본적으로
20개 행을 묶어 병렬 요청하고, 세션 안에서 판단 결과를 캐시해 반복 조회 비용을 줄임 - 자체 측정에서 2,000개 행의 첫 조회는 약
3.5초와 $0.012, 캐시를 사용한 두 번째 조회는 약 50ms
jev_stats()
로 요청 수, 토큰과 추정 비용을 확인하고, 쿼리별 전송 행 수와 문자 수를 제한 가능
판단할 행의 데이터가 외부 API로 전송되며, 필요한 컬럼만 담은 뷰로 전송 범위를 줄일 수 있음
- PostgreSQL 14~17,
plpython3u
, 슈퍼유저 권한과 TypeSafe API 키 필요
- TypeSafe와 별개로 개발된 비공식 프로젝트이며 PostgreSQL License 적용
댓글과 토론
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기