Skip to content

Commit ac8df67

Browse files
author
songyss
committed
添加 MinerU 离线 Markdown 工具和工作流模板
1 parent b429837 commit ac8df67

7 files changed

Lines changed: 134 additions & 47 deletions

File tree

Binary file not shown.
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# MinerU 本地 PDF 入库工作流模板
2+
3+
## 简介
4+
5+
**MinerU 本地 PDF 入库工作流模板** 是一个面向知识库构建场景的工作流模板。它调用本地离线部署的 MinerU(Gradio 服务)解析用户上传的 PDF,直接获取 Markdown 文本,并在 MaxKB 内继续完成文档分段和知识库入库。
6+
7+
该模板适合无法访问公网 API、需要本地私有化部署、或者只需要文本入库而不要求图片上传 OSS 的场景。
8+
9+
## 工作流能力
10+
11+
- 接收用户上传的 PDF 文件
12+
- 调用本地 MinerU 服务完成 PDF 转 Markdown
13+
- 直接使用 Markdown 文本进入文档分段节点
14+
- 将分段结果写入指定知识库,完成 RAG 入库
15+
16+
## 前置条件
17+
18+
1. 已离线部署 MinerU(Gradio 服务)
19+
20+
参考:
21+
https://opendatalab.github.io/MinerU/zh/quick_start/docker_deployment/
22+
23+
2. 在 MaxKB 容器内安装依赖并授权临时目录
24+
25+
```bash
26+
# 到 maxkb 容器内安装 gradio_client
27+
docker exec -it maxkb bash
28+
pip install gradio_client
29+
30+
# 如果安装 gradio_client 提示 huggingface-hub 版本冲突,则使用 pip 的兼容性模式,同时安装兼容版本
31+
pip install gradio_client huggingface-hub==0.34.0
32+
33+
# 授权 tmp 目录的访问操作权限
34+
chmod 777 /tmp
35+
```
36+
37+
## 工作流结构
38+
39+
该模板通常包含以下几个核心节点:
40+
41+
1. 开始节点:接收用户上传的 PDF 文件
42+
2. MinerU 离线 PDF 转 Markdown 工具:调用本地 MinerU 解析文档
43+
3. 文档分段节点:对 Markdown 文本进行切分
44+
4. 知识库写入节点:将切分后的结果写入知识库
45+
46+
## 关键参数
47+
48+
### MinerU 工具节点输入参数
49+
50+
| 参数名 | 类型 | 必填 | 说明 |
51+
| --- | --- | --- | --- |
52+
| `file_input` | Array / Object || 开始节点传入的文件对象 |
53+
| `url_prefix` | String || MaxKB 基础地址前缀,用于拼接文件下载地址 |
54+
| `mineru_gradio_url` | String || 本地 MinerU Gradio 服务地址 |
55+
| `gradio_retry_count` | Integer || Gradio 调用失败时的重试次数 |
56+
| `max_convert_pages` | Integer || 最大处理页数 |
57+
| `timeout` | Integer || 下载与解析超时时间,单位秒 |
58+
59+
### 启动参数示例
60+
61+
| 参数名 | 示例值 |
62+
| --- | --- |
63+
| `url_prefix` | `http://192.168.11.114:8080/admin` |
64+
| `mineru_gradio_url` | `http://192.168.11.114:7860/` |
65+
| `gradio_retry_count` | `2` |
66+
| `max_convert_pages` | `500` |
67+
| `timeout` | `600` |
68+
69+
## 使用说明
70+
71+
1. 导入该 `kbwf` 模板到 MaxKB
72+
2. 确认工具节点中的 `url_prefix``mineru_gradio_url` 填写正确
73+
3. 按需设置 `gradio_retry_count``max_convert_pages``timeout`
74+
4. 上传测试 PDF 文件
75+
5. 检查工具节点输出中的 `content`
76+
6. 确认文档分段与知识库写入结果正常
77+
78+
## 注意事项
79+
80+
- 该模板依赖本地 MinerU 服务可访问,不能直接替代在线 MinerU API 工作流
81+
- 该模板输出以 Markdown 文本为主,不包含图片上传 OSS 的处理链路
82+
- 如果 PDF 文件较大或内容复杂,建议调大 `timeout` 并确认容器临时目录可写
83+
84+
## 关联工具
85+
86+
- `tool_mineru_local_markdown`:本工作流依赖的核心工具
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
name: MinerU 本地 PDF 入库工作流模板
2+
tags:
3+
- 知识库模板
4+
title: 基于本地离线 MinerU 解析 PDF 为 Markdown,并完成文档分段与知识库入库
5+
description: 基于本地离线部署的 MinerU,将单个 PDF 解析为 Markdown 文本,再通过 MaxKB 工作流完成文档分段和知识库入库,适用于内网环境与离线部署场景。
78.1 KB
Loading
Lines changed: 42 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,59 @@
11
# MinerU 离线 PDF 转 Markdown
22

