📄 dsh-paper-reading
August 17, 2026 · View on GitHub
文献阅读插件:把论文 PDF、复制文字、图表交给 AI 解读、整理与归档, 配套论文窗口(自托管 pdf.js 阅读器、文件夹/多标签管理、按论文记忆的笔记问答)。
配合预设 dsh-preset-literature (📚 文献精读 · Router Paper)使用:论文功能仅在该预设下开放。
功能
- 🧹 文字清洗归档:PDF 复制出来的乱排版(页码、断行、连字符、重复页眉) 自动修复,归档到当前论文,并按内容去重
- 📄 PDF 论文:拖入 PDF → 自动入库(标题=文件名)+
pdftotext全文提取; 论文窗口内自托管 pdf.js legacy 阅读器(缩放/搜索/翻页/旋转,文字可直接选中复制; 图片因 pdf.js 画在 canvas 上无法原生复制,用工具条「🖼 提取图片」一键提取页码图片—— 支持按页/区间/全部提取、自动去重、逐张「复制到剪贴板 / 下载」) - 🖼️ 图片解读(
visionMode=auto,默认):当前会话模型自带识图(如 GPT-4o/Claude/ Gemini 等,harness 按模型能力自动判定)→ 图片直接发给模型解读,无需 ModLens; 模型无识图能力时 → 走 ModLens OCR 转录再发给 AI。也可用visionMode=modlens|model强制指定。识图模式在窗口状态栏实时显示(模型识图 / ModLens) - 📒 论文库与文件夹:每篇论文独立笔记(
notes.md问答片段、figures.md图表转录、glossary.md术语表);文件夹系统支持多文件夹归属(虚拟收藏集)、 过滤、拖入归类、新建/重命名/删除 - 🧠 当前论文记忆:对话自动注入「当前论文」上下文;per-session 独立指针, 多对话并行各看各的论文、各归各的笔记;粘贴内容含另一篇论文标题时自动识别切换
- 🔒 预设门控:工具与 UI 仅对
allowedPresets配置的预设开放 - 🤖 模型工具集:
paper_switch/paper_capture/paper_read_figure/paper_attach_pdf/paper_glossary/paper_qa/paper_summary/paper_find
设计文档见 DESIGN.md。
安装
方式一:预构建包(推荐)
下载 dsh-external-dsh-paper-reading-<version>.tgz(仓库 dist/ 目录或 Releases):
cd ~/.dsh/profiles/web
npm i /path/to/dsh-external-dsh-paper-reading-<version>.tgz
# 注册 bundle:把 "@dsh-external/dsh-paper-reading" 加入
# 本目录 package.json 的 dsh.profile.bundles 数组(插件自带 cordis.patch.yml,
# 注册后由 harness 自动装配;不加则插件不会被加载)
# 重启 DeepSeek Harness
更省事:直接用 dsh-preset-literature 的
install.sh,一键完成预设 + 插件 + bundle 注册。
方式二:源码构建
git clone https://github.com/mrk-king/dsh-paper-reading.git
cd dsh-paper-reading
npm run build # host 编译(tsc)+ client bundle(tsdown)
npm pack # 产出 tgz(含 lib/ 与 assets/)
使用
- 安装 dsh-preset-literature 预设,用「📚 文献精读 · Router Paper」新建会话
- 右下角「📄 论文」按钮打开论文窗口
- 把 PDF 拖进窗口(或页面任意位置)→ 自动入库(标题=文件名),在线阅读
- 对话中粘贴文字/提问 → 自动归档问答与术语;窗口切换论文后记忆自动跟随
- 也可以直接用对话:粘贴文字/图片发给 AI,模型按提示词自动清洗归档
配置
| 字段 | 默认 | 说明 |
|---|---|---|
libraryRoot | ~/Documents/papers-library | 论文库根目录 |
modlensBin | 自动探测 | ModLens 视觉引擎(读图 OCR,模型无识图时兜底) |
visionMode | auto | 识图模式:auto(模型自带识图优先,否则 ModLens)/ modlens(永远 ModLens)/ model(永远直接发图给模型,当前模型无识图能力时报错) |
allowedPresets | ["channel-router"] | 允许论文功能的预设 id 列表 |
chatPush | true | 面板内容可推送到对话 |
promptSection | true | 注入论文阅读行为提示词段 |
# profile 层配置示例
- id: paper-reading
name: '@dsh-external/dsh-paper-reading'
config:
allowedPresets: ['channel-router']
chatPush: true
# visionMode: auto # auto / modlens / model
数据位置
默认论文库:~/Documents/papers-library/(每篇论文一个目录:
paper.pdf / paper.txt / notes.md / glossary.md / figures.md / figures/;
删除论文先进回收站 trash/,30 天自动清除)。
构建产物说明
lib/— 编译后的 host 插件 + client 模块assets/pdfjs/assets/pdfjs-legacy/— 自托管 Mozilla pdf.js viewer (Apache-2.0,见各目录 LICENSE)- 运行时仅依赖 Node 内建(node 20+);识图优先用当前模型的视觉能力(visionMode=auto), 模型无识图时可选 ModLens 兜底
License
MIT(内置 pdf.js 资源为 Apache-2.0,见 assets/pdfjs/LICENSE)