피드로 돌아가기
Why I built ragwise: pip-installable RAG with hybrid search, streaming, and agent tools by default
Dev.toDev.to
AI/ML

Hybrid Search 기본 탑재 및 pip 설치 기반의 경량 RAG 라이브러리 ragwise 구현

Why I built ragwise: pip-installable RAG with hybrid search, streaming, and agent tools by default

Laxmikanta Nayak2026년 4월 17일5intermediate

Context

기존 RAG 프레임워크들이 Dense Search 중심의 설계를 채택하여 에러 코드나 제품명 같은 Exact Keyword 검색에서 낮은 정확도를 보이는 한계 노출. LangChain 등은 Hybrid Search를 선택 사항으로 제공하며 설정 복잡도가 높고, RAGFlow는 고성능이나 Docker 기반의 무거운 인프라 요구 사항으로 인해 도입 장벽이 존재함.

Technical Solution

  • BM25(Sparse)와 Vector(Dense) 검색을 병렬로 수행하고 Reciprocal Rank Fusion(RRF)을 통해 순위를 통합함으로써 스코어 정규화 과정 없는 강건한 검색 결과 도출
  • 메모리, LanceDB, PostgreSQL(pgvector) 세 가지 백엔드를 단일 커넥션 스트링 인터페이스로 추상화하여 환경에 따른 유연한 Store 전환 구조 설계
  • SHA-256 해시 기반의 Incremental Indexing을 구현하여 파일 변경 사항만 반영함으로써 중복 임베딩 연산 제거 및 인덱싱 효율 극대화
  • Multi-tenant Isolation을 위해 Ingest 단계에서 tenant_id를 부여하고 Query 시점에 Post-retrieval Filtering을 수행하는 격리 아키텍처 적용
  • Async-first 설계를 통한 Streaming 응답 지원 및 LLM 벤더별 Tool Schema 사전 정의를 통한 Agent 도구화 최적화

- 도메인 특성상 고유 명사나 에러 코드 검색이 빈번한 경우 Dense-only 대신 Hybrid Search 도입 검토 - 검색 결과 통합 시 정규화 비용을 줄이기 위해 랭킹 기반의 RRF(Reciprocal Rank Fusion) 알고리즘 적용 고려 - 인덱싱 비용 절감을 위해 파일 단위 해시 체크를 통한 증분 업데이트(Incremental Indexing) 로직 구현 - SaaS 환경 설계 시 데이터 격리를 위해 메타데이터 필터링 기반의 Multi-tenancy 전략 수립

원문 읽기