Health、Models 与 Tiers
实现:mineru/parser/api_server.py、mineru/kit/router/app.py。
这些发现接口不要求 API Key,但仍可能因预加载失败或无健康 worker 返回 503。
Router 仅聚合健康且管理状态为 active 的节点;draining 节点仍可服务已有任务,但不再贡献对外发现能力。参见 upstream 管理。
它们描述当前服务,不能推断公网 SaaS 的套餐或部署版本。
GET /v1/health
返回 status="ok"、服务 version 和 features。
Python Server 的 features 包含 webhook=false、task_output_formats=["default","docx","html","latex"]、
sources=["upload","url"]。Router 从健康 worker 合并格式和输入类型,没有健康 worker 时返回 503。
健康检查不执行完整推理;成功不代表任意输入必定解析成功。
模型预加载失败使用 model_preload_dependency_missing/model_preload_files_missing/model_preload_device_unavailable/model_preload_failed 等错误码。
GET /v1/models 与 /v1/models/{model}
列表为 {"object":"list","data":[...]}。Python Server 发布一个虚拟模型:
id="mineru-<服务版本>",object="model",created 为注册时的 Unix 秒,owned_by="mineru",附带 description。
ID 标识服务版本,不是推理引擎,也不是 Tasks 请求参数。
查询不存在或旧版本的 ID 返回 404 model_not_found。
Router 合并健康 worker 的模型列表并按 ID 去重。多个版本 ID 表示 worker 版本不同,不是多种解析 tier。
GET /v1/tiers
返回 object="list" 与 data 数组,每项包含:
| 字段 | 类型 | 含义 |
|---|---|---|
id |
四档枚举 | 该服务允许 PDF/图片请求使用的档位 |
description |
string | 档位说明 |
current_model |
string 或 null | 当前虚拟模型 ID;未知时可空 |
| Python API 启动配置 | 开放集合 |
|---|---|
--tier flash |
flash |
--tier basic |
flash、basic |
--tier standard |
flash、basic、standard |
--tier advanced |
全部四档 |
--tier auto 或省略 |
硬件推荐的上限及较低档位 |
create_app(tiers={"advanced"}) |
仅 advanced;Python 参数是精确集合 |
该列表只约束 PDF/图片。正常可用服务的原生文档仍使用 Flash,不要求列表中存在 flash。 Tasks 省略 tier 时使用 standard → basic → flash → advanced;只开放 Advanced 时才自动选中它。 显式不支持的 PDF/图片档位报错,不改档。完整语义见 Tasks。