美文网首页
MinerU部署经验

MinerU部署经验

作者: 还没想好ONE | 来源:发表于2024-08-13 16:22 被阅读0次

遇到的问题(一定要好好研读 README 文档)

一定要按照文档要求使用python:3.10 版本,这样你可以避免许多坑

  1. 使用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

  1. 因为Dockerfile中将所有的依赖和使用到的模型都打到镜像中了,所以镜像会比较大,我本地打了20多G,电脑要留足空间!!!
  2. 打镜像时,可以忽略一些不必要的文件,例如:
    在根目录创建.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开源项目本身时没有开放接口请求,需要做二次开发。

二次开发

目录结构

image.png

功能:

1.开放接口
项目是python语言,选用了Flask框架,如遇到docker部署后,访问不到容器端口,可参考:https://www.jianshu.com/p/15b43ee9ba2b

  1. 参考文档
  • 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


    window.png

持续更新中......

相关文章

  • 部署经验

    zookeeper调试集群 Zookeeper源码分析(四) ----- 集群模式(replicated)运行 码...

  • WebApi调试

    这些天在搞 WebApi ,踩了不少坑。总结下经验教训:1、如果WebApi部署在本机上正常,但是部署到服务器就不...

  • Prometheus+Grafana+Consul部署总结

    介绍部署方式的文档很多,这里就不多做介绍了,更多的本次部署的经验教训,框架的模式等的总结。 公司需要发...

  • Open falcon 安装部署经验

    安装步骤 一、下载并且解压 wget https://github.com/XiaoMi/open-falcon/...

  • Debian 服务器部署Rails

    很久以前写的文章,一直放在硬盘上,Debian部署Rails很多次了;这是总结的最快最稳定的部署方式;以过往的经验...

  • 做广告过滤踩过的坑

    用事实说话 之前已经有在本地计算机部署的经验了,所以这次部署起来算是得心应手,虽然远程操作实在不方便,不仅速度慢而...

  • 腾讯蓝鲸运营平台部署经验

    前言 话不多说~直接开干本文部署的是标准版,即部署在三台机器上,且机房是无法连接外网的,资源全部配置为离线资源 1...

  • linux部署Vue项目血泪经验

    前言 来啦老铁! 笔者近期在团队开发个小工具,后端语言python,对应框架为flask,前端框架vue,笔者对v...

  • 经验传递 资源共享

    根据学校这个学期的部署安排,也为了加强我校班主任队伍建设,优秀班主任的管理经验得到推广,达到经验传递,资源共享...

  • PHP优雅上线——Jenkins可持续集成部署

    本教程将搭建Jenkins部署服务,教你如何优雅上线 欢迎加博主微信(18501258725)更多PHP开发经验分...

网友评论

      本文标题:MinerU部署经验

      本文链接:https://www.haomeiwen.com/subject/verjkjtx.html