当前位置: 首页 > news >正文

Docker使用MinerU

Docker使用MinerU

1 介绍

MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。效果不错,但是有点慢。

# 官网地址
https://opendatalab.github.io/MinerU/zh/# Github地址
https://github.com/opendatalab/mineru

2 构建模型

基于vllm-openai:v0.10.1.1和Dockerfile构建镜像。

下载vllm-openai:v0.10.1.1镜像

docker pull vllm/vllm-openai:v0.10.1.1

Dockerfile内容(可以从官网上下载

# Use DaoCloud mirrored vllm image for China region for gpu with Ampere architecture and above (Compute Capability>=8.0)
# Compute Capability version query (https://developer.nvidia.com/cuda-gpus)
FROM docker.m.daocloud.io/vllm/vllm-openai:v0.10.1.1# Use the official vllm image
# FROM vllm/vllm-openai:v0.10.1.1# Use DaoCloud mirrored vllm image for China region for gpu with Turing architecture and below (Compute Capability<8.0)
# FROM docker.m.daocloud.io/vllm/vllm-openai:v0.10.2# Use the official vllm image
# FROM vllm/vllm-openai:v0.10.2# Install libgl for opencv support & Noto fonts for Chinese characters
RUN apt-get update && \apt-get install -y \fonts-noto-core \fonts-noto-cjk \fontconfig \libgl1 && \fc-cache -fv && \apt-get clean && \rm -rf /var/lib/apt/lists/*# Install mineru latest
RUN python3 -m pip install -U 'mineru[core]' -i https://mirrors.aliyun.com/pypi/simple --break-system-packages && \python3 -m pip cache purge# Download models and update the configuration file
RUN /bin/bash -c "mineru-models-download -s modelscope -m all"# Set the entry point to activate the virtual environment and run the command line tool
ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"]

构建镜像

docker build -t mineru:2.6.4 -f Dockerfile .

构建容器

docker run -itd \
--name mineru \
--gpus all \
--shm-size 32g \
-p 30000:30000 \
-p 7860:7860 \
-p 8000:8000 \
--ipc=host \
-it mineru:2.6.4 \
mineru-vllm-server --port 30000

3 使用Python调用

可参考官网的Python进行修改。

Python代码

import os
from pathlib import Pathfrom mineru.backend.vlm.vlm_middle_json_mkcontent import union_make
from mineru.backend.vlm.vlm_analyze import doc_analyzefrom mineru.utils.enum_class import MakeMode
from mineru.cli.common import read_fn, convert_pdf_bytes_to_bytes_by_pypdfium2, prepare_env
from mineru.data.data_reader_writer import FileBasedDataWriterdef test(pdf_path: Path, pdf_file_name: str, output_dir: Path, server_url):# 解析方法parse_method = "vlm"backend = "http-client"# 读取文件流pdf_bytes = read_fn(pdf_path)pdf_bytes = convert_pdf_bytes_to_bytes_by_pypdfium2(pdf_bytes)# 预处理文件local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, parse_method)image_writer = FileBasedDataWriter(local_image_dir)md_writer = FileBasedDataWriter(local_md_dir)# 解析文件middle_json, infer_result = doc_analyze(pdf_bytes, image_writer=image_writer, backend=backend, server_url=server_url)# 获取结果print(middle_json)print(infer_result)# 获取解析的信息pdf_info = middle_json["pdf_info"]# 解析Markdown文件f_make_md_mode = MakeMode.MM_MDimage_dir = str(os.path.basename(local_image_dir))md_content_str = union_make(pdf_info, f_make_md_mode, image_dir)# Markdown文本print(md_content_str)# 存储文件md_writer.write_string(f"{pdf_file_name}.md",md_content_str,)if __name__ == '__main__':pdf_input_temp = "E:/test/input/test1.pdf"test(pdf_path=Path(pdf_input_temp), pdf_file_name="test1", output_dir=Path("E:/test/output"), server_url="http://192.168.0.104:30000")

4 执行结果

服务器结果
在这里插入图片描述

Python代码执行结果

在这里插入图片描述

http://www.dtcms.com/a/618470.html

相关文章:

  • 阿里巴巴国际站开店流程及费用福建网站建设
  • 云软件网站建设南昌公司网站建设公司
  • 做一个网站多久沈阳视频制作公司
  • 算法:位运算类型题目练习与总结
  • 中山网站建设中山国产服务器系统免费的有哪些
  • 【水下目标检测】Yolov8-GDFPN实现水下气泡智能识别系统
  • Python转义字符与原字符
  • 双语网站后台怎么做淄博网站快照优化公司
  • 两学一做知识竞答网站越秀营销型网站建设
  • JavaEE ——多线程的线程安全集合类
  • AI重塑语言教育的深层逻辑:从算法到应用的完整旅程
  • 递归算法精讲:从汉诺塔到反转链表
  • 详解 MySQL 自适应哈希
  • 开平市城乡建设局网站电商网站设计公司
  • 【每天一个AI小知识】:什么是支持向量机(SVM)?
  • AgentOS使用和可视化
  • 定制网站制作广州建设网站设计公司
  • 洛谷 P3935 Calculating——因数个数定理+整除分块(数论分块)
  • 哪里建设网站不会被封设计师网民
  • 人工智能综合项目开发12——模型优化与调优——损失函数
  • Linux系统安装 分区挂载时空间不足且无法回收 问题处理
  • 用curl实现Ollama API流式调用
  • Multisim数据库不可用解决方法
  • 数据库-MySQL-01
  • 怎样制作html个人网站学python能干嘛
  • 用 C 语言破解汉诺塔难题:递归思想的实战演练
  • 【架构解析】深入浅析DeepSeek-V3的技术架构
  • 多模态大模型与单模态大模型的数据准备区别
  • 资讯网站排版wordpress post 类型
  • 开发微网站和小程序安徽建设教育协会网站