# 文档解析

将文件解析为文档内容和纯文本，供分段、信息提取、AI 推理等后续节点使用。

需要处理 PDF、Word、PPT 等文档中的文字、表格和图片时，可以使用文档解析节点。先选择文件，再根据内容选择解析档位；需要更细致地处理表格、图片或标题结构时，使用增强档位。

音频和视频请分别使用[音频解析](audio-parse.md)和[视频解析](video-parse.md)。文档解析节点不接受音视频文件。

## 输入文件

可以直接选择 Catalog 中的文件，也可以绑定上游节点提供的文件引用。

| 输入方式 | 配置方式 |
| --- | --- |
| 从 Catalog 选择文件 | 在文件输入中选择需要解析的文件；单个文件对应 `file_id`，多个文件对应 `file_ids`。 |
| 使用上游读取结果 | 将[读取 MOI 卷](../data-io/read-volume.md)节点输出的 `sources` 绑定到当前节点的来源输入。 |
| 使用上游文件 ID | 将上游输出的 `file_ids` 绑定到当前节点的文件输入。 |

选择一种输入方式。使用上游来源时，文件范围由该来源确定，同时填写的文件 ID 不会追加到来源中。

```{note}
这里传入的是文件引用，节点会读取对应文件。已经解析好的 `documents` 应直接交给分段、提取或索引等后续节点，无需重新经过文档解析。
```

## 解析档位

**解析档位**决定采用哪一类解析处理。默认选择**标准**。

| 档位 | 适用场景 |
| --- | --- |
| 原生 | 以源文件结构和原生内容提取为主，适合 Office 文档等已有文字和结构的数据。 |
| 标准 | 常规文档的默认选择，兼顾解析效果与处理开销。 |
| 增强 | 需要进一步处理扫描件、复杂版式、表格、公式或标题层级时使用，可配置下文的增强项。 |

切换到增强档位后，配置区域会显示表格、图片、内容和阅读顺序等选项。以下增强选项及其默认值仅适用于增强档位。

## 页码筛选

只需要文档的一部分时，开启**页码筛选**并输入页码范围。关闭筛选或留空时处理全部页面。

- `1-3`：处理第 1 至第 3 页。
- `1,3,5`：处理第 1、3、5 页。
- `1-3,5,8-10`：组合连续页和单独页面。

页码从 1 开始。对于演示文稿，页码对应幻灯片；页码范围应与源文件的实际页面对应。

## 增强项

### 表格

| 配置项 | 默认值 | 作用 |
| --- | --- | --- |
| 复杂表格理解 | 开启 | 处理合并单元格、多表格区域和单元格内嵌图片等复杂内容。 |
| 跨页表格合并 | 开启 | 将跨连续页面拆开的同一张表格合并。 |
| 保存表格图片 | 关闭 | 在解析结果之外，额外保存检测到的表格裁剪图片。 |
| 表格输出方式 | HTML 表格 | 选择以 HTML 表格或表格图片表示结果。 |
| 摊平合并单元格 | 关闭 | 将 HTML 表格的合并单元格展开，把合并区域左上角内容复制到对应单元格。 |

**摊平合并单元格**仅在增强档位、HTML 表格输出方式下可用。切换为表格图片，或切换到其它解析档位时，此选项会关闭。在运行配置面板中选择表格图片时，复杂表格理解和跨页表格合并也会关闭。

### 图片

| 配置项 | 默认值 | 作用 |
| --- | --- | --- |
| 图片描述 | 开启 | 为图片生成自然语言描述。 |
| 图片描述输出语言 | 中文 | 在开启图片描述后，可选择中文或英文。 |
| 图片 OCR | 开启 | 提取图片中的文字。 |

### 内容

| 配置项 | 默认值 | 作用 |
| --- | --- | --- |
| 标题增强 | VLM 标题识别 | 识别并规范标题层级；关闭时保留原始标题结构。 |
| 公式修复 | 开启 | 修复公式表示和正文中的行内公式。 |

增强处理取决于文件中实际包含的内容。开启某一项后，应结合源文件检查对应的解析结果。

### 阅读顺序

**阅读顺序**默认选择**原始顺序**。需要根据页面位置组织内容时，可以选择**版面重排**。

- **原始顺序**：保留解析结果的块顺序。
- **版面重排**：按版面位置重新组织阅读顺序。

## 解析结果

完成后，节点输出文档数组和纯文本。根据后续处理的需要选择对应输出。

| 输出 | 内容 | 后续用途 |
| --- | --- | --- |
| `documents` | 解析后的文档数组。每条记录包含内容，并可带有类型及来源元数据。 | 连接分段、信息提取、文本嵌入或知识索引节点。 |
| `plain_text` | 从解析文档提取的纯文本。 | 作为 AI 推理等文本处理步骤的输入。 |
| `source_file_ids` | 本次处理的原始文件 ID，按输入顺序去重。 | 保留源文件关联；它不是解析产物的文件 ID。 |
| `metadata` | 存在时，提供解析相关信息，例如选项提示。 | 检查本次解析的附加信息。 |

将完整 `documents` 传给后续文档节点，保留记录中的来源文件、页码等信息。

如果需要把文档数组保存为文件，连接[写出文档文件](../other/write-document-files.md)。`source_file_ids` 指向原文件，解析结果文件由写出节点生成。

## 示例：解析报告并分段

以下示例展示源文件、解析配置和下游节点的连接方式。

```text
读取 MOI 卷 → 文档解析 → 分段
```

1. 在**读取 MOI 卷**中选择一份待处理的 PDF 报告。
2. 将读取节点的 `sources` 输出绑定到**文档解析**的来源输入。
3. 保持**标准**档位。若只想查看报告前几页的解析结果，开启**页码筛选**并填写 `1-3`。
4. 将文档解析输出的 `documents` 绑定到[分段](chunk.md)节点的文档输入。
5. 在运行结果中检查解析正文与来源信息，再检查分段结果。

报告存在复杂表格时，可以改为增强档位，按需选择表格处理选项。检查效果时关注表格内容是否完整、跨页表格是否正确衔接，以及后续分段是否保留了所需内容。

## 继续阅读

- [变量与数据传递](../../variables-and-data.md)：配置输入绑定和跨节点结果引用。
- [信息提取](information-extraction.md)：从解析文档中提取结构化信息。
- [嵌入并添加到知识库](knowledge-index.md)：将文档用于后续检索。
- [运行与调试](../../run-debug.md)：检查节点输入、输出与执行日志。
