pg-jev, TypeSafe Jev API로 SQL 자연어 검색 지원
·2026.10.08 09:50
핵심 내용
pg-jev 확장은 TypeSafe Jev API로 SQL에서 자연어 조건을 평가한다.
자세히 보기
핵심 기능
pg-jev는 SQL 쿼리 내에서 자연어 조건으로 데이터를 검색하고 분류할 수 있게 하는 PostgreSQL 확장 프로그램이다. TypeSafe Jev API와 연동해 각 행을 조건과 비교한다. 주요 함수는 다음과 같다:
jev(row, condition [, threshold]):WHERE절에서 사용하는 불리언 술어를 반환한다. 기본 임계값은 0.5이다.jev_prob(row, condition): 행이 조건을 충족할 확률(0~1)을 반환한다.jev_choice(row, question, options): 목록에서 가장 가능성 높은 선택지를 반환한다.jev_score(row, question, levels): 순서가 있는 수준에 따라 행을 점수화한다.
성능 및 설정
API 호출에 의존하므로 성능 튜닝이 중요하다. 기본 설정은 다음과 같다:
- 배치 크기:
jev.batch_size기본값은 20이다. 배치 크기가 커지면 정확도가 떨어진다(20일 때 100%, 40일 때 92~98%, 80 이상에서 더 낮음). - 동시성:
jev.concurrency기본값은 16이다. - 선독:
jev.max_prefetch_rows기본값은 5,000으로, 검색 시 미리 읽을 행 수를 제어한다. - 캐시: 응답은 백엔드 세션 동안 행 내용과 질문에 따라 캐시된다. 캐시는
jev_cache_clear()호출 또는 세션 종료까지 유지된다. 별도의jev.cache_ttl설정은 없으며, 캐시 수명은 세션에 종속된다. - 모델: 기본적으로
jev-latest를 사용한다.
설치 및 요구 사항
- PostgreSQL 버전: 14~17을 지원한다.
- 의존성: 비신뢰 언어 특성상
plpython3u와 superuser 권한이 필요하다. - API 키: TypeSafe 호스트에서는 유효한 TypeSafe API 키(
jev.api_key)가 필수다. - 설치 방법: PGXN(
pgxn install jev), 소스(make install), 또는 Docker로 설치할 수 있다.
제한 사항 및 보안
- 전체 테이블 스캔: 설계상 실행자가 요청한 모든 행을 API로 전송한다. 먼저 저렴한 SQL 술어로 행을 필터링해야 한다.
- 데이터 프라이버시: 행 데이터가 제3자 API로 전송된다. 공유할 수 없는 민감한 데이터에는 사용하지 말아야 한다.
- 비용 제어: 조기 종료를 위해
LIMIT을 사용하고,jev.max_rows_per_statement로 지출 상한을 설정한다. - 라이선스: PostgreSQL License. 이 프로젝트는 TypeSafe와 관련이 없다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.