定义和自定义节点(Defining and Customizing Nodes)
概念解释
节点(Nodes)表示源文档的“块”,无论是文本块、图像还是其他。它们还包含元数据和与其他节点及索引结构的关系信息。
节点是 LlamaIndex 中的一等公民。你可以选择直接定义节点及其所有属性,也可以选择通过我们的 NodeParser
类将源文档解析为节点。
使用模式
通过 NodeParser 解析节点
你可以使用 NodeParser
类将文档解析为节点。例如,使用 SentenceSplitter
:
from llama_index.core.node_parser import SentenceSplitter
parser = SentenceSplitter()
nodes = parser.get_nodes_from_documents(documents)
手动构造节点
你也可以选择手动构造节点对象并跳过第一个部分。例如:
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>")
# 设置关系
node1.relationships[NodeRelationship.NEXT] = RelatedNodeInfo(
node_id=node2.node_id
)
node2.relationships[NodeRelationship.PREVIOUS] = RelatedNodeInfo(
node_id=node1.node_id
)
nodes