3-
## 📖 简介
3+
## 简介
44

5-
**MinerU 离线 PDF 转 Markdown** 用于在 MaxKB 工作流中调用**本地离线部署** MinerU(Gradio 服务)解析 PDF,**直接返回 Markdown 文本**,方便后续执行“文档分段 / 入库 / RAG等处理。
5+
**MinerU 离线 PDF 转 Markdown** 用于在 MaxKB 工作流中调用本地离线部署的 MinerU(Gradio 服务)解析 PDF,并直接返回 Markdown 文本,方便后续执行文档分段、入库、RAG 等处理。
66

7-
与 ZIP 结果流不同,本工具不进行 ZIP 打包、不上传 OSS,输出更轻量。
7+
与 ZIP 结果流不同,本工具不进行 ZIP 打包、不上传 OSS,输出更轻量,适合内网环境或仅需文本结果的场景
88

9-
## ✅ 前置条件
9+
## 核心能力
10+
11+
- 调用本地离线部署的 MinerU 服务解析 PDF
12+
- 直接输出 Markdown 文本,便于下游节点继续处理
13+
- 支持配置重试次数、最大处理页数与超时时间
14+
15+
## 前置条件
1016

1117
1. 已离线部署 MinerU(Gradio 服务)
1218

1319
参考:
1420
https://opendatalab.github.io/MinerU/zh/quick_start/docker_deployment/
1521

16-
2. MaxKB v2.4+ 建议配置(按需)
17-
18-
修改 `/opt/maxkb/conf/maxkb.env`
19-
20-
```bash
21-
MAXKB_SANDBOX_TMP_DIR_ENABLED=1
22-
MAXKB_SANDBOX_PYTHON_ALLOW_SUBPROCESS=1
23-
MAXKB_SANDBOX_PYTHON_PROCESS_LIMIT_MEM_MB=521
24-
```
25-
26-
重启:
27-
28-
```bash
29-
docker restart maxkb
30-
```
31-
32-
3. 依赖安装
33-
34-
在 maxkb 容器内安装:
22+
2. 在 MaxKB 容器内安装依赖并授权临时目录
3523

3624
```bash
25+
# 到 maxkb 容器内安装 gradio_client
26+
docker exec -it maxkb bash
3727
pip install gradio_client
38-
# 如果存在 huggingface-hub 版本冲突
28+
29+
# 如果安装 gradio_client 提示 huggingface-hub 版本冲突,则使用 pip 的兼容性模式,同时安装兼容版本
3930
pip install gradio_client huggingface-hub==0.34.0
31+
32+
# 授权 tmp 目录的访问操作权限
33+
chmod 777 /tmp
4034
```
4135

42-
## 🧩 参数说明
36+
## 参数说明
4337

4438
### 输入参数
4539

4640
| 参数名 (`Key`) | 类型 | 必填 | 说明 | 示例 |
4741
| --- | --- | --- | --- | --- |
48-
| `file_input` | Array / Object || MaxKB 文件对象(通常是上游节点输出的文件列表/字典) | `{{start.file_list}}` |
42+
| `file_input` | Array / Object || MaxKB 文件对象,通常为上游节点输出的文件列表或字典 | `{{start.file_list}}` |
4943

5044
### 启动参数
5145

