본문으로 건너뛰기
r/LangChain조회 5

LLM 및 RAG 지식베이스용 AI 웹 크롤러의 Markdown 변환기

헤딩 기반 청킹과 Docling·Trafilatura 병행 추출, SHA-256 문서 ID로 RAG용 임베딩 품질과 메타정보 보존을 개선했다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

웹 HTML을 그대로 토큰 단위로 분할하면 문단 절단과 계층 정보 손실로 RAG 임베딩의 품질이 저하되므로 작성자는 Docling과 Trafilatura를 병행해 자동 스코어링으로 깔끔한 텍스트를 선택하고 Markdown 헤딩을 기준으로 청크를 생성하는 파이프라인을 설계했다. 각 섹션은 토큰 제한(예: 400 tokens) 내에서 온전히 유지되며 초과 시 문장 단위 오버랩 분할로 문장 절단을 방지하고, 청크에는 원본 URL·SHA-256 문서 ID·토큰 수·헤딩 텍스트와 레벨 같은 구조화된 메타데이터를 포함해 LangChain Document로 바로 매핑하도록 구성되었다. 멀티-URL 큐 병목을 개선해 복잡한 DOM과 쿠키 월을 처리할 수 있게 되었고 다양한 도메인 테스트에서 64개의 고품질 청크를 만들었다고 보고되었으나 구현 복잡성과 운영 비용, 특정 동적 레이아웃에서의 재현 가능성은 추가 검증이 필요하다.

실용적 조언

  • 원본 HTML을 Markdown으로 변환한 뒤 헤딩 단위로 청킹하면 문단·섹션의 계층 정보를 유지할 수 있으며, 토큰 제한 내에서는 섹션을 온전하게 유지하고 초과 시 문장 단위 오버랩을 적용해 문장 절단을 방지해야 한다.
  • 추출 단계에서 Trafilatura로 원시 텍스트를 분리하고 Docling으로 레이아웃·테이블을 처리한 뒤 텍스트 밀도와 구조 요소로 자동 스코어링을 수행하면 서로 다른 도메인의 레이아웃 변화를 보완할 수 있다.
  • 청크 메타데이터로 원본 URL, SHA-256 기반 문서 ID, 정확한 토큰 수, 헤딩 텍스트와 레벨을 포함하면 LangChain Document로의 매핑과 Parent-Child 관계 보존, Self-Querying Retriever 적용이 용이해진다.

섹션별 상세

01
웹 페이지를 단순 문자 수로 분할하면 같은 문단이 여러 청크로 잘리거나 계층적 위치 정보가 사라져 검색 정확도가 떨어졌다. 작성자는 이 문제를 해결하기 위해 HTML을 Markdown으로 파싱한 뒤 헤딩 구조를 기준으로 청크를 생성하는 워크플로를 적용했다. 이 워크플로는 각 섹션을 토큰 제한(예: 400 tokens) 내에서 온전하게 보존하고 초과 시 문장 단위 오버랩 루프를 사용해 문장을 절단하지 않도록 처리했다. 결과적으로 다양한 도메인에 대해 테스트한 배치에서 64개의 '고품질' 청크로 파싱되었다고 보고되었다.
02
추출 품질을 높이기 위해 두 가지 엔진을 병렬로 사용한 자동 스코어링 파이프라인이 도입되었다. 파이프라인에서는 Docling으로 레이아웃과 표를 처리하고 Trafilatura로 원시 텍스트를 분리한 뒤 텍스트 밀도와 구조 요소를 기준으로 스코어를 매겨 더 깔끔한 출력을 동적으로 선택한다. 입력으로 HTML을 받아 두 엔진의 결과를 비교·선택하는 흐름은 특이한 레이아웃에서 한 엔진이 놓친 정보를 다른 엔진이 보완하는 방식으로 동작한다. 게시자는 이 접근으로 복잡한 DOM과 테이블이 섞인 사이트에서도 안정적인 추출이 가능해졌다고 보고했다.
03
청크 단위에 풍부한 메타데이터를 보존하는 설계가 검색 정확도 개선에 핵심 역할을 했다. 각 청크는 원본 URL, SHA-256 문서 ID, 정확한 토큰 수, 현재 헤딩 텍스트와 레벨을 포함하는 구조화된 메타데이터를 가지며 이 메타데이터는 LangChain의 Document 객체로 바로 매핑되도록 준비되었다. 메타데이터에 헤딩과 레벨을 주입하면 Parent-Child 관계나 Self-Querying Retriever 같은 고급 검색 기법에서 문맥을 유지하면서 검색 제약을 적용할 수 있다. 게시자는 이 설계로 RAG 단계에서 문맥 손실 없이 더 정교한 검색과 재조합이 가능하다고 주장했다.
04
대량 URL 처리 루프에서 발생하던 병목을 해결하기 위해 멀티-URL 큐 로직이 개선되었다는 점이 운영적 핵심이다. 개선된 루프는 쿠키 월, 복잡한 DOM, 밀집된 제품 테이블 등을 순회하면서 실패 지점을 방어하고 재시도/우회 전략을 적용한다. 입력 URL 목록을 병렬 처리하고 각 URL에 대해 추출·스코어링·청킹·메타데이터 주입을 순차적으로 적용하는 방식으로 출력 안정성을 확보했다. 게시자는 이러한 변경으로 다양한 도메인에 대해 신뢰성 있게 작동한다고 보고했다.

