)
内容参考于图灵AI大模型全栈首先是html分割器下方是一段html代码!DOCTYPE html html langen headtitle示例页面/title/head body h1这是一个主标题/h1 p这是第一段文本。包含一些 strong重要/strong 信息。/p ul li列表项 1/li li列表项 2/li /ul p这是第二段文本。/p div classfooter版权所有/div /body /html分割效果图代码# 从 LlamaIndex 核心节点解析器模块导入 HTML 专用结构化节点解析器 # 类全称HTMLNodeParser # 核心作用基于 HTML 文档的语义标签进行结构化分块按照指定的 HTML 标签拆分生成独立文本节点 # 核心优势相比按字符数拆分的 SentenceSplitter完全遵循 HTML 文档的语义结构拆分标题、段落、列表各自成节点语义完整性更强 # 底层依赖基于 beautifulsoup4 解析 DOM 树使用前必须安装对应依赖 # 核心参数 tags列表类型指定要提取并生成节点的 HTML 标签仅列表内的标签会被提取为独立节点 # 输出特性生成的 TextNode 会自动携带标签类型、元素属性等元数据便于后续过滤与溯源 from llama_index.core.node_parser import HTMLNodeParser # 从 LlamaIndex 文件读取器模块导入扁平文件读取器 # 类全称FlatReader # 核心作用读取本地单个文件的原始纯文本内容不做任何格式解析直接将文件全文封装为单个 Document 对象 # 场景定位轻量单文件加载仅读取原始文本内容格式解析工作交给后续专用解析器完成 from llama_index.readers.file import FlatReader # 从 Python 标准库 pathlib 导入 Path 路径类 # 作用跨平台的文件路径处理类兼容性优于字符串路径是官方推荐的路径处理方式 from pathlib import Path # 调用 FlatReader 加载指定的本地 HTML 文件 # load_data 入参Path 对象指定目标文件的路径 # 返回值List[Document]单个文件对应一个 Document 对象其 text 属性为文件的原始 HTML 源码 # 说明FlatReader 仅做原始文本读取不解析 HTML 结构DOM 解析与拆分由后续 HTMLNodeParser 完成 html_docs FlatReader().load_data(Path(./data_file/index.html)) # 实例化 HTML 节点解析器指定拆分规则 # tags 参数列表类型指定需要提取并生成节点的 HTML 标签名 # 示例含义仅提取 p 段落、h1 一级标题、li 列表项三类标签的内容每个标签对应生成一个独立 TextNode # 可根据业务需求扩展标签如 h2/h3、div、table 等 parser HTMLNodeParser(tags[p, h1, li]) # 只提取 p, h1, li 标签的内容作为节点 # 执行文档解析将原始 HTML 文档拆分为多个结构化文本节点 # 方法名get_nodes_from_documents # 入参Document 对象列表 # 执行逻辑 # 1. 解析 Document 中的 HTML 源码构建 DOM 树 # 2. 遍历 DOM 树筛选出 tags 参数指定的所有标签元素 # 3. 每个符合条件的标签提取内部纯文本生成一个独立的 TextNode # 4. 自动为节点附加元数据标签名、元素 id/class 等原生属性、在文档中的层级信息 # 返回值List[TextNode]结构化拆分后的文本节点列表 nodes parser.get_nodes_from_documents(html_docs) # 遍历所有生成的节点逐个打印完整数据结构 for node in nodes: # 以格式化 JSON 输出节点的全部属性包含文本内容、元数据、节点ID、起止位置等完整信息 print(node.model_dump_json(indent2)) # 打印分隔线区分不同节点的输出 print(**50)JSON分割器json内容{ company: 计算机王, lastUpdated: 2025-07-10, team: [ { name: 张三, role: 创始人兼首席执行官 (CEO), bio: 深耕计算机软硬件研发与企业管理领域12年主导公司从初创到规模化的全周期发展核心统筹算力产品战略布局与商业化落地。 }, { name: 李四, role: 首席技术架构师, bio: 专注分布式计算与国产芯片适配技术研究牵头搭建公司自研算力调度系统拥有十余项计算机体系结构相关的技术专利。 }, { name: 柳如烟, role: 全球业务拓展总监, bio: 拥有10年以上科技产品海外运营经验负责公司品牌国际化布局与海外渠道搭建推动自研计算机产品进入二十余个海外市场。 } ] }分割后的效果图代码# 从 LlamaIndex 核心节点解析器模块导入 JSON 结构化节点解析器 # 类全称JSONNodeParser # 核心作用针对 JSON 格式的结构化文档按 JSON 自身的层级结构做语义化拆分生成独立文本节点 # 核心优势区别于纯按字符数硬切的切分器它完全遵循 JSON 的键值、数组、嵌套结构拆分保留数据的结构语义 # 拆分逻辑递归遍历 JSON 结构按层级/键值对拆解每个结构单元生成一个 TextNode # 元数据特性每个节点会自动携带 json_path 等元数据标记该内容在原 JSON 中的层级路径便于溯源与过滤 # 适用场景接口响应数据、配置文件、业务结构化JSON数据的知识库入库保留结构语义的同时做语义检索 from llama_index.core.node_parser import JSONNodeParser # 从 LlamaIndex 文件读取器模块导入扁平文件读取器 # 类全称FlatReader # 核心作用轻量单文件读取工具仅读取文件的原始纯文本内容不做任何格式解析直接封装为单个 Document 对象 # 定位仅负责原始文本读取格式解析工作交由后续专用解析器如 JSONNodeParser、HTMLNodeParser完成 from llama_index.readers.file import FlatReader # 从 Python 标准库 pathlib 导入 Path 路径类 # 作用跨平台的面向对象路径处理工具兼容性优于字符串路径是文件操作的官方推荐写法 from pathlib import Path # 调用 FlatReader 加载本地 JSON 文件 # load_data 入参Path 对象指定目标 JSON 文件的路径 # 返回值List[Document]单个文件对应一个 Document 对象其 text 属性为 JSON 文件的原始字符串内容 # 说明FlatReader 仅做原始文本读取不解析 JSON 结构结构解析与拆分由后续 JSONNodeParser 负责 json_docs FlatReader().load_data(Path(./data_file/request.json)) # 实例化 JSON 节点解析器 # 无参实例化使用默认拆分规则按 JSON 自然层级递归拆分覆盖所有键值对与数组元素 # 可选配置按需传入可指定只解析特定层级、过滤指定字段常规场景默认配置即可满足需求 parser JSONNodeParser() # 执行文档解析将 JSON 文档拆分为多个结构化文本节点 # 方法名get_nodes_from_documents # 必填入参documentsList[Document] 类型待解析的原始文档列表 # 执行流程 # 1. 读取 Document 中的原始 JSON 字符串解析为 JSON 对象 # 2. 递归遍历 JSON 层级结构按规则拆分出独立的结构单元 # 3. 每个结构单元提取文本内容生成独立的 TextNode # 4. 自动为节点附加元数据JSON 路径、所属层级、源文件信息等 # 返回值List[TextNode]拆分后的结构化文本节点列表 nodes parser.get_nodes_from_documents(json_docs) # 遍历所有生成的节点逐个打印完整数据结构 for node in nodes: # model_dump_json 为 Pydantic 内置方法将节点对象序列化为格式化 JSON 字符串 # indent2 表示以 2 空格缩进输出便于阅读节点的完整属性文本、元数据、节点ID等 print(node.model_dump_json(indent2))Markdown分割器效果图代码# 从 LlamaIndex 核心节点解析器模块导入 Markdown 专用结构化节点解析器 # 类全称MarkdownNodeParser # 核心作用基于 Markdown 文档的标题层级结构进行语义化分块按标题边界拆分生成独立文本节点 # 拆分规则以 #、##、### 等标题标签为拆分边界每个标题及其下属正文内容生成一个独立 TextNode # 核心优势相比按字符数硬切的 SentenceSplitter完全遵循 Markdown 文档的语义结构拆分保留章节层级关系语义完整性更强 # 元数据特性每个节点自动携带章节标题、标题层级路径等元数据便于后续按章节过滤、内容溯源 # 适用场景Markdown 格式的技术文档、知识库、说明文档的分块入库是处理 Markdown 文档的首选解析器 from llama_index.core.node_parser import MarkdownNodeParser # 从 LlamaIndex 文件读取器模块导入扁平文件读取器 # 类全称FlatReader # 核心作用轻量单文件读取工具仅读取文件的原始纯文本内容不做任何格式解析直接封装为单个 Document 对象 # 定位仅负责原始文本读取格式解析与分块工作交由后续专用解析器完成 from llama_index.readers.file import FlatReader # 从 Python 标准库 pathlib 导入 Path 路径类 # 作用跨平台的面向对象路径处理工具兼容性优于字符串路径是文件操作的官方推荐写法 from pathlib import Path # 调用 FlatReader 加载本地 Markdown 文件 # load_data 入参Path 对象指定目标 Markdown 文件的路径 # 返回值List[Document]单个文件对应一个 Document 实例其 text 属性为 Markdown 原始源码 # 说明FlatReader 仅做原始文本读取不解析 Markdown 结构结构解析与分块由后续 MarkdownNodeParser 完成 md_docs FlatReader().load_data(Path(./data_file/test.md)) # 实例化 Markdown 节点解析器 # 无参实例化使用默认拆分规则识别所有层级的标题# ~ ######按标题边界拆分章节 # 可选配置可通过参数指定最大拆分标题层级常规场景默认配置即可满足需求 parser MarkdownNodeParser() # 执行文档解析将 Markdown 文档拆分为多个结构化文本节点 # 方法名get_nodes_from_documents # 必填入参documentsList[Document] 类型待解析的原始文档列表 # 执行流程 # 1. 解析 Document 中的 Markdown 文本识别标题层级与章节结构 # 2. 按标题边界拆分章节每个章节对应生成一个独立的 TextNode # 3. 自动为节点附加元数据章节标题、章节层级路径、源文件信息等 # 4. 完整继承原 Document 的所有自定义元数据 # 返回值List[TextNode]拆分后的结构化文本节点列表 nodes parser.get_nodes_from_documents(md_docs) # 遍历所有生成的节点逐个打印完整数据结构 for node in nodes: # model_dump_json 为 Pydantic 内置方法将节点对象序列化为标准 JSON 字符串 # indent2设置 2 空格缩进提升输出可读性可完整查看节点的文本、元数据、ID 等全部属性 print(node.model_dump_json(indent2))