---
tags: [AI-Agent, RAG, 수집, 파싱]
---

# 문서 수집과 파싱

> 원본 문서를 검색 가능한 깨끗한 텍스트 + 메타데이터로 바꾸는 파이프라인의 첫 단계. **RAG 품질의 상한선은 여기서 정해진다** — 파싱이 깨진 문서는 이후 청킹·임베딩·리랭킹을 아무리 잘해도 복구되지 않는다.

## 왜 첫 단계가 상한선인가

- 검색 실패를 거슬러 올라가 보면 상당수가 "정답 문서가 인덱스에 제대로 들어간 적이 없음"으로 끝난다 — 표가 뭉개짐, 2단 조판이 뒤섞임, 스캔본이 빈 텍스트.
- 뒤 단계는 전부 이 단계의 출력을 입력으로 받는다. garbage in, garbage out이 가장 문자 그대로 작동하는 지점.

## 수집 — 소스 인벤토리부터

- **어디에 지식이 있는가**: 위키·PDF·공유드라이브·티켓·DB. 소스 목록과 각 소스의 갱신 주기를 먼저 표로 만든다.
- **전량 vs 증분**: 초기엔 전량 수집으로 시작해도 되지만, 운영에선 변경 감지(수정시각·해시·웹훅) 기반 증분이 필수 → [[실시간 지식 파이프라인]].
- **권한(ACL)을 메타데이터로**: 문서 접근 권한을 수집 시점에 함께 저장해야 검색 시점에 "이 사용자가 볼 수 있는 문서만" 필터링할 수 있다. 나중에 붙이기 가장 어려운 속성이니 처음부터.
- **삭제 전파**: 원본에서 지워진 문서는 인덱스에서도 지워야 한다 — 잔존하면 철회된 내용으로 답한다.

## 파싱 — 포맷별 함정

| 포맷 | 함정 | 처방 |
|------|------|------|
| 디지털 PDF | 2단 조판 읽기 순서 뒤섞임, 머리글·바닥글 반복 혼입 | 레이아웃 인지 파서([[Docling]] · [[OpenDataLoader]]), 반복 요소 제거 |
| 스캔 PDF·이미지 | 텍스트 추출하면 빈 문자열 | 스캔 여부 감지 후 OCR 경유([[PaddleOCR]] · [[Textract]]) |
| 표 | 셀을 한 줄로 펴면 행·열 의미 소실 | 마크다운/HTML 표 구조로 보존, 표 전용 청크 고려 |
| HTML | 내비게이션·푸터·광고가 본문보다 김 | 본문 추출(readability류), boilerplate 제거 |
| 슬라이드 | 텍스트가 파편적, 정보가 그림에 집중 | 발표자 노트·캡션 수집, 이미지엔 설명 생성 |
| 다이어그램·차트 | 텍스트 추출 불가 | 캡션/VLM 설명 생성, 최소한 "이미지 있음 + 제목"이라도 색인 |

> [!TIP] 파싱 결과는 눈으로 검사한다
> 소스별 3~5개 문서의 파싱 결과를 원본과 대조하는 샘플 검사가, 파이프라인 코드 리뷰보다 문제를 더 많이 잡는다.

## 메타데이터 설계 — 검색·출처의 원천

최소 세트: `source`(원본 위치/URL) · `title` · `updated_at` · `section`(문서 내 위치) · `acl`.

- `source`·`section`은 [[Grounding]]의 출처 표기가 되고, `updated_at`은 신선도 필터·최신 우선 랭킹에, `acl`은 권한 필터에 쓰인다.
- 텍스트 외에 **페이지·위치(bbox)·OCR confidence·원본 이미지 참조**도 산출물에 남기면 출처 하이라이트와 파싱 디버깅이 가능해진다 — ACL처럼 나중에 붙이기 어렵다.
- 메타데이터 필터는 벡터 검색 전에 후보를 좁히는 **가장 싼 정밀도 개선**이다 → [[Vector Database]]의 필터링. 단 과한 사전 필터는 recall을 조용히 깎으니 필터 추가도 골든셋 회귀로 검증하고, `acl`은 품질 튜닝이 아니라 **보안 강제 조건**으로 따로 취급한다.

## 정제 — 중복과 버전

- **중복 제거**: 같은 문서의 복사본·구버전이 여러 소스에 있으면 top-k를 중복이 점령해 검색 다양성이 죽는다. 해시·유사도로 dedupe.
- **버전 정책을 명시적으로**: 최신만 유지할지, 버전 태깅으로 공존시킬지 결정해 둔다. "2023년 규정과 2025년 규정이 둘 다 검색됨"은 정책 부재의 증상.

## 관련 문서

- [[RAG 구축 지도]] — 전체 파이프라인에서의 위치
- [[Chunking]] — 다음 단계
- [[실시간 지식 파이프라인]] — 증분 수집·신선도 운영