5246
| 参数名 (`Key`) | 类型 | 必填 | 说明 | 默认值 |
5347
| --- | --- | --- | --- | --- |
54-
| `url_prefix` | String || MaxKB 管理端前缀,用于拼接下载地址 | `http://<ip>:8080/admin` |
55-
| `mineru_gradio_url` | String || MinerU Gradio 服务地址 | `http://localhost:7860/` |
56-
| `enable_ocr` | Boolean || 是否启用 OCR | `true` |
57-
| `enable_formula` | Boolean || 是否启用公式识别 | `true` |
58-
| `enable_table` | Boolean || 是否启用表格识别 | `true` |
59-
| `language` | String || 语言选项 | `ch (Chinese, English, Chinese Traditional)` |
60-
| `backend` | String || 解析引擎 | `vlm-auto-engine` |
61-
| `max_convert_pages` | Integer || 最大解析页数 | `500` |
62-
| `download_dir` | String || 临时下载目录(为空时自动探测可写目录) | 空字符串 |
63-
| `gradio_retry_count` | Integer || Gradio 调用失败重试次数 | `2` |
64-
| `timeout` | Integer || 下载与解析超时(秒) | `600` |
65-
66-
## 📤 输出结果
67-
68-
工具执行成功后返回 `Array[Object]`(长度为 1),示例:
48+
| `url_prefix` | String || MaxKB 基础地址前缀,用于拼接文件下载地址 | `http://192.168.11.114:8080/admin` |
49+
| `mineru_gradio_url` | String || 本地 MinerU Gradio 服务地址 | `http://192.168.11.114:7860/` |
50+
| `gradio_retry_count` | Integer || Gradio 调用失败时的重试次数 | `2` |
51+
| `max_convert_pages` | Integer || 最大处理页数,用于限制单次解析范围 | `500` |
52+
| `timeout` | Integer || 下载与解析超时时间,单位秒 | `600` |
53+
54+
## 输出结果
55+
56+
工具执行成功后返回 `Array[Object]`,长度为 1。示例:
6957

7058
```json
7159
[
@@ -83,10 +71,18 @@ pip install gradio_client huggingface-hub==0.34.0
8371

8472
字段说明:
8573

86-
- `content`:推荐使用的 Markdown 文本(下游分段节点通常用这个)
87-
- `markdown_raw`:MinerU 渲染版 Markdown(便于排查格式问题)
74+
- `content`:推荐给下游节点使用的 Markdown 文本
75+
- `markdown_raw`:MinerU 渲染版 Markdown,便于排查格式问题
76+
77+
## 使用建议
78+
79+
- 如果下游节点只识别 `content`,优先使用 `content`
80+
- 如果 PDF 页数很多,建议显式设置 `max_convert_pages`
81+
- 如果网络或本地服务偶发不稳定,可适当调大 `gradio_retry_count`
82+
- 如果大文件处理耗时较长,建议调大 `timeout`
8883

89-
## 🔧 使用建议
84+
## 适用场景
9085

91-
- 如果下游节点只认 `content`,请优先使用 `content`
92-
- 如果遇到权限问题(临时目录 / HuggingFace cache),请确保容器内 `/tmp` 可写
86+
- 内网环境下的 PDF 转 Markdown 解析
87+
- 文档预处理后直接进入知识库分段
88+
- 工作流中需要轻量文本输出,不需要图片上传与 OSS 回填

tools/tool_mineru_local_markdown/data.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ name: MinerU 离线 PDF 转 Markdown
22
tags:
33
- 内容处理
44
title: 调用本地 MinerU 将 PDF 解析为 Markdown 文本
5-
description: 调用本地离线部署的 MinerU(Gradio 服务)解析 PDF,直接返回 Markdown 文本(不打包 ZIP、不上传 OSS),适用于工作流后续分段/入库处理
5+
description: 调用本地离线部署的 MinerU(Gradio 服务)解析 PDF,直接返回 Markdown 文本(不打包 ZIP、不上传 OSS),适用于工作流后续分段、入库与 RAG 处理
73.2 KB
Loading

0 commit comments

Comments
 (0)