RAGFlow Ingestion Pipeline — 문서 처리 워크플로우
RAGFlow Ingestion Pipeline — 문서 처리 워크플로우
RAGFlow의 ingestion pipeline은 문서를 고품질 AI 검색·답변에 맞게 준비하는, 단계별로 커스터마이즈 가능한 워크플로우예요. 빌딩 블록처럼 여러 처리 '컴포넌트'를 연결해 내 문서에 맞는 파이프라인을 만들면 됩니다.
RAGFlow는 내장 모듈 DeepDoc 으로 지능형 파싱을 해 정확한 검색을 위한 문서 분할을 수행해요. 파일 소스가 다양하고 레이아웃이 복잡하며 의미가 풍부한 실제 요구를 다루기 위해 ingestion pipeline이 도입됐어요. 파이프라인으로 시나리오별 다른 파싱·분할 규칙을 적용하고, 요약·키워드 추출 같은 전처리를 추가하고, 클라우드 드라이브·온라인 데이터 소스에 연결할 수 있습니다.
핵심 컴포넌트
- Parser: 파일(PDF, 이미지, 이메일 등)을 읽고 텍스트와 구조를 추출.
- Transformer: AI로 요약·키워드·질문을 추가해 검색을 개선.
- Chunker: 긴 텍스트를 AI 검색에 적합한 크기의 청크로 분할.
- Indexer: 마지막 단계. 처리된 데이터를 문서 엔진(하이브리드 풀텍스트+벡터 검색 지원)에 전달.
파이프라인 만들기
- Agent 페이지로 이동.
- Create agent 를 누르고 빈 캔버스 또는 사전 빌드 템플릿(초보자 권장)에서 시작.
- 오른쪽 패널에서 컴포넌트를 캔버스로 드래그해 연결 (예: Parser → Chunker → Transformer → Indexer).
Parser 설정
Parser는 파일을 구조화된 텍스트로 변환하며 레이아웃·표·헤더·기타 서식을 보존해요. 지원 파일은 8개 범주, 23+ 형식(PDF, Image, Audio, Video, Email, Spreadsheet, Word, PPT, HTML, Markdown)입니다. 주요 설정은 다음과 같아요.
- PDF: DeepDoc(기본, RAGFlow 내장 모델. 스캔 문서·표 포함 복잡한 레이아웃에 적합), MinerU(수식 등 복잡한 요소에 강함), Naive(복잡한 요소 없는 깨끗한 텍스트 PDF용 단순 추출)
- 이미지: 기본 OCR. 고급 시각 이해가 필요하면 VLM(비전 언어 모델) 구성 가능
- 이메일: 파싱할 필드(예: "subject", "body")를 선택해 정밀 추출
- 스프레드시트: 행/열 구조를 보존한 HTML 출력
- Word/PPT: 문서 계층(제목, 문단, 슬라이드)을 보존한 JSON 출력
- 텍스트·마크업(HTML/MD): 서식 태그 제거 후 깨끗한 텍스트 출력
Chunker 설정
Chunker는 텍스트를 지능적으로 분할해 AI 컨텍스트 창 오버플로를 막고 하이브리드 검색의 의미 정확도를 높여요. 두 가지 핵심 방법이 있고 순차로 함께 쓸 수 있어요.
- By Tokens(기본): chunk size 기본 512 토큰, Overlapped percent 로 앞 청크 끝을 다음 청크 앞에 중복시켜 의미 연속성 확보, 구분자 기본은
\n(단락 경계 우선 분할) - By Title(계층형): 매뉴얼·논문·계약서 같은 구조적 문서에 적합. 장/절 구조로 나눠 각 청크가 완전한 구조 단위가 되게 함
Token과 Title을 함께 쓸 때는 Token chunker를 먼저 연결하고 그 다음 Title chunker를 연결해야 해요. Title chunker를 Parser에 직접 연결하면 Email, Image, Spreadsheet, Text 파일에서 형식 오류가 날 수 있습니다.
Transformer·Indexer 설정
Transformer는 '의미적 격차(Semantic Gap)'를 줄여주는 컴포넌트예요. AI 모델로 의미 메타데이터를 추가해 검색에서 콘텐츠를 더 잘 찾게 해주며 네 가지 생성 유형이 있어요: Summary(개요), Keywords(키워드), Questions(각 청크가 답할 수 있는 질문), Metadata(커스텀 메타데이터). 기능별로 Transformer를 분리하는 게 좋아요. 모델 모드는 Improvise(창의적, 질문 생성에 적합)·Precise(텍스트에 충실, 요약/키워드 추출에 적합)·Balance(중간)가 있어요.
Indexer는 최적 검색을 위해 인덱싱하는 마지막 단계로 검색 엔진(Infinity, Elasticsearch, OpenSearch 등)에 데이터를 씁니다.
- 검색 방식: Full-text(정확 일치 키워드), Embedding(벡터 유사도 의미 검색), Hybrid(권장, 둘을 결합해 최상 리콜)
- 검색 전략: Processed text(기본, 청크 텍스트 인덱싱), Questions(생성한 질문 인덱싱. 텍스트-to-텍스트보다 높은 유사도 매칭을 보이는 경우 많음), Augmented context(원문 대신 요약 인덱싱. 넓은 토픽 매칭에 적합)
- Filename weight: 문서 파일명을 검색의 의미 정보로 포함하는 슬라이더
여러 데이터셋을 동시에 검색하려면 선택한 모든 데이터셋이 같은 임베딩 모델을 써야 합니다.
테스트와 연결
캔버스에서 Run 을 누르면 샘플 파일을 업로드해 단계별 결과를 볼 수 있어요. 만들어진 파이프라인을 데이터셋과 연결하려면 데이터셋 생성/편집 시 Ingestion pipeline 섹션에서 Choose pipeline 을 눌러 저장한 파이프라인을 선택하면 됩니다. 이제 이 데이터셋에 업로드되는 모든 파일은 커스텀 파이프라인으로 처리돼요.
더 알아보기
- 기본 데이터셋 구성은 Configure Dataset 참고
- 서버 구동은 Quickstart 참고
- DeepDoc에 대한 더 자세한 정보는 RAGFlow GitHub 참고