Skip to content

节点解析器使用模式#

节点解析器是一种简单的抽象工具,它接收文档列表并将其分块为Node对象,每个节点都是父文档的特定分块。当文档被分解为节点时,其所有属性都会继承到子节点中(例如metadata、文本和元数据模板等)。您可以在此处了解更多关于NodeDocument属性的信息。

快速开始#

独立使用#

节点解析器可以单独使用:

from llama_index.core import Document
from llama_index.core.node_parser import SentenceSplitter

node_parser = SentenceSplitter(chunk_size=1024, chunk_overlap=20)

nodes = node_parser.get_nodes_from_documents(
    [Document(text="long text")], show_progress=False
)

转换流程使用#

节点解析器可以包含在任何带有数据摄取管道的转换集合中。

from llama_index.core import SimpleDirectoryReader
from llama_index.core.ingestion import IngestionPipeline
from llama_index.core.node_parser import TokenTextSplitter

documents = SimpleDirectoryReader("./data").load_data()

pipeline = IngestionPipeline(transformations=[TokenTextSplitter(), ...])

nodes = pipeline.run(documents=documents)

索引构建使用#

或者设置在transformations或全局配置中,当使用.from_documents()方法构建索引时自动生效:

from llama_index.core import SimpleDirectoryReader, VectorStoreIndex
from llama_index.core.node_parser import SentenceSplitter

documents = SimpleDirectoryReader("./data").load_data()

# 全局设置
from llama_index.core import Settings

Settings.text_splitter = SentenceSplitter(chunk_size=1024, chunk_overlap=20)

# 单索引设置
index = VectorStoreIndex.from_documents(
    documents,
    transformations=[SentenceSplitter(chunk_size=1024, chunk_overlap=20)],
)

模块#

查看完整的模块指南