ADR-0018: MinerU Kit VLM Server Command
历史决策记录:保留当时的背景、状态和设计。当前接口与实现归属以 开发入口 和现行规范为准;文中的历史模块路径不保证仍存在。
状态: Accepted 日期: 2026-06-17 相关文档: - ../cli/mineru-kit.md - ../cli/mineru-kit-vlm-server.md - ../api/chat.md
背景
mineru-kit vlm-server 负责本地部署 VLM 模型服务。它与 mineru-kit api-server 的边界需要保持清楚:
mineru-kit api-server面向完整文档解析 API,负责 Files / Uploads / Parse Jobs 等资源语义。mineru-kit vlm-server面向 VLM 推理能力本身,可作为mineru-kit api-server的后端,尤其服务于vlm-http-client/hybrid-http-client。
现有仓库里还保留了 mineru-vllm-server、mineru-lmdeploy-server、mineru-openai-server 等旧入口,需要收敛到一个正式命令。
同时,需要明确它提供哪些 path、它是否承诺普通聊天能力,以及它如何处理不同 engine 的参数。
决策
1. 命令定位
mineru-kit vlm-server 是未来唯一正式的本地 VLM 服务启动入口。
它部署的是与 mineru.net chat API 同类的 VLM 模型,但该模型主要面向文档理解,经过专用微调,因此:
- 擅长 OCR、布局理解、页面理解、文档局部问答
- 不承担通用聊天能力承诺
2. 与 api-server 的边界
mineru-kit api-server
- 面向完整文档解析
- 提供 v1 parse API
- 管理文件、任务和解析产物
- 可把 VLM 推理委托给
vlm-server
mineru-kit vlm-server
- 面向 VLM 推理本身
- 提供 OpenAI-compatible chat 接口
- 不处理 Parse Jobs / Files / Uploads
- 不处理 doclib API
3. 协议范围
mineru-kit vlm-server 当前稳定提供:
GET /v1/healthGET /v1/modelsPOST /v1/chat/completions
/v1/responses 不作为当前稳定承诺。
原因:
- 部分底层 engine 可能支持
/v1/responses - 但
mineru-kit vlm-server不把它作为统一对外契约
4. 协议兼容语义
mineru-kit vlm-server 兼容 OpenAI Chat Completions 协议。
但这种兼容只表示:
- 请求/响应形态兼容
- 可复用现有 OpenAI-style client 和 serving stack
不表示:
- 提供通用大语言模型聊天体验
- 覆盖完整 OpenAI 产品语义
5. 命令参数
mineru-kit vlm-server 只稳定一个统一参数:
--engine auto|vllm|lmdeploy|sglang|mlx
规则:
--engine决定使用哪类底层 serving engine- 其它参数不在
mineru-kit vlm-server这一层统一定义 - 除统一参数外,其余参数原样透传到底层 engine server
6. 与旧入口的迁移关系
mineru-kit vlm-server 替代以下旧入口:
mineru-vllm-servermineru-lmdeploy-servermineru-openai-server
未来正式入口统一为:
mineru-kit vlm-server
替代方案
1. 把 vlm-server 设计成通用聊天服务
没有采用。当前模型主要面向文档理解,基础通用聊天能力较弱,不应在产品语义上承诺通用聊天。
2. 在 mineru-kit vlm-server 这一层重新定义完整稳定参数面
没有采用。不同底层 engine 的参数差异较大,当前阶段只统一 --engine 更清楚,也更容易保持和底层 runtime 对齐。
3. 把 /v1/responses 一并纳入稳定承诺
没有采用。不同 engine 的支持程度不一致,当前只把 /v1/chat/completions 作为稳定协议面。
影响
vlm-server与api-server的职责分层更清楚。- 本地 VLM 服务的正式入口收敛为单一命令。
api-server可稳定把vlm-server作为 http backend。- 未来如需扩大协议面(如稳定支持
/v1/responses),应作为增量设计处理。
后续动作
- 新增
docs/next/cli/mineru-kit-vlm-server.md - 更新
docs/next/cli/mineru-kit.md - 更新
docs/next/cli/README.md - 更新
docs/next/cli.md - 更新
docs/next/cli/ - 更新
docs/next/decisions/README.md