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

深读流水线 SongFengManZhu/dsh-deep-reading-wl

DeepSeek Harness
SongFengManZhu5 天前有提交已提供中文文档扫描:含敏感能力

把扫描版教材转成章节骨架与阅读优先级

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add SongFengManZhu/dsh-deep-reading-wl
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · other
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件
查看扫描证据(共 14 处,展示前 9 条)
  • 读取本地文件
    lib/index.js:81
    if (existsSync(candidate) && statSync(candidate).isFile()) return candidate
  • 读取本地文件
    lib/index.js:81
    if (existsSync(candidate) && statSync(candidate).isFile()) return candidate
  • 执行外部命令来自配置/变量
    lib/index.js:117
    const child = spawn(python, [script, ...argv], {
  • 执行外部命令来自配置/变量
    lib/index.js:189
    const child = spawn(python, ['-c', code], { windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'] })
  • 读取本地文件
    lib/index.js:200
    pdf_exists: Boolean(pdf && existsSync(pdf)),
  • 读取本地文件
    lib/index.js:251
    if (!existsSync(absolute)) throw new Error(`${label} 不存在:${absolute}`)
  • 读取本地文件
    lib/index.js:270
    if (!existsSync(path)) throw new Error(`脚本没有写出结果文件:${path}`)
  • 读取本地文件
    lib/index.js:271
    const text = readFileSync(path, 'utf8')
  • 执行外部命令来自配置/变量
    lib/index.js:630
    const child = spawn(python, [script, ...argv], {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

扫描版教材流水线:OCR提速5倍,先出骨架地图,再按章阅读。

README

由 DeepSeek 最新模型翻译生成
dsh-deep-reading-wl 把「给一本扫描版教材,读出能交付的读书心得」这条流程做成一条可重复的流水线。 原料是电子书 PDF,产物是读书心得的骨架——不是替你读书,是先让你知道该读哪几页。 PDF ──ocr──> txt ──scan──> 骨架与失真地图 ├─map────> 这一章该花多少时间 └─digest─> 压掉碎片的原文 四个工具 | 工具 | 速度 | 回答什么问题 | | ocr | 1.2 秒/页 | 这堆图里写了什么字 | | scan | 0.1 秒/本 | 几章几节、每章多厚、哪几节承重、哪几页有表 | | map | 秒级 | 这一章先读哪节、哪节略读、哪几张表必须回原图 | | digest | 秒级 | 哪些行值得亲读,哪些是 OCR 打散的表格碎片 | ocr 扫描版 PDF 没有文字层,PyMuPDF 取字数为 0,所有靠 text layer 的阅读器在这里输出为零。
展开完整文档(README 剩余 1 节)
dsh-deep-reading-wl

把「给一本扫描版教材,读出能交付的读书心得」这条流程做成一条可重复的流水线。

原料是电子书 PDF,产物是读书心得的骨架——不是替你读书,是先让你知道该读哪几页。

PDF ──ocr──> txt ──scan──> 骨架与失真地图 ├─map────> 这一章该花多少时间 └─digest─> 压掉碎片的原文

四个工具

| 工具 | 速度 | 回答什么问题 |
| ocr | 1.2 秒/页 | 这堆图里写了什么字 |
| scan | 0.1 秒/本 | 几章几节、每章多厚、哪几节承重、哪几页有表 |
| map | 秒级 | 这一章先读哪节、哪节略读、哪几张表必须回原图 |
| digest | 秒级 | 哪些行值得亲读,哪些是 OCR 打散的表格碎片 |

ocr

扫描版 PDF 没有文字层,PyMuPDF 取字数为 0,所有靠 text layer 的阅读器在这里输出为零。这个模式用 RapidOCR v3 + OpenVINO 引擎把它变成带页标记的 txt:

- 单进程 16 线程,120 dpi,PP-OCRv6 small
- 同机 ONNXRuntime 方案 6 秒/页 → 1.2 秒/页
- 自动跳过扫描残页(墨迹极少且只落在上半页)
- 按纵坐标还原阅读顺序(找框顺序不是阅读顺序)

mode=doctor 体检环境,mode=page 试读一页。

scan

读之前的第一站。输出骨架 + 失真地图:

页数 625 / 正文字符 430324 / 正文行 31799 章 20 个,节 355 个第一章 绪论 (PDF19) ... 承重墙:公式 5 条,定义句 24 条,推导句 37 条,图 19 张数据表 3 张(只标位置,行列须回原图看)表 2-3 环烷烃的摩尔燃烧热 PDF61 有表体表 2-4 …物理常数 PDF69 表体极少(跨页续表)

它不判表格好坏。 曾经想做「表格健康检查器」(数数值个数、查行列对齐),20 页试点四张表逐字核对后宣告失败:扫描件里「哪个数属于哪一列」的信息在 OCR 成纯文本那一刻就丢了,事后反推只能靠猜,猜错的代价是拿一张烂表当依据写心得。所以它降级成位置索引器——只告诉你哪几页有表,行列由你翻原图看(一张 2544×1804 的图看清行列没问题)。

map

把 scan 的结论翻译成动作。承重密度 = (公式 + 定义句 + 推导句) / 字符 × 1000——推导密集的节是重心,例题密集的节反而轻。

§11.5 典型复合反应 7630 字符 9.5% 重心 §11.1 化学反应的反应速率 …
§11.15 多相催化反应 17834 字符 22% 可以略读 4 张表 OCR 已损坏,心得里若要用数据必须回 PDF 第 240、281、294、310 页取原图

chapter 参数可只算一章。

digest

OCR 文本里约 75% 是表格被拆散的碎片(一张表能拆成「可燃气体」「爆炸下限」「H2」「1.3」等 30 多行)。但不能直接扔——「表11.7.1中列出某些可燃气体在空气中的爆炸界限」这句是「这张表在说什么」的唯一线索。

所以它做三件事:逐行分诊(正文/公式/表格碎片/噪声)→ 碎片换成一行 [表 11.7.1 在此,43 行已省略] → 节标题、公式编号、定义句原样保留。输出不是摘要,是一份更短的原文(通常保留 87%)。

from / to 可按页区间压缩。

安装

插件已在本机装机。装到别处:

1) 放进 profile 的 node_modules(用 junction,改代码即时生效) cmd /c mklink /J "$env:APPDATA\dsh-desktop\harness\profiles\web\node_modules\dsh-deep-reading-wl" "C:\path\to\deep-reading-wl"

2) profile 的 package.json:dependencies 加 "dsh-deep-reading-wl": "link:C:/path/to/deep-reading-wl" 并把 "dsh-deep-reading-wl" 加进 dsh.profile.bundles

3) profile 的 cordis.patch.yml 末尾加(关键,缺这一步插件不会挂进树)
- insert:
- id: dsh-deep-reading-wl
name: 'dsh-deep-reading-wl'

为什么 patch.yml 那一步不能省:bundles 只声明「这个包可以被扫描」,真正把插件 insert 进配置树的是 profile 自己那层 cordis.patch.yml。只加 bundles 的话,日志里既没有报错也没有痕迹——它根本没被装载。

环境

需要 Python 3.10+ 与:

pymupdf rapidocr openvino numpy

解释器按 DEEP_READING_PYTHON → FASTOCR_PYTHON → DSH Desktop 自带运行时 → C:\Python312 顺序找。

自测

先抽一次宿主模块(@deepseek-ai/* 是宿主单例,插件自己不会装) & "C:\Program Files\nodejs\node.exe" scripts\pull.host.mjs

跑四个工具 & "C:\Program Files\nodejs\node.exe" scripts/selftest.mjs <某个 OCR txt> [某个 PDF]

必须用独立 Node(C:\Program Files\nodejs\node.exe)。DSH 里的 node 是 Electron(ELECTRON_RUN_AS_NODE=1),它的 fs 会把 app.asar 内部路径当归档成员去读,行为和独立 Node 不一致。

实测记录

| 书 | 页数 | OCR 耗时 | 章节识别 |
| 物理化学上册 | 308 | — | 6 章 |
| 物理化学下册 | 389 | — | 6 章 66 节 |
| 有机化学(第七版) | 624 | 13 分 04 秒(1.26 秒/页) | 20 章 355 节 |
| 电气工程学概论 | 520 | 1.59 秒/页(试点) | 3 章 11 节(20 页) |

scan 在四本书上都做过随机 20 页试点,修掉了 20 多个识别 bug:目录页污染、章标题三种断法(第二章 烷烃 / 第二章烷烃 / 第二章 单独一行)、跨页续表、页眉页码粘连、表格数值冒充节号、题号冒充节号、章标题被当页眉过滤。

边界

三件事它不做,是故意的:

1. 不替你判断。哪一节是作者在立论、哪个推导是本章的地基,现在还得人读出来。硬把这一步自动化,只会把活的判断压成填空题。
2. 不修 OCR 的错。环已烷(应作环己烷)、CH3}、sp3/sp³ 混用——这些只能靠你在写心得时用领域知识识别。
3. 不还原表格。见上,位置给了,行列回原图。

License

MIT
预览分享卡片长什么样 ↓SongFengManZhu/dsh-deep-reading-wl
分享 · DeepSeek Harness Hub
SongFengManZhu/dsh-deep-reading-wl

把扫描版教材转成章节骨架与阅读优先级

这是你的仓库?认领条目

回到顶部