MinerU能够将包含图片、公式、表格等元素的多模态PDF、PPT、DOCX等文档转化为易于分析的Markdown格式。
1 克隆MinerU的仓库
shell
git clone https://github.com/opendatalab/MinerU.git
2 cd到projects/web-api
shell
cd projects/web-api
3 在可以科学上网的情况下可以直接运行
shell
docker build -t mineru-api .
4 如果不能科学上网,使用modelscope
修改requirement.txt,添加modelscope==1.25.0
![[Pasted image 20250429165051.png]] 修改download_models.py,删掉所有旧代码,改成这个
python
#!/usr/bin/env python
import os
from modelscope.hub.snapshot_download import snapshot_download
# 配置模型下载路径(Windows路径示例:r'C:\MinerU')
MAIN_MODEL_DIR = "/opt/"
os.makedirs(MAIN_MODEL_DIR, exist_ok=True)
if __name__ == "__main__":
# PDF-Extract-Kit的模型下载(需替换为ModelScope对应ID)
pdf_extract_patterns = [
"models/Layout/YOLO/**",
"models/MFD/YOLO/**",
"models/MFR/unimernet_hf_small_2503/**",
"models/OCR/paddleocr_torch/**",
]
pdf_model_path = snapshot_download(
'opendatalab/PDF-Extract-Kit-1.0', # ModelScope模型ID
allow_patterns=pdf_extract_patterns,
cache_dir=os.path.join(MAIN_MODEL_DIR, "models"),
revision='master' # 指定模型版本
)
# LayoutReader模型下载(需替换为ModelScope对应模型)
layout_model_path = snapshot_download(
'ppaanngggg/layoutreader', # 替换为实际ModelScope ID
cache_dir=os.path.join(MAIN_MODEL_DIR, "layoutreader"),
allow_patterns=["*.json", "*.safetensors"]
)
print(f"主模型目录:{pdf_model_path}")
print(f"布局模型目录:{layout_model_path}")
再运行docker build -t mineru-api .
5 编写docker-compose.yml
yml
services:
mineru-api:
image: mineru-api
ports:
- "8000:8000"
stdin_open: true # 对应 -i 参数
tty: true # 对应 -t 参数
runtime: nvidia # 使用 NVIDIA 容器运行时
environment:
- NVIDIA_VISIBLE_DEVICES=all # 允许访问所有 GPU
6 如果没有nvidia的runtime,先备份自己的daemon.json文件(/etc/docker/),通过yum install -y nvidia-docker2
安装,这个命令会生成一个新的daemon.json文件,覆盖掉原来旧的,安装后之后比较一下新旧两个daemon文件,合并在一起。
7 启动
shell
systemctl daemon-reload
systemctl restart docker
docker compose up -d
8 访问localhost:8000/docs