节点解析器使用模式
节点解析器是一种简单的抽象,它接收文档列表并将其分块为Node对象,使得每个节点成为父文档的特定块。当文档被分解为节点时,其所有属性都会继承给子节点(例如metadata、文本和元数据模板等)。您可以在此处阅读更多关于Node和Document属性的信息。
节点解析器可以单独使用:
from llama_index.core import Documentfrom 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 SimpleDirectoryReaderfrom llama_index.core.ingestion import IngestionPipelinefrom 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, VectorStoreIndexfrom llama_index.core.node_parser import SentenceSplitter
documents = SimpleDirectoryReader("./data").load_data()
# globalfrom llama_index.core import Settings
Settings.text_splitter = SentenceSplitter(chunk_size=1024, chunk_overlap=20)
# per-indexindex = VectorStoreIndex.from_documents( documents, transformations=[SentenceSplitter(chunk_size=1024, chunk_overlap=20)],)查看完整的模块指南。