🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

PDF 智能解析 Yurzi/dsh-pdf-mineru

DeepSeek Harnessv0.2.2
Yurzi8 天前有提交已提供中文文档扫描:含敏感能力

用 MinerU 解析 PDF,让 DeepSeek Harness 里的智能体按证据阅读文档

43/100
综合分
20
GitHub 星标
1,581
npm 周下载
—/5
用户评分

数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-pdf-mineru
npm 源 · dsh-pdf-mineru 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · model
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-pdf-mineru @ 0.2.2
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 22:57:30

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 82 处,展示前 31 条)
  • 读取本地文件
    lib/index.js:1233
    const stream = createReadStream(filePath, { signal });
  • 读取本地文件
    lib/index.js:1284
    before = await stat(path);
  • 读取本地文件
    lib/index.js:1292
    const after = await stat(path);
  • 读取本地文件
    lib/index.js:1314
    current = await stat(source.path);
  • 发起网络请求
    lib/index.js:1498
    response = await fetch(url, requestInit);
  • 发起网络请求
    lib/index.js:2033
    response = await fetch(target.toString(), requestInit);
  • 读取本地文件
    lib/index.js:3554
    if ((await stat(path)).size > maxBytes) throw new MinerUError(failure("RESULT_TOO_LARGE", "JSON ZIP artifact exceeds validation limit"));
  • 读取本地文件
    lib/index.js:3558
    content = await readFile(path, "utf8");
  • 写入本地文件
    lib/index.js:3610
    await pipeline(input, tracker, createWriteStream(tempPath, {
  • 删除本地文件
    lib/index.js:3617
    await rm(tempPath, { force: true });
  • 发起网络请求
    lib/index.js:4075
    response = await fetch(url, {
  • 发起网络请求
    lib/index.js:4531
    response = await fetch(safeUploadUrl, requestInit);
  • 发起网络请求
    lib/index.js:4594
    response = await fetch(safeCdnUrl, requestInit);
  • 执行外部命令来自配置/变量
    lib/index.js:5768
    child = spawn(request.command === "pdfjs" ? process.execPath : request.command, [...request.args], {
  • 写入本地文件
    lib/index.js:5906
    await pipeline(handle.createReadStream({ autoClose: false }), limiter, createWriteStream(snapshotPath, {
  • 删除本地文件
    lib/index.js:6036
    const removeTemporaryDirectory = dependencies.removeTemporaryDirectory ?? ((path) => rm(path, {
  • 写入本地文件
    lib/index.js:7854
    await mkdir(current, { mode: 448 });
  • 写入本地文件
    lib/index.js:7946
    await writeFile(temporary, JSON.stringify(FENCE), {
  • 删除本地文件
    lib/index.js:7956
    await rm(temporary, { force: true });
  • 写入本地文件
    lib/index.js:7978
    await mkdir(candidatePath, { mode: 448 });
  • 写入本地文件
    lib/index.js:7984
    await writeFile(temporary, String(ticket), {
  • 删除本地文件
    lib/index.js:8010
    await rm(ownedPath, {
  • 删除本地文件
    lib/index.js:8021
    if (claimPath !== void 0) await rm(claimPath, {
  • 删除本地文件
    lib/index.js:8086
    await rm(path, {
  • 读取本地文件
    lib/pdfjs-worker.mjs:109
    const info = await stat(path)
  • 读取本地文件
    lib/pdfjs-worker.mjs:140
    access(join(resourceDirs.cMapUrl, 'Adobe-CNS1-UCS2.bcmap'), constants.R_OK),
  • 读取本地文件
    lib/pdfjs-worker.mjs:141
    access(join(resourceDirs.iccUrl, 'CGATS001Compat-v2-micro.icc'), constants.R_OK),
  • 读取本地文件
    lib/pdfjs-worker.mjs:142
    access(join(resourceDirs.standardFontDataUrl, 'LiberationSans-Regular.ttf'), constants.R_OK),
  • 读取本地文件
    lib/pdfjs-worker.mjs:143
    access(join(resourceDirs.wasmUrl, 'jbig2.wasm'), constants.R_OK),
  • 读取本地文件
    lib/pdfjs-worker.mjs:144
    access(join(resourceDirs.wasmUrl, 'openjpeg.wasm'), constants.R_OK),
  • 发起网络请求
    lib/pdfjs-worker.mjs:281
    async fetch({ kind, filename }) {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-group@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/cordis-plugin-timer@deepseek-ai/cosmokit@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-app-boot@deepseek-ai/dsh-attachment@deepseek-ai/dsh-brand@deepseek-ai/dsh-client-connection
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 解析PDF与文档
  • 不依赖服务商

由 MinerU 驱动、不依赖服务商的 DSH PDF 阅读工具。

v0.2.22026-10-26
补丁版本:让原页校验在非英文系统区域设置的 Windows 上可用,并暴露自托管 MinerU 4.x 的错误码。 · 修复 · 原页视图(read_pdf 带 view: "page")在非英文系统区域设置的 Windows 上可用(#5)。Poppler 用系统代码页打印 CreationDate 的时区名,pdfinfo 输出因此被判为无效 UTF-8,所有带日期的 PDF 都失败。现在只读 Pages: 一行,渲染器以 TZ=UTC 运行。(f13735f) · PDF.js 页面渲染器在 Windows 上不再失败:它的资源 URL 以 \ 结尾,而 PDF.js 要求 /。这类配置错误现在报为渲染器失败,不再报为无效 PDF。(f13735f) · 自托管 MinerU 4.x(V1)失败时现在带上服务端的错误码和消息,不再只有 HTTP 状态,例如 engine_dead、invalid_api_key、quality_tier_unavailable、upload_not_found 或 file_not_found。覆盖 API 请求、字节上传、结果下载和单文件任务错误;错误码保留为失败的 providerCode,凭据仍做脱敏,状态到错误的映射和可重试性不变。(2cb445a) · 连接测试失败时,在「Service unavailable」或「API key was rejected」旁显示服务端的诊断信息。(2cb445a) · 变更 · 自托管 V1 测试夹具和场景跟随 MinerU 4.0.12 的响应。无需改配置。(2cb445a) 完整变更日志:
v0.2.12026-10-19
dsh-pdf-mineru 升到 DeepSeek Harness 0.2.1(engines.dsh: >=0.2.1-rc.2 =0.2.1-rc.2 <0.3.0-0;DSH 运行时对等依赖用同一范围(3f69bea) · 设置和存储维护 RPC 除回环 Host 外还要求 DSH 所有者;破坏性维护仍需预览并显式确认(3f69bea) · 存在 DSH 里的凭据优先于同名环境变量(3f69bea) · 后台任务 ID 由 DSH 发放,应当作不透明值处理(3f69bea) · 设置页有两个标签页(「服务与解析」「存储」),显示可读的服务商名称、内联连接测试、易读的时长、仅在未保存改动时出现的保存栏,以及先预览再确认的维护对话框(3f69bea) · read_pdf 的展示元数据是精简摘要,让嵌套的 run_code 日志保持小巧;工具结果不变(3f69bea) · 内部重构为 tools → ReaderService → ParseService → providers/storage 分层,文档重组为 README、docs/configuration.md、docs/model-reading.md、ARCHITECTURE.md 和 CONTRIBUTING.md(3f69bea) · 移除 · 单独的垃圾回收预览;清缓存试运行成为唯一预览(3f69bea) · 提交进仓库的 lib/ 构建产物和发布的 TypeScript 声明(npm 包仍附带运行时 bundle 和 PDF.js worker)(3f69bea) · MinerUService 和 parseReadInput 导出,由 ParseService、ReaderService 和 parseReadArguments 取代(3f69bea) · verify:gui 和打包产物冒烟脚本,由端到端测试套件取代(a3ed6d4) 完整变更日志:
v0.2.02026-10-04
MinerU 4.x 支持,含显式自托管协议、协议感知设置和带版本号的配置迁移。需要 DeepSeek Harness >= 0.2.0-rc.2。 · 新增 · 通过原生 DSH 工具/任务流水线支持 MinerU 4.x V1 上传会话、解析任务和规范化 ZIP 产物。(bd68500) · 新增独立的自托管 V1 配置档,含层级与 OCR 模式控制、部署能力探测、双语指引和保留草稿的设置。(09795c4) · 新增配置 schema 3,含有序的 1→2→3 迁移,并为缺失或不支持的历史值提供安全默认值。旧配置在加载时于内存中转换;只有你显式保存才会写入新格式。(6ab9784) · 变更 · 拆分 self-hosted-v1、self-hosted-legacy-v2 和 official-v4 服务商、schema 与 UI 控件。V1 不再从旧后端映射推导层级,连接也绝不静默回退到其他协议。(09795c4) · 自动把历史 self-hosted-v2 配置档迁移为 self-hosted-legacy-v2,保留有效身份、端点、凭据引用和后端设置,同时移除旧版不适用的层级值。无版本号的 Provider 配置按 schema 2 处理;未知的未来版本仍报错。(6ab9784) · 新的自托管身份不复用旧的自托管缓存条目,下次读取会重新解析文档。此前依赖自动 V1 探测的部署必须显式选择 self-hosted-v1。工具参数、cursor v3 和 index v2 保持不变。(09795c4、6ab9784) · 声明 ConfigEditor 运行时 peer,与现有 DSH 0.2.0-rc.2 基线对齐,以完成迁移保存。(6ab9784) · 修复 · 按层级和生效 OCR 模式隔离 V1 缓存,并在 HTTP 200 后重试中断的归档响应体,但不重试不安全的创建请求。(bd68500、09795c4) · 显式迁移保存时原子持久化修复后的非表单字段,其他字段无效时保留有效的耦合重试/ZIP 限制设置,持久化失败时保持运行时设置不变。(6ab9784) · 保留各配置档草稿和维护确认边界,服务商设置或凭据变更时使过期的探测结果失效。(09795c4) 完整变更日志:
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-pdf-mineru 用 MinerU 解析 PDF,让 DeepSeek Harness 里的智能体按证据阅读文档 支持 MinerU 官方云(v4)、自部署 MinerU 4.x(V1 API)和 3.x(旧版任务 API)。智能体可以分段读取正文、公式、表格和插图,长文档在后台解析,关键内容可在本地回看原页核对。 =24"> =0.2.1-rc.2 <0.3.0-0"> 核心亮点 · 快速开始 · 模型工具 · 原页核对 · 常见问题 · 文档 核心亮点 - 按证据阅读:目录、字面检索、稳定块 ID 和物理页码帮助智能体定位内容;公式、数值和图表可以回看原页核对,不假设 OCR 无误。 - 三种服务商显式切换:官方云免部署;自部署服务让文档留在内网。三种协议共用同一套工具参数。 - 后台解析长文档:几十到几百页的文档可提交为 DSH 原生后台任务,解析期间不阻塞对话,完成后由 DSH 通知。 - 内容寻址缓存:按文件内容和解析配置复用已发布结果,同一份文档不重复上传解析。 - Web 设置页:在 Plugins 页面配置服务商、测试连接、管理缓存;修改需显式保存,破坏性操作先预览再确认。
展开完整文档(README 剩余 1 节)
dsh-pdf-mineru

用 MinerU 解析 PDF,让 DeepSeek Harness 里的智能体按证据阅读文档

支持 MinerU 官方云(v4)、自部署 MinerU 4.x(V1 API)和 3.x(旧版任务 API)。智能体可以分段读取正文、公式、表格和插图,长文档在后台解析,关键内容可在本地回看原页核对。

=24">
=0.2.1-rc.2 <0.3.0-0">

核心亮点 · 快速开始 · 模型工具 · 原页核对 · 常见问题 · 文档

核心亮点

- 按证据阅读:目录、字面检索、稳定块 ID 和物理页码帮助智能体定位内容;公式、数值和图表可以回看原页核对,不假设 OCR 无误。
- 三种服务商显式切换:官方云免部署;自部署服务让文档留在内网。三种协议共用同一套工具参数。
- 后台解析长文档:几十到几百页的文档可提交为 DSH 原生后台任务,解析期间不阻塞对话,完成后由 DSH 通知。
- 内容寻址缓存:按文件内容和解析配置复用已发布结果,同一份文档不重复上传解析。
- Web 设置页:在 Plugins 页面配置服务商、测试连接、管理缓存;修改需显式保存,破坏性操作先预览再确认。

快速开始

环境要求

- DeepSeek Harness:版本范围以 package.json 的 engines.dsh 为准(当前为 >=0.2.1-rc.2 <0.3.0-0)。
- Node.js ^22.19.0 || >=24.0.0。
- 设置页需要 DSH Web;没有 Web 服务的宿主仍可使用两个模型工具,配置直接写在配置档中。

安装

dsh plugin --profile web add dsh-pdf-mineru

本地开发时可以安装源码目录。仓库不提交构建产物,安装前先在源码目录执行 pnpm install && pnpm run build:

dsh plugin --profile web add link:/absolute/path/to/dsh-pdf-mineru

升级

- Web:在 Plugins / 插件 页面找到 dsh-pdf-mineru,点击 更新。
- 命令行:先移除再安装:

dsh plugin --profile web remove dsh-pdf-mineru
dsh plugin --profile web add dsh-pdf-mineru

如果新版本要求更高的 DSH,请先升级宿主。旧版配置会在读取时自动转换,在设置页点击保存后才写回。多个进程共享同一缓存目录时,请先停止全部进程再升级,详见配置与运维指南。

选择服务商

打开 Plugins / 插件 → dsh-pdf-mineru,在「服务与解析」标签选择服务类型。修改先进入草稿,点击 保存 才生效;测试连接 使用草稿中的地址等设置,但只使用已保存的 API Key。

A. MinerU 官方云(免部署)

1. 在 mineru.net 注册并创建 API Token。
2. 选择「MinerU 云服务」,在 API Key 输入框粘贴 Token,点击 保存。密钥由 DSH 凭据服务保管,不写入插件配置。
3. 点击 测试连接 确认可用。

B. 自部署 MinerU 4.x(V1 API)
1. 启动 MinerU 4.x 的 API 服务(常见地址 http://localhost:8000)。
2. 选择「自部署 4.x」,填写服务地址;本机 HTTP 地址需在「连接选项」中开启「允许 HTTP 明文连接」。
3. 按需选择解析档位(tier)和 OCR 模式(auto / txt / ocr),测试连接后保存。

C. 自部署 MinerU 3.x(旧版任务 API)

1. 启动 MinerU 3.x 服务(常见地址 http://localhost:18000)。
2. 选择「自部署 3.x」,填写服务地址和 Pipeline/VLM 后端名称,本机 HTTP 同样需要显式允许。
3. 测试连接后保存。

协议由你显式选择,插件不会自动探测或降级到另一种协议。不要把 VLM 推理服务的地址当作 MinerU API 填入。各字段含义、YAML 写法与凭据规则见配置与运维指南。

开始对话

配置完成后直接用自然语言提出需求,智能体会自行选择工具:

- “读一下 paper.pdf 的目录,然后找出第 3 节里所有带编号的公式。”
- “在后台解析 /data/annual-report.pdf,完成后告诉我它有哪些章节和表格。”
- “第 7 页那张表的数值看起来不对,对照原页核对一下。”

相对路径按当前会话的工作目录解析;也可以直接引用会话里上传的 PDF 附件。

模型工具一览

| 工具 | 用途 |
| read_pdf | 同步读取:目录、字面检索、按块或按页精读,分段续读,以及本地原页核对(view: "page") |
| async_parse_pdf | 把整份文档提交为 DSH 后台任务,完成后返回结构摘要;之后用 read_pdf 按需阅读 |

两个工具都接受 file_path 或 attachment_id(二选一)。参数、响应字段、预算与错误恢复见 PDF 阅读契约。

原页核对的依赖

原页核对在本地渲染,不上传文件,也不调用服务商:

- 优先使用 PATH 中的 Poppler(pdfinfo、pdftoppm)。
- 找不到或无法执行 Poppler 时,自动改用随插件安装的 PDF.js 和 @napi-rs/canvas。Canvas 使用上游为常见 Linux、macOS、Windows 平台提供的预编译包,无需编译或安装 Poppler。
- 安装插件时不要使用 --no-optional,否则会缺少 Canvas 平台包。两个后端都不可用时会提示安装 Poppler,普通文本阅读不受影响。

渲染器有超时、并发和尺寸限制,但它不是操作系统级沙箱;处理不可信 PDF 时仍需宿主层面的隔离。具体限制见 ARCHITECTURE.md。

常见问题

API Key 应该放在哪里?

推荐在设置页输入,密钥由 DSH 凭据服务保管。也可以导出与「凭据引用名」同名的环境变量(默认 MINERU_API_KEY),但 DSH 中保存的值优先于环境变量。详见凭据。

扫描件识别效果不好怎么办?

在设置页把解析方式改为 ocr(4.x V1 对应各 profile 的 OCR 模式)。模型工具不接受 ocr、model 等解析参数,不能让智能体通过工具参数切换。修改解析配置会产生新的缓存身份,下次读取会重新解析。

Pipeline 和 VLM 有什么区别?

两者是官方云和 3.x 旧版服务的解析模型。Pipeline 速度快、资源占用低,适合多数常规版面;VLM 使用视觉多模态模型,复杂图文混排和特殊公式效果通常更好。4.x V1 不选择模型,改用解析档位。

解析结果存在哪里?怎么清理?

默认在 $DSH_HOME/cache/pdf-mineru/。在设置页「存储」标签中可以查看统计、校验完整性和清除缓存;清除前会先显示预览,确认后才删除。有读取或解析正在进行时,清理会被拒绝。详见存储与维护。

后台任务可以取消吗?

可以,用 DSH 的通用任务工具(如 job_kill)。取消只结束这一次等待;如果别的调用也在等待同一份文档的解析,那次解析会继续完成。

保存时提示配置已被修改?

说明从打开设置页到保存期间,配置被其他窗口或进程改过。请按提示重新加载后再修改,插件不会覆盖别人的修改。

通过局域网地址打开 Web 时,设置页读不到配置?

设置与维护接口只接受回环地址访问(localhost、127.x.x.x、[::1])。请在运行 DSH 的机器上通过回环地址打开 Web。模型工具不受此限制。

文档

- 配置与运维指南:设置页、服务商参考、凭据、迁移、缓存维护、多进程共享。
- PDF 阅读契约:两个工具的参数、响应字段、预算和错误恢复。
- ARCHITECTURE.md:模块边界与实现约束(面向贡献者)。
- CONTRIBUTING.md:开发、测试与发布流程。
- CHANGELOG.md:版本变更。

许可证与致谢

- 本项目基于 MIT License 开源。
- 感谢 DeepSeek Harness 提供的插件体系。
- 感谢 OpenDataLab MinerU 提供的文档解析能力。
- 感谢 Huanlin/dsh-plugin-mineru 带来的早期设计灵感。
- 本插件已被 Awesome DeepSeek Harness Plugin 社区精选列表收录(收录详情页)。
- Banner 图像中的 DeepSeek 鲸鱼娘形象由上善无形原创角色与 ZipZipPipe 二创设计衍生,遵循 CC BY-NC-SA 4.0 许可。
预览分享卡片长什么样 ↓Yurzi/dsh-pdf-mineru
分享 · DeepSeek Harness Hub
Yurzi/dsh-pdf-mineru

用 MinerU 解析 PDF,让 DeepSeek Harness 里的智能体按证据阅读文档

这是你的仓库?认领条目

回到顶部