ChatGPT怎么建立私有知识库?

一、MinerU介绍
MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。
从使用方式上,MinerU支持在线、客户端、API、本地部署方式。本次演示使用的是本地部署与Dify结合使用。
与传统的 PDF 解析工具相比,MinerU 在保持内容完整性的同时,还能对文档进行结构化处理,保留标题、段落、列表等信息,并智能去除页眉、页脚、脚注等干扰元素,从而确保语义连贯。此外,它还具备以下优势:
- 支持公式识别并转换为 LaTeX 格式;
- 支持表格解析并转换为 HTML 格式;
- 自动检测扫描版 PDF,内置 OCR 功能,支持 84 种语言;
- 支持图像、图片描述、表格脚注的提取;
- 提供多种可视化方式,便于质量校验。
从使用方式上,MinerU 既支持在线、客户端和 API 接入,也支持本地部署。本文主要展示本地部署,并结合 Dify 进行实战应用。
文章首发公众号 风间技术私享。期待您的关注。
二、MinerU部署
在本地部署时需要满足以下条件
解析后端 | pipeline | vlm-transformers | vlm-sglang |
---|---|---|---|
操作系统 | Linux / Windows / macOS | Linux / Windows | Linux / Windows (via WSL2) |
CPU推理支持 | ✅ | ❌ | |
GPU要求 | Turing及以后架构,6G显存以上或Apple Silicon | Turing及以后架构,8G显存以上 | |
内存要求 | 最低16G以上,推荐32G以上 | ||
磁盘空间要求 | 20G以上,推荐使用SSD | ||
python版本 | 3.10-3.13 |
本都部署时支持pip或uv、源码、docker三种部署方式,为了方便演示和避免环境问题,本次演示使用docker部署。
2.1 下载Dockerfile
通过访问下面的地址下载Dockerfile文件
https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/Dockerfile
接着通过Dockerfile构建 mineru-sgland镜像
在Dockerfile 文件所在目录下执行下面的命令:
docker build -t mineru-sglang:latest -f Dockerfile .
效果如下图

内容较多,会需要等待一段时间。
2.2 下载 compose.yaml 文件
https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/compose.yaml
compose.yaml
文件中包含了MinerU的多个服务配置,您可以根据需要选择启动特定的服务。- 不同的服务可能会有额外的参数配置,您可以在
compose.yaml
文件中查看并编辑。 - 由于
sglang
推理加速框架预分配显存的特性,您可能无法在同一台机器上同时运行多个sglang
服务,因此请确保在启动vlm-sglang-server
服务或使用vlm-sglang-engine
后端时,其他可能使用显存的服务已停止。
2.3 启动
在得到compose.yaml文件之后,就可以在此文件夹中继续使用CMD命令,逐行输入以下命令:
# 启动网页界面操作(图形界面)
docker compose -f compose.yaml --profile gradio up -d
# 在浏览器调用 API / 代码访问 (DIFY-MinerU本地部署核心前置条件)
docker compose -f compose.yaml --profile api up -d
# 使用大模型加速
docker compose -f compose.yaml --profile sglang-server up -d
三、Dify中使用
完成 MinerU 部署后,接下来需要在 Dify 中进行对接。
3.1 Dify安装插件
在Dify的插件市场搜索并安装MinerU插件

3.2 授权
对安装好的插件做授权,格式为: http(https)://IP:8000 。服务类型选择本地部署方式。

填写后保存,Dify会进行验证,验证通过后插件会提示授权成功。
四、Dify试用
在Dify中新建一个应用,增加授权成功后的MinerU节点,然后上传一个文件,如下图:

测试运行后,成功解析出pdf的内容。
只要这个关键节点运行成功,就可以结合具体场景做出更多种的应用。
五、报错解决
如果遇到连接问题,例如下文
Run failed: Failed to transform tool message: PluginInvokeError: {“args”:{},”error_type”:”ValueError”,”message”:”Invalid file URL ‘/files/671e5c6b-ff8b-4962-b3d8-9bb841bfcbb4/file-preview?
- 找到 Dify 部署目录,打开. env 文件,修改 FILES_URL 配置项,依据你的部署方式填写:
- Docker Compose 部署:FILES_URL 设置为http://api:5001
- 其他部署方式:FILES_URL 设置为 http://Dify宿主机IP:5001
- 确认 Dify API 服务的 5001 端口已对外暴露(可检查 docker-compose. Yaml 文件的端口映射)。
- 保存. env 文件。
- 重启 Dify 服务以使配置生效。
docker compose down
docker compose up -d
六、总结
通过本文的实战演示,我们完成了 MinerU 的本地部署,并将其成功接入到 Dify 应用中,实现了 PDF 内容的高质量解析与调用。整个过程可以归纳为以下几个关键点:
- MinerU 的优势:支持复杂文档结构解析、OCR、多语言识别和多格式输出,为大模型应用提供了优质的数据输入。
- Docker 部署的便利性:通过
Dockerfile
与compose.yaml
,能够快速完成安装与启动,避免环境依赖问题。 - 与 Dify 的融合:在 Dify 中,MinerU 可以作为工具节点无缝集成,从而拓展了文档处理的应用场景。
- 实践价值:结合 Dify 的工作流与大模型能力,可以构建智能知识库、文档问答系统等更高阶的应用。
总的来说,MinerU + Dify 的结合,不仅降低了 PDF 解析与应用的门槛,也为大模型生态提供了强大的数据支撑。对于想要在 文档解析 → 数据处理 → 智能应用 全链路上进行探索的开发者而言,这是一个极具价值的组合方案。