遇到的问题(一定要好好研读 README 文档)
一定要按照文档要求使用python:3.10 版本,这样你可以避免许多坑
- 使用README文档中的命令不能正常拉取时:
pip install detectron2 --extra-index-url https://wheels.myhloli.com -i https://pypi.tuna.tsinghua.edu.cn/simple
可以换一种方式,- 直接访问
- 下载合适的whl
- 放在项目中或者某个目录下
-- 我是放在项目中的某个目录,然后执行:
pip install /app/detectron/detectron2-0.6-cp310-cp310-linux_x86_64.whl
根据你的实际路径调整路径信息
2.一定要使用指定版本依赖,列出容易出错的: torch==2.3.1 torchvision==0.18.1
- 因为Dockerfile中将所有的依赖和使用到的模型都打到镜像中了,所以镜像会比较大,我本地打了20多G,电脑要留足空间!!!
- 打镜像时,可以忽略一些不必要的文件,例如:
在根目录创建.dockerignore文件,文件内容
__pycache__/
.pytest_cache/
.venv/
.github/
.hg/
.git/
.DS_Store
Thumbs.db
*.log
*.tmp
*.temp
*.swp
*~
*.pyc
*.pyo
config.json
Docker部署
可以参考开源文档,在本地window或者Linux服务器上进行部署,部署时按照作者的文档走,不会出什么大问题,但是如果想要使用docker部署,以下内容可做参考,如有疑问,可在评论区进行沟通交流。
背景
寻找一个可以做pdf文档解析的开源项目,要求可以提供pdf解析接口,供文档系统调用。MinerU开源项目本身时没有开放接口请求,需要做二次开发。
二次开发
目录结构
功能:
1.开放接口
项目是python语言,选用了Flask框架,如遇到docker部署后,访问不到容器端口,可参考:https://www.jianshu.com/p/15b43ee9ba2b
- 参考文档
- Dockerfile文件
其中 requirements.txt 文件中有原始的依赖包,如果二次开发中有新添加的包或者发现运行时少的模块,都可以方放进去。
FROM python:3.10
# 设置工作目录
WORKDIR /app
# 将项目文件复制到工作目录
COPY . /app
#安装detectron2
RUN pip install /app/detectron/detectron2-0.6-cp310-cp310-linux_x86_64.whl
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
RUN pip install magic-pdf[full-cpu]==0.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/
RUN mv /app/magic-pdf.template.json ~/magic-pdf.json
EXPOSE 9090
# 安装项目依赖docker builder prune
RUN apt-get update && apt-get install -y curl net-tools vim iputils-ping
RUN apt-get install -y libgl1-mesa-glx
# 指定容器启动时执行的命令,这里假设app.py中的App类有一个main方法
CMD ["python", "app.py"]
执行生成镜像命令:
docker build -t miner_u .
- magic-pdf.template.json 文件
models-dir:依赖模型地址,我将模型直接放在项目中的/app/PDFExtractKit 路径下
temp-output-dir:文件识别后,导出md文件及 其他解析数据存放地址,可自己修改
{
"bucket_info":{
"bucket-name-1":["ak", "sk", "endpoint"],
"bucket-name-2":["ak", "sk", "endpoint"]
},
"models-dir":"/app/PDFExtractKit/models",
"temp-output-dir":"/app/parsefile",
"device-mode":"cpu",
"table-config": {
"is_table_recog_enable": false,
"max_time": 400
}
}
自测数据
Window 8C + 16G
- 单张pdf文件(一行字) - 70s
- 单张pdf文件(满页字)- 73s
-
16页pdf文件(有图有字)- 493s
持续更新中......