Skip to content

文档与节点#

概念#

Document(文档)和 Node(节点)对象是 LlamaIndex 中的核心抽象概念。

Document 是一个通用容器,可封装任何数据源——例如 PDF 文件、API 输出或数据库检索数据。它们可以手动构建,也可以通过我们的数据加载器自动创建。默认情况下,Document 会存储文本及一些其他属性,部分属性如下:

  • metadata - 可附加到文本的注解字典
  • relationships - 包含与其他文档/节点关系的字典

:我们目前测试版支持 Document 存储图像功能,正在积极提升其多模态能力。

Node 表示源文档的"分块",无论是文本块、图像还是其他内容。与 Document 类似,它们包含元数据以及与其他节点的关系信息。

节点是 LlamaIndex 中的一等公民。您可以直接定义节点及其所有属性,也可以通过我们的 NodeParser 类将源文档"解析"为节点。默认情况下,每个从 Document 派生的节点都会继承该文档的相同元数据(例如 Document 中的"file_name"字段会传播到每个节点)。

使用模式#

以下是一些使用文档和节点的简单代码片段。

文档#

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)

节点#

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)

文档/节点使用#

查看我们的深度指南以获取更多使用文档/节点的详细信息: - 使用文档 - 使用节点 - 数据摄取管道