what is nodes #
노드는 documents를 텍스트, 이미지 등등의 각 chunk로 나누는 것을 의미합니다. 이렇게 생성된 노드는 metadata정보와 관계도 정보가 포함되어 있습니다.
how to use nodes(W. documents) #
아래의 방식으로 node를 활용하기 위하여 documents를 사용할 수 있어야합니다. 아래의 링크를 참고해주세요.
documents
documents를 활용하여 간단하게 node를 사용하려면 다음과 같이 사용하면 됩니다.
from llama_index.core.node_parser import SentenceSplitter
parser = SentenceSplitter()
nodes = parser.get_nodes_from_documents(documents)
how to use nodes(custom text) #
아래의 방식으로 각각의 text를 수동으로 node를 만들어 줄 수도 있습니다.(고급)
from llama_index.core.schema import TextNode, NodeRelationship, RelatedNodeInfo
node1 = TextNode(text="<text_chunk>", id_="<node_id>")
node2 = TextNode(text="<text_chunk>", id_="<node_id>")
# set relationships
node1.relationships[NodeRelationship.NEXT] = RelatedNodeInfo(
node_id=node2.node_id
)
node2.relationships[NodeRelationship.PREVIOUS] = RelatedNodeInfo(
node_id=node1.node_id
)
nodes = [node1, node2]
또한 아래와 같이 node간의 종속적 정보를 추가 할 수 있습니다.
node2.relationships[NodeRelationship.PARENT] = RelatedNodeInfo(
node_id=node1.node_id, metadata={"key": "val"}
)
노드는 다음의 방식으로 id를 직접 주입할 수 있습니다. 이러한 id 값은 다양한 역활을 할 수 있습니다.
node.node_id = "My new node_id!"