美文网首页
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

    持续更新中......

    相关文章

      网友评论

          本文标题:MinerU部署经验

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