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_size와 chunk_overlap이 핵심이에요. 오버랩을 주면 실수로 의미 경계가 잘려도 이웃 청크가 그 맥락을 보유해서 검색 누락을 줄일 수 있어요.
간접 API로 심기기
직접 parser를 호출하지 않아도 node_parser 설정을 통해 인덱스에 적용할 수 있어요. 그래서 '분할 전략 = 인덱스 설정'이라는 관점으로 관리하기 좋아요.