하이브리드 검색 및 다중 형식 지원을 갖춘 로컬 우선 문서 RAG 시스템
개발자 도구를 구축하는 팀은 여러 파일 형식을 수집하고, 검색 가능한 지식 기반을 구축하며, 외부 API로 데이터를 전송하지 않고도 RAG(Retrieval-Augmented Generation)를 사용하여 자연어 질의에 답변할 수 있는 완전 로컬의 개인 정보 보호 문서 인텔리전스 시스템이 필요했습니다.
프로젝트 상담하기
과제
기존 RAG 솔루션은 개인 정보 보호에 민감하고 개발자 중심의 사용 사례에 대해 다음과 같은 중대한 한계를 가지고 있었습니다:
- 외부 API 의존성 — 대부분의 RAG 도구는 문서 내용을 클라우드 기반 embedding API로 전송해야 했으며, 이는 개인 정보 보호 요구 사항을 위반했습니다.
- 제한된 형식 지원 — 솔루션은 일반적으로 일반 텍스트 또는 PDF만 처리했으며, 스프레드시트, Word 문서, HTML 및 Markdown은 무시했습니다.
- 부실한 Chunking — 단순한 텍스트 분할은 문서 구조(페이지, 시트, 헤딩)를 무시하여 컨텍스트가 부족한 청크를 생성했습니다.
- 키워드 누락 — 순수 embedding 기반 검색은 lexical 검색이 잡을 수 있는 정확한 키워드 일치를 놓쳤습니다.
- 스프레드시트 처리 미흡 — RAG 시스템은 구조화된 표 형식 데이터를 처리하거나 필터링/집계 질의에 답변할 수 없었습니다.
- 재순위화 없음 — 1차 검색은 2차 품질 필터 없이 부분적으로만 관련된 결과를 종종 표출했습니다.
우리의 솔루션
우리는 다중 형식 문서 수집, 구조 인식 Chunking, 로컬 embedding 생성, 하이브리드 검색 파이프라인(의미론적 + 전체 텍스트 + 최신성), Cross-Encoder Reranking 및 웹 기반 UI를 갖춘 완전한 로컬 우선 RAG 시스템을 구축했습니다. 이 모든 것은 사용자 기기에서 전적으로 실행됩니다.
아키텍처
- Document Loaders: PDF, DOCX, XLSX, CSV, HTML, Markdown 및 일반 텍스트를 위한 형식별 파서
- Chunker: 페이지, 시트 및 헤딩 경계를 유지하는 구조 인식 분할
- Embeddings: Transformers.js를 통한 로컬 embedding 모델 (외부 API 호출 없음)
- Vector Database: embedding 저장 및 유사성 검색을 위한 LanceDB (서버리스, 파일 기반)
- Full-Text Search: lexical 일치를 위한 Trigram 기반 인덱싱
- Reranker: 컨텍스트 인식 결과 점수화를 위한 Cross-Encoder 모델
- Query Analyzer: 의미론적 질의와 구조화된 질의 간의 의도 감지 라우팅
- Web Server: 프로젝트 관리 및 검색 엔드포인트를 갖춘 Express.js API
- Frontend: 문서 업로드, 관리 및 대화형 검색을 위한 웹 기반 UI
문서 처리 파이프라인
다중 형식 로더
레지스트리 패턴은 파일 유형을 자동으로 감지하고 적절한 파서로 라우팅합니다:
- PDF — 페이지 수준 분할을 통한 텍스트 추출
- Word (.docx/.doc) — 문서 계층을 유지하는 헤딩 인식 파싱
- Excel/CSV — 헤더 감지 및 행 수준 콘텐츠를 포함한 시트별 파싱
- HTML — 구조 보존을 위한 태그 인식 추출
- Markdown — 헤딩 기반 섹션 파싱
- Plain Text — 라인 기반 분할
각 로더는 콘텐츠와 함께 메타데이터(제목, 저자, 생성일, 페이지/시트 수, 단어 수)를 추출하여 소스 참조가 있는 구조화된 섹션을 생성합니다.
구조 인식 Chunking
단순한 텍스트 분할과 달리, 청커는 문서 경계를 존중합니다:
- 페이지 구분(PDF), 시트 경계(스프레드시트) 및 헤딩 계층(Word/Markdown) 유지
- 구성 가능한 청크 크기 및 중첩을 사용한 토큰 기반 크기 조정
- 계층적 대체: 먼저 섹션별로 분할하고, 그 다음 단락별로, 그 다음 문장별로 분할합니다.
- 각 청크는 귀속을 위한 원본 메타데이터(페이지 번호, 시트 이름, 헤딩)를 유지합니다.
Embedding 및 인덱싱
로컬 Embedding 모델
- Transformers.js를 통해 전적으로 로컬에서 실행 — 데이터가 기기를 벗어나지 않습니다.
- 성능 최적화를 위한 양자화 모델
- 효율적인 대량 처리를 위한 배치 embedding
- L2 normalization을 이용한 단어 경계에서의 자동 절단
벡터 저장소
LanceDB는 서버리스 벡터 저장소를 제공합니다:
- 파일 기반 (별도의 데이터베이스 서버 필요 없음)
- 독립적인 인덱스를 통한 프로젝트별 격리
- 중복 제거를 위한 SHA256 기반 캐시 키
- 필터링된 검색을 위해 벡터와 함께 저장된 메타데이터
하이브리드 검색 파이프라인
검색 파이프라인은 단일 접근 방식보다 더 나은 결과를 위해 세 가지 순위 신호를 결합합니다:
신호 1: Embedding 검색 (의미론적)
벡터 유사성 검색은 다른 단어가 사용될 때에도 관련된 의미를 가진 청크를 찾습니다. 의역, 동의어 및 개념적 질의를 처리합니다.
신호 2: 전체 텍스트 검색 (어휘적)
Jaccard 유사성을 이용한 Trigram 기반 인덱싱은 embedding 검색이 놓칠 수 있는 정확한 키워드 일치를 잡아냅니다. 이는 기술 용어, 이름 및 식별자에게 중요합니다.
신호 3: 최신성 부스트
지수 감쇠 가중치는 최근 액세스되거나 수정된 문서를 선호하여 최신 정보가 먼저 나타나도록 합니다.
점수 조합
신호는 구성 가능한 가중치(기본값: 의미론적 50%, lexical 25%, 최신성 25%)로 결합되고, 정규화되며, 최소 점수 임계값으로 필터링됩니다.
Cross-Encoder 재순위화
초기 검색 후, Cross-Encoder 모델은 상위 후보의 점수를 재조정합니다:
- 컨텍스트 인식 점수화는 질의-문서 쌍을 함께 고려합니다(독립적으로 고려하지 않음).
- 용어 중복에 대한 키워드 부스트 계산
- 혼합 점수화 (Cross-Encoder + 키워드 신호)
- 1차 검색만으로 얻은 결과보다 더 높은 정확도의 최종 순위 목록을 생성합니다.
구조화된 데이터 지원
스프레드시트 콘텐츠의 경우, 시스템은 추가 기능을 제공합니다:
- 열 유형 자동 감지 (숫자, 날짜, 부울, 문자열)
- 자연어 필터링 (예: "급여가 임계값을 초과하는 엔지니어링 부서 직원")
- 집계 지원 (개수, 합계, 평균, 최소, 최대)
- 질의 분석기는 구조화된 질의를 embedding 검색 대신 전용 엔진으로 라우팅합니다.
웹 인터페이스
- 프로젝트 관리 — 지식 기반 프로젝트 생성, 업데이트 및 삭제
- 문서 업로드 — 형식 자동 감지 기능을 갖춘 드래그 앤 드롭 파일 업로드
- 문서 생성 — UI에서 직접 텍스트로 문서 생성
- 대화형 검색 — 순위가 매겨진 결과를 포함하는 자연어 질의 인터페이스
- 통계 — 프로젝트별 인덱스 크기, 문서 수 및 형식 분포
주요 기능
- 완전 로컬 — 모든 처리는 장치 내에서 이루어집니다. embedding 또는 검색을 위한 외부 API 호출이 없습니다.
- 9가지 입력 형식 — PDF, DOCX, DOC, XLSX, XLS, CSV, HTML, Markdown, 일반 텍스트
- 구조 인식 Chunking — 페이지, 시트 및 헤딩을 청크 경계로 유지합니다.
- 하이브리드 검색 — 더 나은 검색을 위해 의미론적, lexical 및 최신성 신호를 결합합니다.
- Cross-Encoder 재순위화 — 더 높은 정확도의 결과를 위한 2차 점수화
- 구조화된 질의 — 스프레드시트 데이터에 대한 자연어 필터링 및 집계
- 서버리스 Vector DB — 인프라 오버헤드 없이 LanceDB 파일 기반 저장소
- 문서 작성 — PDF, DOCX 및 XLSX 생성을 위한 내보내기 기능
- 프로젝트 격리 — 별도의 인덱스를 가진 독립적인 지식 기반
- 웹 UI — 문서 관리 및 대화형 검색을 위한 완전한 인터페이스
결과
기술 스택
caseStudyDetail.more 사례 연구
더 많은 기술 구현 사례를 살펴보세요
AI 기반 멀티 에이전트 오케스트레이션 및 교차 문서 참조 스프레드시트 & 문서 분석
한 기업의 데이터 팀은 자연어를 사용하여 대규모 스프레드시트 및 문서(Excel, CSV, Google Sheets, PDF, Word 문서) 컬렉션을 분석, 쿼리 및 편집해야 했습니다. 이 솔루션은 여러 파일에 걸쳐 데이터를 교차 참조하고 수동 데이터 정제 없이 다단계 분석 워크플로우를 실행할 수 있는 기능을 제공합니다.
Catant HR 및 인력 관리 플랫폼
Catant는 기업이 단일 대시보드에서 직원, 급여, 근태 및 규정 준수를 관리하도록 돕는 모듈형 HR 및 인력 관리 플랫폼입니다.
자주 묻는 질문
MicrocosmWorks는 모든 문서 수집, 임베딩 생성, 벡터 저장 및 LLM 추론이 외부 클라우드 API로 어떠한 데이터도 전송하지 않고 전적으로 귀하의 인프라에서 실행되는 local-first RAG 시스템을 구축했습니다. 이러한 아키텍처는 기밀 문서, 변호사-의뢰인 특권 자료, 또는 민감한 지적 재산을 다루는 조직에 필수적입니다. 데이터 주권 요구사항으로 인해 암호화를 사용하더라도 클라우드 처리가 일체 금지되는 경우에 특히 그렇습니다.
MicrocosmWorks는 BM25 키워드 검색과 밀집 벡터 시맨틱 검색을 병렬로 실행하는 하이브리드 검색 파이프라인을 구현했습니다. 그런 다음 역순위 융합(reciprocal rank fusion)을 사용하여 결합된 결과를 병합하고 재순위 지정한 후, LLM에 컨텍스트로 전달합니다. 이 접근 방식은 시맨틱 검색이 놓칠 수 있는 제품 코드 및 법률 인용과 같은 정확히 일치하는(exact-match) 쿼리를 포착하는 동시에, 키워드 검색으로는 결코 찾을 수 없는 개념적으로 관련된 콘텐츠도 검색합니다.
MicrocosmWorks는 PDF, DOCX, XLSX, PPTX, HTML, Markdown, plain text를 위한 형식별 파서를 구축했으며, 스캔된 PDF 및 이미지 기반 문서를 위해 Tesseract를 사용하는 OCR 파이프라인을 갖추고 있습니다. 이 시스템은 PDF에 선택 가능한 텍스트가 포함되어 있는지 또는 OCR이 필요한지 자동으로 감지하고, 테이블 구조와 읽기 순서를 보존하기 위해 레이아웃 분석을 적용하며, 임의의 문자 제한 대신 의미론적 경계를 사용하여 문서를 청킹하여 검색 품질을 향상시킵니다.
MicrocosmWorks는 문서 체크섬을 추적하고 마지막 데이터 수집 실행 이후 변경된 파일만 재처리하는 증분 색인 방식을 구현했습니다. 업데이트된 문서는 기존 청크가 제거되고 새로운 청크가 원자적으로 삽입되므로, 검색 색인이 일관성 없는 상태가 되지 않습니다. 또한 이 시스템은 버전별 문서 검색을 지원하여, 감사 또는 규정 준수 목적으로 필요할 때 사용자가 문서의 이전 버전을 질의할 수 있도록 합니다.
MicrocosmWorks는 로컬 RAG 파이프라인이 적당한 하드웨어에서 실행되도록 최적화했으며, 최소 권장 구성은 32GB RAM, 8개의 CPU 코어를 갖춘 머신이며, 임베딩 생성 가속화를 위해 선택적으로 미드레인지 GPU를 사용할 수 있습니다. GPU 하드웨어가 없는 조직의 경우, 시스템은 약간 더 높은 지연 시간을 가진 CPU 기반 임베딩 모델로 전환되며, 벡터 데이터베이스는 SSD 스토리지에 최적화되어 최대 100만 개의 문서 청크에 대해 쿼리 응답 시간을 200ms 미만으로 유지합니다.