ADR-0019: MinerU Kit Models Command
历史决策记录:保留当时的背景、状态和设计。当前接口与实现归属以 开发入口 和现行规范为准;文中的历史模块路径不保证仍存在。
状态: Accepted 日期: 2026-06-17 相关文档: - ../cli/mineru-kit.md - ../cli/mineru-kit-models.md - ../cli/README.md
更新: ADR-0025 已取代本文中关于模型配置落点、pipeline / vlm / all bundle 参数,以及下载后写入 mineru.json 的决策。本文保留为 mineru-kit models 命令组建立背景记录。
背景
旧 CLI 提供 mineru-models-download,用于下载 Pipeline 或 VLM 模型,并在下载完成后更新 mineru.json 中的 models-dir 配置。
当前实现存在几个问题:
- 入口是单个顶级命令,不利于后续扩展查看、校验等配套能力。
- 参数是交互式可选输入,不适合作为稳定脚本接口。
- 下载、配置和状态查看没有形成一组清晰的命令面。
- 项目正在形成
mineru-kit作为专家工具集合,需要把旧模型下载入口纳入统一命令体系。
同时,本阶段不打算把模型配置迁移到新的全局配置体系,仍继续使用旧 mineru.json 文件。
决策
mineru-kit 引入 models 命令组,第一阶段只提供三个子命令:
mineru-kit models download
mineru-kit models show
mineru-kit models verify
第一阶段不引入 set-dir、remove、clean、gc 等更重的模型管理命令。
1. 配置落点
第一阶段继续使用旧配置文件:
- 默认:
~/mineru.json - 可通过
MINERU_TOOLS_CONFIG_JSON指定其它路径
仍沿用现有字段:
models-dir.pipelinemodels-dir.vlm
第一阶段不迁移到新的 mineru/config.py / config.yaml 体系。
2. mineru-kit models download
该命令替代旧 mineru-models-download。
建议形态:
mineru-kit models download <pipeline|vlm|all> [flags]
参数:
bundle使用位置参数表达,取值为pipeline、vlm、all--source/-s:auto | huggingface | modelscope--verbose/-v
规则:
- 不再支持交互式 prompt,必须显式给出
bundle --source默认值为auto--source auto会解析为本次下载实际使用的huggingface或modelscope,并把实际来源写回mineru.jsonbundle没有默认值,必须显式给出- 下载完成后默认更新
mineru.json - 不支持
--no-config - 不支持
--config - 不支持显式设置模型下载目录
- 保持当前下载行为:由 Hugging Face / ModelScope 下载器自行决定缓存落点,MinerU 只记录最终模型目录
- 当
MINERU_MODEL_SOURCE=local时,下载命令仍临时切换到真实远端源执行下载
3. mineru-kit models show
该命令用于查看当前模型配置与基本状态。
建议输出:
- 当前实际使用的配置文件路径
model-sourcemodels-dir.pipelinemodels-dir.vlm- 当前
MINERU_MODEL_SOURCE环境值 - 配置路径是否存在
第一阶段不支持 --json。
4. mineru-kit models verify
该命令用于轻量校验模型配置与关键路径。
建议形态:
mineru-kit models verify [pipeline|vlm|all]
规则:
- 默认校验全部已配置 bundle
- 也可显式指定
pipeline、vlm或all - 做轻量校验,但不只是目录存在性检查
- 需要检查关键子路径是否存在
第一阶段不支持 --json。
5. 当前 bundle 定义
第一阶段保持当前项目已有 bundle 划分,不重新拆分对象粒度:
pipelinevlmall = pipeline + vlm
其中:
vlm对应单个 VLM 仓pipeline对应一组版面、OCR、公式、表格相关模型路径
命令层不把这些内部模型拆成更多顶级下载对象。
替代方案
方案 A:保留单个 download-models 顶级命令
优点:
- 迁移成本最低
缺点:
- 不利于形成完整模型管理命令面
- 后续
show/verify只能继续散落为新的顶级命令
未采用。
方案 B:保留更完整的命令组,包括 set-dir
候选命令面:
mineru-kit models download
mineru-kit models show
mineru-kit models set-dir
mineru-kit models verify
优点:
- 对离线部署和手工模型目录登记更完整
缺点:
- 第一阶段命令面偏重
set-dir更像旧配置文件管理能力,不是最核心的下载闭环
第一阶段未采用;后续如离线部署需求明确,可再引入。
方案 C:为 download 提供默认 bundle
候选默认值包括 pipeline 或 all。
未采用的原因:
- 模型体积较大,隐式默认下载代价高
pipeline与all都会在部分用户场景下造成明显浪费- 对部署命令来说,显式选择比隐藏成本更重要
因此 bundle 作为必选位置参数。
影响
对 CLI
mineru-kit将覆盖旧mineru-models-download的核心能力models命令组成为mineru-kit第一阶段正式子命令之一
对配置
- 第一阶段继续依赖旧
mineru.json - 不引入新的模型配置持久化格式
对实现
- 旧
models_download.py可作为download的主要实现参考 - 需要补充
show与verify两个命令 verify需要整理pipeline与vlm的关键路径清单
对用户体验
- 下载行为从交互式改为显式参数,脚本友好
- 不再因为默认 bundle 导致隐式大体积下载
- 仍保留当前“下载后自动登记配置”的易用性
后续动作
- 为
mineru-kit models增加正式 CLI 文档。 - 在
mineru-kit总览与docs/next/cli/中补充该命令组。 - 后续如需要支持离线部署目录登记,再单独讨论是否引入
models set-dir。