콘텐츠로 이동

LlamaParse - RAG용 문서 파싱 치트시트

LlamaParse - RAG용 문서 파싱 치트시트

LlamaParse는 LlamaIndex 팀의 문서 파싱 서비스로, LLM 및 RAG 파이프라인을 위해 특별히 구축되었습니다. 그 초점은 어려운 경우입니다: 복잡한 표, 다중 열 레이아웃, 그림, 임베디드 차트가 있는 PDF로, 제네릭 텍스트 추출기가 사용할 수 없는 텍스트로 평탄화합니다. 이는 구조를 보존하는 깔끔한 마크다운을 출력하며, 그것의 구별되는 기능은 자연 언어 파싱 지시사항입니다 — 추출 규칙을 설정하는 대신 문서가 어떻게 배치되어 있는지와 그것으로 무엇을 해야 하는지를 설명합니다.

LlamaParse는 자유 계층 (API 키 필요)이 있는 호스팅 서비스입니다. 완전히 로컬 파싱은 Docling 또는 Marker를 참조합니다.

설치

방법명령어
pippip install llama-parse
LlamaIndex와 함께pip install llama-index llama-parse
API 키export LLAMA_CLOUD_API_KEY="llx-..."
확인python -c "from llama_parse import LlamaParse; print('ok')"

기본 파싱

from llama_parse import LlamaParse

parser = LlamaParse(result_type="markdown")
documents = parser.load_data("./report.pdf")
print(documents[0].text)
매개변수목적
result_type"markdown" (구조 보존) 또는 "text"
num_workers병렬 페이지 처리
verbose진행 출력
language문서 언어 힌트
parsing_instruction자연 언어 안내 (아래)

파싱 지시사항 (구별자)

parser = LlamaParse(
    result_type="markdown",
    parsing_instruction="""
    This is a financial report. Preserve all tables as Markdown tables.
    For each chart, write a one-paragraph description of the trend it shows.
    Ignore page headers and footers.
    """,
)

추출 코드를 작성하는 대신 평문으로 문서와 원하는 처리를 설명합니다 — 제네릭 파서가 나쁜 도메인별 레이아웃 (청구서, 과학 논문, 법률 계약)에 유용합니다.

비동기 및 배치

import asyncio

async def parse_many(paths):
    parser = LlamaParse(result_type="markdown", num_workers=8)
    return await parser.aload_data(paths)

docs = asyncio.run(parse_many(["a.pdf", "b.pdf", "c.pdf"]))
방법사용
load_data(path)단일 파일, 동기
aload_data([paths])비동기, 다중 파일
get_json_result(path)페이지 메타데이터가 있는 구조화된 JSON
get_images(...)임베디드 이미지 추출

지원되는 입력

형식참고
PDF주요 대상, 스캔된 포함 (OCR)
DOCX / PPTX / XLSX오피스 형식
HTML웹 문서
이미지OCR을 통한 PNG/JPEG

RAG 파이프라인에 연결

from llama_parse import LlamaParse
from llama_index.core import VectorStoreIndex
from llama_index.core.node_parser import MarkdownElementNodeParser

docs = LlamaParse(result_type="markdown").load_data("./manual.pdf")

# 마크다운 인식 청킹은 표와 섹션을 그대로 유지
node_parser = MarkdownElementNodeParser()
nodes = node_parser.get_nodes_from_documents(docs)

index = VectorStoreIndex(nodes)

마크다운 출력을 마크다운 인식 노드 파서와 페어링하는 것이 포인트입니다: 표는 파싱 청킹을 생존하며, 대부분의 RAG 파이프라인이 표 사실을 잃는 곳입니다.

표를 잘 처리하기

기법이유
result_type="markdown"표가 마크다운 그리드가 됨
표에 대한 파싱 지시일관된 표 처리 강제
MarkdownElementNodeParser표를 한 청크에 유지
행별 문장 직렬화개별 행을 검색 가능

비용 및 실제 참고

고려사항세부사항
호스팅 서비스문서가 LlamaCloud로 전송됨
자유 계층하루당 제한된 페이지
캐싱같은 파일을 재파싱하면 결과 재사용 가능
개인정보 보호민감한 문서의 경우 로컬 파서 선호

LlamaParse vs 로컬 파서

측면LlamaParseDoclingMarker
호스팅클라우드 서비스로컬로컬
복잡한 표매우 강함강함좋음
사용자 정의 지시자연 언어설정설정
개인정보 보호데이터가 기계를 떠남완전히 로컬완전히 로컬
최적 대상어려운 레이아웃, 빠른 결과자체 호스팅 RAG 수집GPU 벌크 변환

개인정보 민감 말뭉치의 경우 Docling을 사용합니다; 벌크 로컬 변환의 경우 Marker를 사용합니다.

리소스