-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Labels
enhancementNew feature or requestNew feature or request
Description
기능 설명 (Description)
- 현재 Lang2SQL은 벡터 스토어로 FAISS, pgvector만을 지원하고 있으며, table_schema만 vector search 기반으로 검색되고 glossary 및 query example은 전체 로드(full scan) 방식으로 처리되고 있습니다.
- 이 Issue에서는 Qdrant를 새로운 벡터DB backend로 추가하고, 카테고리별로 embedding vector와 payload를 분리하여 저장할 수 있는 구조를 도입하려고 합니다.
- 특히 Qdrant의 payload(메타데이터) 기능을 적극 활용할 예정입니다.
왜 필요한가요? (Motivation / Use Case)
- glossary, query example 데이터도 추가됨에 따라 기존 faiss는 관리에 복잡함을 불러오는것으로 보입니다.
- semantic으로 찾고 싶은 정보는 vector에 반드시 들어가도록 변경하고, semantic 검색에는 필요 없지만 결과 해석에 필요한 건 payload로 빼는 것을 구현하면 좀 더 정확한 정보가 검색될것을 기대합니다.
제안하는 해결 방법 (Proposed Implementation)
- Qdrant 추가 (Docker Compose)
- 개발/로컬 환경에서 바로 사용할 수 있도록 docker-compose.yml에 Qdrant를 신규로 추가합니다.
- 카테고리별 Collection 분리 및 Upsert 워크플로우 구현
- Qdrant에 아래 3개 collection을 분리하여 저장합니다.
- lang2sql_table_schema
- lang2sql_glossary
- lang2sql_query_example
- Embedding 대상 최소화 + Payload 분리 저장
- Qdrant에 아래 3개 collection을 분리하여 저장합니다.
- 각 collection은 가능한 동일한 Point 구조를 가지되 category별 payload schema를 달리합니다.
- UI에 “Update” 버튼을 연동
- 초기 버전 구현시 버튼 클릭 시 해당 category의 데이터를 전체 upsert(full refresh) 하도록 구현합니다.
추가 고려사항 (Additional Context)
- 기존 faiss, pgvector 관련 코드를 전체 제거하는것을 고려합니다.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request