Bundle
@huanlin/dsh-plugin-mineru
DSH plugin exposing MinerU document parsing tools to the model, with a web UI settings page for the API base URL.
- Source
- HuanLinOTO
- stars
- 47 stars
- License
- AGPL-3.0
- Updated
- Updated yesterday
Readme
<p align="center"> <a href="https://dshfind.com/zh/plugins/huanlinoto/dsh-plugin-mineru"><img src="https://dshfind.com/api/card/huanlinoto/dsh-plugin-mineru?lang=zh" alt="dsh-plugin-mineru card"></a> </p> # dsh-mineru [](https://www.npmjs.com/package/@huanlin/dsh-plugin-mineru) DSH 插件:向模型暴露 [MinerU](https://github.com/opendatalab/MinerU) 文档解析工具。MinerU 可将 PDF、图片、DOCX、PPTX、XLSX 等文件转换为结构化的 Markdown / JSON。 ## 安装 ```sh # 从 npm 安装(推荐): dsh plugin --profile web add @huanlin/dsh-plugin-mineru # 从本地 checkout 开发安装: dsh plugin --profile web add link:D:\Projects\deepseek-harness\dsh-mineru ``` 若从 git 安装(pnpm ≥10),需在 profile 的 `pnpm-workspace.yaml` 中允许构建: ```yaml allowBuilds: '@huanlin/dsh-plugin-mineru': true ``` ## 配置 在 DSH GUI 设置页或 `cordis.patch.yml` 中配置: | 字段 | 类型 | 默认值 | 说明 | |------|------|--------|------| | `baseURL` | string | *(必填)* | MinerU API 地址,如 `http://your-mineru-host:18000` | | `apiKeyEnv` | credential-ref | `MINERU_API_KEY` | API key 的环境变量名 / 凭据引用。测试实例无需鉴权。 | | `defaultBackend` | enum | `pipeline` | `pipeline` / `vlm-engine` / `hybrid-engine` / `vlm-http-client` / `hybrid-http-client` | | `defaultParseMethod` | enum | `auto` | `auto` / `txt` / `ocr` | | `defaultLang` | string | `ch` | pipeline 后端的语言代码 | | `pollIntervalMs` | number | `2000` | 异步状态轮询间隔 | | `pollTimeoutMs` | number | `600000` | `mineru_parse_document` 最大轮询时长(10 分钟) | | `requestTimeoutMs` | number | `60000` | 单次 HTTP 请求超时 | | `maxMdOutputChars` | number | `200000` | 内联返回给模型的 markdown 字符上限;超出时完整内容存到临时文件 | ## 工具 ### `mineru_parse_document`(推荐) 解析本地文档并返回提取出的 markdown。内部自动完成:提交文件 → 轮询至完成 → 返回 markdown。大多数解析任务用这个即可。 ### `mineru_submit_parse_job` 异步提交解析任务,立即返回 `task_id`。适合大文档或并行批量提交。 ### `mineru_get_parse_status` 轮询异步任务状态,返回 `pending` / `processing` / `completed` / `failed`。 ### `mineru_get_parse_result` 获取已完成任务的结果。内联返回 markdown(过大则截断),并将完整结构化 JSON 存到 `raw_result_path`。 ### `mineru_health` 检查服务器健康状态、版本、队列深度与并发容量。 ## 开发 ```sh pnpm install # 安装开发依赖(schemastery、typescript、vitest) pnpm run typecheck # tsc --noEmit 类型检查 pnpm test # vitest run 单元测试 pnpm run build # tsdown 构建 → lib/ ``` ## 目录结构 ``` dsh-mineru/ ├── src/ │ ├── index.ts # 入口:name、inject、Config(Schemastery)、apply │ ├── client.ts # MinerUClient(基于 fetch 的 HTTP 客户端 + 类型) │ ├── tools.ts # 5 个 defineTool 定义 + 辅助函数 + registerTools │ └── types.d.ts # @deepseek-ai/dsh-tools + cordis 的环境类型声明 ├── tests/ │ └── tools.spec.ts # 单元测试(mock fetch,无需真实服务器) ├── cordis.patch.yml # bundle 层:插入 dsh-mineru 插件行 ├── package.json # dsh.bundle.patch 声明 + peerDeps └── tsconfig.json # NodeNext、ES2022、strict ``` ## 测试 API 请自己部署 MinerU 实例。`cordis.patch.yml` 默认指向 `http://localhost:18000`,请在 DSH GUI 中覆盖 `baseURL` 改为你的 MinerU 服务器地址。
Install
dsh plugin --profile web add github:HuanLinOTO/dsh-plugin-mineru
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install huanlin-dsh-plugin-mineru from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.