Skip to content

RAG 지식 파이프라인 & 벡터 저장소 연동

SyncCrawl은 수집한 웹 데이터를 정제하여 생성형 AI 애플리케이션에서 활용할 수 있는 RAG(Retrieval-Augmented Generation) 지식베이스로 변환합니다.


지식화 파이프라인 구성


주요 RAG 처리 단계

1. 노이즈 제거 및 구조화 (Boilerplate Stripping)

웹 페이지에는 내비게이션 바, 푸터, 광고 배너, 저작권 문구 등 질의응답에 불필요한 요소가 포함될 수 있습니다.

  • 본문 추출 알고리즘: 텍스트 밀도와 태그 패턴을 분석하여 주요 콘텐츠 본문을 추출합니다.
  • 메타데이터 보존: 원본 페이지 URL, 수집 시각, 문서 제목, 카테고리 태그 등을 청크 메타데이터로 함께 인덱싱하여 검색 시 출처(Citation)를 제공합니다.

2. 문맥 보존 시맨틱 청킹 (Context-Preserving Chunking)

  • 구조 인식 분할: HTML 헤딩(<h1>~<h6>), 문단(<p>), 리스트(<ul>, <ol>), 표(<table>) 경계를 고려하여 분할합니다.
  • 오버랩 설정: 청크 간 적정 오버랩(예: 100~200 토큰)을 유지하여 문맥 단절을 방지합니다.

3. 임베딩 모델 지원

LangChain4j 프레임워크와의 표준 인터페이스를 통해 다양한 임베딩 모델을 교체하여 적용할 수 있습니다.

모델 구분지원 임베딩 모델주요 특징 및 적합 환경
사내 폐쇄망 (On-Premise)BGE-M3, KoSimCSE, Snowflake-Arctic외부 통신이 차단된 온프레미스 환경, 한국어 검색
상용 클라우드 (API)OpenAI text-embedding-3-large, Cohere v3글로벌 다국어 RAG 환경
경량 CPU 런타임all-MiniLM-L6-v2, ONNX Runtime저비용 인프라 및 엣지 서버 환경

지원 벡터 데이터베이스 (Vector DB)

SyncCrawl은 기업의 인프라 환경에 맞춰 다양한 Vector DB 드라이버를 제공합니다.

java
// LangChain4j 기반 Vector DB 연동 예시 (Spring Boot Bean 설정)
@Bean
public EmbeddingStore<TextSegment> embeddingStore(PgVectorProperties properties) {
    return PgVectorEmbeddingStore.builder()
            .host(properties.getHost())
            .port(properties.getPort())
            .database(properties.getDatabase())
            .user(properties.getUsername())
            .password(properties.getPassword())
            .table("synccrawl_knowledge_vectors")
            .dimension(1024) // BGE-M3 기준
            .build();
}
  • PostgreSQL (pgvector): 별도의 전용 DB 추가 없이 기존 RDBMS 인프라에서 관계형 데이터와 벡터를 함께 관리
  • Milvus / Qdrant: 대규모 벡터 데이터셋의 분산 처리 및 고속 검색 지원
  • Elasticsearch / OpenSearch: 키워드 BM25 검색과 벡터 Dense Retrieval을 결합한 하이브리드 검색 지원

지식 동기화 및 라이프사이클 관리

  • 증분 업데이트(Incremental Sync): 웹 페이지 내용이 변경된 경우에 한해 청크를 갱신하고 벡터를 계산합니다.
  • TTL 기반 자동 만료: 유효 기간이 지난 공지사항이나 일회성 데이터는 설정된 주기(TTL)에 따라 정리할 수 있습니다.
  • 도메인 신뢰도 가중치: 공식 출처와 일반 웹사이트 간 가중치를 설정하여 검색 시 우선순위를 제어합니다.