- 스프링 AI의 PDF 문서 파서는 아파치 PDF Box를 기반으로 하며, PDF를 그래픽적으로 배치된 박스들의 집합으로 인식합니다. 🧱
- PDF Box는 OCR 기능을 내장하지 않으며, 동시성을 지원하지 않아 단일 스레드 처리가 필수적이고, 인스턴스 생성 비용이 높아 멀티 인스턴스도 비효율적입니다. 🚫
- 아파치 Tika는 PDF Box를 백엔드로 사용하여 1,000가지 이상의 다양한 문서 형식을 파싱하며, Tesseract 기반의 OCR 기능을 지원합니다. 🧩
- Tesseract를 이용한 OCR은 CPU 집약적이고 처리 속도가 매우 느리며, 정확한 작동을 위해 언어별 학습 데이터와 이미지 전처리(흑백 변환, 선명도 조절 등)가 필요합니다. 🐢
- 스프링 AI의
PagePdfDocumentReader는 PDF Box 래퍼로, 상하단 여백 제거 기능을 제공하지만, TikaDocumentReader는 Tika의 풍부한 고급 옵션(예: OCR 전략, 이미지 처리)을 직접 지원하지 않아 기능이 제한적입니다. ✨
- 문서 전처리는 RAG(검색 증강 생성) 시스템에서 임베딩 품질을 높이는 데 핵심적이며, 특히 구조화된 문서(예: 계약서)의 경우 문맥 유지를 위한 복잡한 전처리 로직이 요구됩니다. ✂️
- 범용적인 문서 파서는 존재하지 않으며, 문서 형식에 특화된 전처리 전략이 임베딩 일치율을 높이는 데 결정적인 역할을 합니다. 🎯
- 복잡한 PDF 파싱이나 OCR 처리 시, 느린 Tesseract 대신 외부 파싱 API나 LLM(대규모 언어 모델)을 활용하는 것이 더 효율적일 수 있습니다. 🤖
- 문서 리더는 AI 분야와 직접적으로 관련이 깊으며, 외부 텍스트 데이터를 AI 시스템으로 가져오는 가장 기본적인 방법입니다. 📚