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 사용법에 대한 자세한 내용은 심층 가이드를 살펴보세요.

더 알아보기 (Learn more)