용어 해설

헤딩 기반 청킹(Heading-Aware Chunking)
문서의 Markdown 헤딩 구조(H1~H6)를 기준으로 텍스트를 분할하는 기법으로, 입력 HTML을 Markdown으로 변환한 뒤 각 헤딩 단위가 토큰 제한 내이면 온전한 단위로 유지하고 초과 시 문장 단위 오버랩 분할로 문맥을 보존하는 방식이다. 이 방법은 임의 문자 수 분할로 인한 문단 절단과 계층 정보 손실을 방지하여 RAG용 임베딩 품질을 높인다.
Trafilatura
웹 페이지에서 본문 텍스트를 추출하기 위한 Python 라이브러리로서 잡다한 레이아웃 요소를 제거하고 연속 텍스트를 분리하는 데 강점이 있다. 본문 추출을 전처리로 수행하면 불필요한 스크립트·네비게이션 텍스트가 줄어들어 임베딩의 잡음이 감소한다.
Docling
복잡한 레이아웃, 테이블, 내비게이션이 혼재한 HTML에서 구조적 콘텐츠를 보존하며 추출하는 도구로, 표나 계층적 섹션을 보존해야 하는 문서에서 유용하다. Trafilatura와 병행 사용하면 레이아웃 기반 추출과 순수 텍스트 기반 추출을 상호 보완할 수 있다.
SHA-256
입력 텍스트 또는 문서 URL로부터 고유한 256비트 해시를 생성하는 해시 알고리즘으로, 각 문서 청크에 불변 식별자를 부여하여 중복 검출과 데이터 무결성 검증에 활용된다. RAG 파이프라인에서 문서 ID를 일관되게 관리하는 수단으로 사용된다.

언급된 도구

Trafilatura추천

웹 페이지에서 원시 본문 텍스트를 추출하는 라이브러리로, 잡음 제거와 연속 텍스트 분리에 사용된다.

Docling추천

복잡한 레이아웃과 표를 구조적으로 처리하는 추출 엔진으로, 레이아웃 보존이 중요한 문서에 사용된다.

LangChain추천

문서 객체 모델을 통해 청크와 메타데이터를 임베딩·검색 파이프라인으로 연결하는 개발 프레임워크로 사용된다.

Apify Actor (ai-web-to-markdown-crawler-llm-rag-optimized)중립링크

공유된 크롤러 구현체로 멀티-URL 처리, 추출·스코어링·헤딩 기반 청킹, 메타데이터 주입을 수행한다.

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 07. 20.수집 2026. 07. 20.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.