Documents / Nodes
Documents / Nodes
Document와 Node 객체는 LlamaIndex의 핵심 추상화예요. 어떤 데이터 소스든 담는 일반 컨테이너와 그 조각(청크)을 나타내는 노드에 대해 알아봐요.
출처: 문서
본문
개념 (Concept)
Document와 Node 객체는 LlamaIndex 내의 핵심 추상화예요.
Document는 어떤 데이터 소스든 담는 일반 컨테이너예요 — 예를 들어 PDF, API 출력, 또는 데이터베이스에서 검색한 데이터 같은 것들이요. 수동으로 만들거나 데이터 로더를 통해 자동으로 만들 수 있어요. 기본적으로 Document는 텍스트와 몇 가지 다른 속성을 저장해요. 그중 일부는 아래에 나열돼요.
metadata- 텍스트에 추가할 수 있는 주석의 딕셔너리relationships- 다른 Documents/Nodes와의 관계를 담는 딕셔너리
참고: Documents가 이미지를 저장할 수 있도록 하는 베타 지원이 있으며, 멀티모달 기능 개선을 적극적으로 작업 중이에요.
Node는 소스 Document의 "청크"를 나타내요 — 텍스트 청크든, 이미지든, 기타든요. Documents와 유사하게 다른 노드들과의 메타데이터와 관계 정보를 담아요.
Node는 LlamaIndex에서 일급 시민(first-class citizen)이에요. Node와 그 모든 속성을 직접 정의할 수 있고, NodeParser 클래스를 통해 소스 Document를 Node로 "파싱"할 수도 있어요. 기본적으로 Document에서 파생된 모든 Node는 그 문서와 동일한 메타데이터를 상속받아요(예: Document의 "file_name" 필드가 모든 Node로 전파됨).
사용 패턴
Documents와 Nodes로 시작하는 몇 가지 간단한 스니펫이에요.
Documents
from llama_index.core import Document, VectorStoreIndex
text_list = [text1, text2, ...]
documents = [Document(text=t) for t in text_list]
# build index
index = VectorStoreIndex.from_documents(documents)
Nodes
from llama_index.core.node_parser import SentenceSplitter
# load documents
...
# parse nodes
parser = SentenceSplitter()
nodes = parser.get_nodes_from_documents(documents)
# build index
index = VectorStoreIndex(nodes)
Document/Node 사용
Documents/Nodes 사용법에 대한 자세한 내용은 심층 가이드를 살펴보세요.