Chunking 핵심 기능 — LlamaIndex Node Parser의 분할 방식

Chunking 핵심 기능

LlamaIndex는 문서를 임베딩·검색 단위인 Node로 변환하며, 이때 '어떻게 잘라서 Node로 만들지'를 정하는 게 Node Parser예요. 청킹 전략이 바로 여기서 결정돼요.

대표 Node Parser

  • TokenTextSplitter: 토큰 수 기준으로 나눠요. 고정 크기 청킹의 기본
  • SentenceSplitter: 문장 경계를 지키며 분할해서 의미가 덜 끊겨요
  • SemanticSplitterNodeParser: 임베딩 유사도를 이용해 의미 경계에서 분할해요
  • HierarchicalNodeParser: 문서·섹션·청크 단계로 계층적 Node를 만들어요

사용 예

from llama_index.core.node_parser import TokenTextSplitter

splitter = TokenTextSplitter(
    separator=" ",
    chunk_size=512,
    chunk_overlap=20,
)
nodes = splitter.get_nodes_from_documents(documents)

chunk_sizechunk_overlap이 핵심이에요. 오버랩을 주면 실수로 의미 경계가 잘려도 이웃 청크가 그 맥락을 보유해서 검색 누락을 줄일 수 있어요.

간접 API로 심기기

직접 parser를 호출하지 않아도 node_parser 설정을 통해 인덱스에 적용할 수 있어요. 그래서 '분할 전략 = 인덱스 설정'이라는 관점으로 관리하기 좋아요.

더 알아보기