RAGFlow 全面接入 MinerU 2.0,支持 pipeline、vlm-transformers、vlm-sglang 三种模式,解析精度大幅度提升
KnowFlow v1.0.0正式接入MinerU 2.0,主要解决原架构耦合度高、部署困难的问题,并显著提升文档OCR识别准确率。新版支持三种部署模式,重点推荐vlm-sglang-client模式,在单卡4090上可达10,000+tokens/s的吞吐量。项目采用组件化设计,提供轻量级和完整版Docker镜像,并开放源码方便二次开发。开发者发烧期间仍坚持完成版本发布,强调开源项目的价值在于技
KnowFlow v1.0.0 终于迎来了众多群友期待的功能点:接入 MinerU 2.0。为什么我们第一时间决定要接入 MinerU 2.0,这里有几点考虑:
-
• 原先 KnowFlow 是通过 Python 直接调用 MinerU 1.x 的 API 接口,部署成本较高,架构设计高度耦合,不利于扩展
-
• 社区同学反馈 MinerU 2.0 vlm-sglang 效果非常好,解决了原先文档 OCR 过程中存在的一系列问题,效果逐渐逼近付费 OCR 效果
-
• KnowFlow 始终坚持的一点:高准确率,这个功能点可大幅提升文档识别和解析效果

同时近期也和 RAGFlow 官方产品经理做了深度沟通,产品经理高度肯定了 KnowFlow 产品的出发点和价值,也欢迎更多的朋友支持 RAGFlow 的发展。
MinerU 2.0 功能简介
MinerU 2.0 共支持三种部署模式,这里我们直接放官方示例图:

pipeline 模式
pipeline 模式简单理解就是 MinerU 1.x 的功能,MinerU 2.0 相当于做了向下兼容。这种模式配置要求最低,本地 MAC 开发开启了 mps 模式后,pipeline 跑起来速度还是令人惊喜。
vlm-transformers 模式
该模式使用 HuggingFace transformers 库直接加载和运行视觉语言模型,实现端到端的文档理解。实测真的很慢,配置要求挺高,存在 vlm-sglang 模式前提下,不建议采用此模式。
vlm-sglang 模式
vlm-sglang 包含两种子模式:
-
• vlm-sglang-engine
-
• 架构:本地 SGLang 引擎集成
-
• 性能:通过 SGLang 加速,在单卡 NVIDIA 4090 上可达 10,000+ tokens/s 吞吐量
-
• 硬件要求:需要 24GB+ VRAM
-
-
• vlm-sglang-client
-
• 架构:远程 SGLang 服务器客户端连接
-
• 部署方式:支持分布式处理,客户端仅需 CPU 和网络连接
-
• 服务器配置:使用自定义的 SGLang 服务器
-
对于 KnowFlow 来说,本次 vlm-sglang 支持 vlm-sglang-client。
KnowFlow v1.0.0 功能简介
考虑后续可能会对接更多的 OCR 引擎, KnowFlow v1.0.0 本次架构设计采用 FastAPI 和 MinerU2.0 进行对接。
MinerU 2.0 Web API
截止到发稿日为止,MinerU 2.0 仍未推出官方的 Web API 服务。KnowFlow 在原先 MinerU 1.x 的基础上适配了 Web API ,并将源码开放,方便后续持续升级和维护 MinerU 最新版本以及自定义改造。

该 Web API 服务和独立于 KnowFlow 单独使用,符合组件化设计思想。
同时项目中提供了 demo 文件、测试脚本、解析后的结构化数据样例等,方便后续的测试联调。
考虑到部分用户用不到 vlm-sglang 模式,KnowFlow 提供了两个镜像:
•
zxwei/mineru-api-full:包含完整的 VLM 功能,支持所有后端类型•
zxwei/mineru-api:基础版本,主要支持 pipeline 后端
其中 mineru-api 镜像体积较小,适合不需要本地开发,而只是简单本地体验用户;mineru-api-full 适合生产环境,保证足够强的解析效果。

考虑到部分开发者觉得镜像体积太大,只需要本地开发联调,我们贴心的提供了本地 MinerU2.0 web api 部署方式。这样的话,就无需拉取体积巨大的镜像了。
# 1. 安装 Python 依赖(注意:zsh 需要用引号包围方括号)
pip install "mineru[core]" fastapi uvicorn python-multipart
# 2. 设置环境变量
export MINERU_DEVICE_MODE=cpu
export MINERU_MODEL_SOURCE=modelscope
# 3. 进入项目目录
cd web_api
# 4. 启动本地服务
python app.py
KnowFlow Client
有了 MinerU2.0 Web API 的服务端,对于 KnowFlow client 端,我们提供了非常简单的配置参数,可以很方便的指定解析模式以及配置相关参数。
# =======================================================
# MinerU 文档解析配置 (客户端配置)
# =======================================================
mineru:
# FastAPI 客户端配置
fastapi:
# FastAPI 服务地址
# 本地开发: http://localhost:8888
# Docker部署: http://host.docker.internal:8888 (Docker Desktop)
# 或 http://宿主机IP:8888 (Linux Docker)
# 或 http://mineru-api:8888 (Docker Compose网络)
url: "http://host.docker.internal:8888"
# HTTP 请求超时时间(秒)
timeout: 30000
# 默认使用的后端类型
# 选项: pipeline, vlm-transformers, vlm-sglang-client
default_backend: "pipeline"
# Pipeline 后端请求参数
pipeline:
# 解析方法: auto, txt, ocr
parse_method: "auto"
# 文档语言(提升OCR准确率)
lang: "ch"
# 是否启用公式解析
formula_enable: true
# 是否启用表格解析
table_enable: true
# VLM 后端配置
vlm:
sglang:
# SGLang 服务器地址(vlm-sglang-client 后端需要)
# Docker部署时同样需要使用宿主机IP或容器网络地址
server_url: "http://host.docker.internal:30000"
实测过程中,强烈推荐大家采用 vlm-sglang-client 模式,该模式速度上比 vlm-transformers 提高了很多倍,当然显存占用大点,我实测单卡 48 G 显存 500KB PDF 文件,解析速度大概在 5s 左右。
项目开发过程中,有一个细节值得提出来:pipeline 和 vlm-sglang-client MinerU 2.0 官方模型吐出来的数据协议竟然有差别,这个问题真诡异,建议 MinerU 2.0 后续予以统一。
KnowFlow 未来展望
至此,MInerU 2.0 接入告一段落,后续将会重新和大家一起将 RAGFlow 源码深度解读, 围绕我们日常关心的功能点,如知识图谱、元数据、Tag、分块原理、混合检索原理等。
读源码的过程中才能更加深入理解 RAGFlow 产品细节,才能逐渐的从适应它到掌控它。
有部分同学关于 KnowFlow 前端 UI 源码开源的事,后面我们也会把前端代码开源出来,让更多的人参与进来,设计出更友好的交互体验。

为了让更多的人了解 KnowFlow ,最后一个计划是准备在 B 站和抖音给大家科普下本项目部署和使用的一些细节。
交流联系
本项目代码已完全开源,欢迎关注「KnowFlow 企业知识库」,加入交流群,一起沟通交流。
写了这么多,也想分享下本周的一些感受。身体不知道是阳了还是怎么的,顶着发烧,头昏脑涨,把这个版本如期发出去了。
有人问,你开源这个项目,能赚钱么?
说实话,没赚到一分,那为什么还在做?
我始终认为:输出一些有价值的东西出去,和更多的人产生交流和联系,获得一部分人的认可,这就足够了。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)