最近一个多月MinerU连续发布版本,已经更新到1.3.10了。新版本的MinerU提供的Web API接口也支持Docx、Png等多种格式的文件了。上周官方也推出了教程,在dify中使用MinerU的插件。本篇文章将实现通过本地部署1.3.10版官方API,并接入Dify插件。

部署MinerU WEB API
Docker镜像构建
git拉取最新的MinerU源码,进入到projects/web_api
目录执行docker构建命令。
## 拉取最新源码
cd MinerU/
git pull
git checkout tags/magic_pdf-1.3.10-released
## 制作docker镜像
cd projects/web_api
docker build -t mineru-api:offical-1.3.10 .
国内环境配置
如果你的网络环境相当好,上述的docker镜像很快就完成了。当然,大部分情况下速度没那么快,而且可能还会网络中断。
替换download_models.py
文件,原本的模型是通过HuggingFace下载,大概率是网络受限的,替换官方使用ModelScope下载的方式
wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/scripts/download_models.py -O download_models.py
在Dockerfile中添加一些镜像站,如下
## 【添加】
RUN sed -i 's@deb.debian.org@mirrors.aliyun.com@g' /etc/apt/sources.list.d/debian.sources
# Update the package list and install necessary packages
RUN apt-get update &&
apt-get install -y --no-install-recommends
build-essential &&
apt-get clean &&
rm -rf /var/lib/apt/lists/*
# Build Python dependencies 【添加 -i https://mirrors.aliyun.com/pypi/simple/】
COPY requirements.txt .
RUN python -m venv /app/venv &&
. /app/venv/bin/activate &&
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
另外,我们更换了download_models.py
文件,模型下载地址发生了变更,因此下面两行也需要修改
# Copy Python dependencies and models from the build stage
COPY --from=build /root/.cache/modelscope/hub/models/opendatalab/PDF-Extract-Kit-1___0/models /opt/models
COPY --from=build /root/.cache/modelscope/hub/models/ppaanngggg/layoutreader /opt/layoutreader
根据上述修改,基本上能快速构建镜像了。
Docker启动服务
为了能在Dify插件里使用本地部署的MinerU服务,因此我们直接接入到Dify的内部网络中,不对外暴露端口了。
docker run -d --gpus all --network docker_ssrf_proxy_network --name mineru-api mineru-api:offical-1.3.10
Dify插件MinerU
插件安装及授权
在Dify的插件市场,找到MinerU产检,点击安装。

等待安装完成后,点击授权,在授权页面填写以下信息。由于我们Dify和MinerU在一台服务器上。如果部署在不同的机器上,请填写MinerU服务器的地址及开放的端口。

常见问题
配置完以后在工作流中试用会提示以下错误

对此我们可以参考MinerU官方给出的解决方案:
1.找到 Dify 部署目录,打开 .env 文件,修改 FILES_URL 配置项,依据你的部署方式填写:
-Docker Compose 部署:FILES_URL 设置为http://api:5001
-其他部署方式:FILES_URL 设置为 http://Dify宿主机IP:5001
2.确认 Dify API 服务的 5001 端口已对外暴露(可检查 docker-compose.yaml 文件的端口映射)。
3.保存 .env 文件。
4.重启 Dify 服务以使配置生效。
我们根据官方提示,修改Dify的配置文件.env
,然后重启Dify。
工作流测试
搭建一个简单的Dify工作流,测试下MinerU插件的效果。

我们拿官方发布的文章来试验[https://mp.weixin.qq.com/s/fLd6yzM3KttWofXCdgDomA ],打印成PDF,有22页。

上传到工作流进行测试。

成功实现了图片型PDF的识别。新版本MinerU优化以后,不仅显存占用下降了,速度也挺快。22页的图片PDF,整个工作流用了20s就解析完成了。