论文库(PaperDepot)
把 PDF 论文变成可检索、可读、可连接的 Obsidian 论文库。
论文库是一个 DeepSeek Harness(DSH)插件: 它负责「进件 + 组织」,Obsidian 只负责存储与阅读。
它不是 Obsidian 社区插件。 它安装进 DSH,由 DSH 面板操作,写入你指定的 Obsidian 库。
PDF
├─ MinerU 解析 → full.md + images/ + layout.json
├─ 元数据获取 → 标题 / 作者 / 年份 / 期刊 / DOI
├─ 条目组装 → index.md + full.md + paper.pdf + images/figNN.jpg
├─ 摘要生成(LLM) → 一句话总结 / 背景 / 方法 / 结果 / 结论 / 数据表
└─ 标签生成(LLM) → 四类分层标签,映射到受控词表
功能
- 拖 PDF 入库:拖拽、选择文件或粘贴本地路径;同一 PDF 按指纹自动跳过。
- 自动元数据:优先读 PDF 首页 DOI / arXiv 号,再走 Crossref / arXiv 精确查询。
- 结构化摘要与标签:LLM 生成中文摘要和四类受控标签(领域 / 方法 / 应用 / 仪器),可单篇补跑。
- Obsidian 原生体验:元数据写进 frontmatter,Properties / Dataview / 标签面板 / 双链 / Graph 直接可用。
- 总览 / 论文 / 概念:面板内看统计、搜索条目、浏览概念页与相关论文。
- 分类页与导航块:自动生成
3-Taxonomy/分类页和论文页导航块,幂等可重建。 - 手机只读导出:整库导出 EPUB / DOCX / PDF,放到同步盘用手机阅读器看。
- 跨平台尽力而为:Windows 一等支持;macOS / Linux 实验性(欢迎反馈)。
5 分钟快速开始
- 准备 DSH + Obsidian:安装 DSH 桌面版,并在 Obsidian 里新建或打开一个库(路径尽量短)。
- 安装插件:任选下面一种方式(初次使用推荐 GitHub Release tarball); 不想手动敲命令,就把一键安装提示词整段发给 DSH。
- 申请 MinerU Token:打开 https://mineru.net 注册 → 控制台 → API 管理 → 创建 Token。
- 首次配置:打开左侧栏「论文库」→ 配置卡里粘贴 Token → 保存并验证 → 选择 Obsidian 库路径。
- 导入第一篇:把 PDF 拖进面板 → 看实时日志 → 打开 Obsidian 的
1-Papers/<标题>/index.md。
PDF 会发送到 MinerU 云端解析;摘要材料会发送给你在 DSH 中配置的模型。 涉密、未发表或不允许上传的稿件请不要导入。
安装
完全不想手动操作?把一键安装提示词 复制给 DSH,它会自己定位 profile、装包、写
cordis.patch.yml、装 Python 依赖并做安装后验证。
方式 A:DSH 插件市场(收录后推荐)
DSH → 设置 → 插件 → 插件市场 → 搜索「论文库」→ 安装 → 刷新页面。
方式 B:npm 安装(进阶)
cd "$env:USERPROFILE\.dsh\profiles\desktop"
pnpm add paperdepot
然后在 profile 的 cordis.patch.yml 末尾加上:
- insert:
- id: paperdepot
name: paperdepot
config:
vault: 'C:\Users\<你>\Documents\ObsidianVault'
刷新 DSH(必要时重启)。
方式 C:GitHub Release tarball(国内网络更稳)
从 Releases 下载 paperdepot-0.1.0.tgz,然后:
cd "$env:USERPROFILE\.dsh\profiles\desktop"
pnpm add "D:\downloads\paperdepot-0.1.0.tgz"
同样在 cordis.patch.yml 里加 id: paperdepot / name: paperdepot 的 insert。
方式 D:源码 link(开发 / 调试)
git clone https://github.com/HUAWEIYYLS/paperdepot.git
cd "$env:USERPROFILE\.dsh\profiles\desktop"
pnpm add "link:D:\path\to\paperdepot"
cordis.patch.yml 同上。
重要:profile 里的
name:必须是包名paperdepot,不能写paperdepot/host。 写子路径会出现「host 正常、左侧栏没有论文库」。
方式 E:DSH「发现」页的自定义索引源(可选)
DSH 目前没有官方插件市场:开箱的「发现」页默认没有任何索引源,直接搜不到任何第三方插件。
本仓库自带一个自建索引(market/index.json),加上它就能在「发现」页搜到并一键安装:
- DSH 侧栏 → 插件 → 实验性插件旁的更多 → 启用自定义插件市场;
- 插件页 → 发现 → 添加索引源 → 粘贴:
https://raw.githubusercontent.com/HUAWEIYYLS/paperdepot/main/market/index.json - 在搜索框搜「论文库」或
paperdepot→ 安装(索引里只有本插件,来源是 GitHub 提交)。
这个索引只收录 PaperDepot 自己,属于自建源;别人要搜到,得先添加这个 URL。 索引格式与校验器是 DSH 官方的 format 1(
@deepseek-ai/dsh-plugin-market-index)。
首次配置
打开左侧栏「论文库」面板,第一次会看到配置卡:
MinerU Token:粘贴 → 「保存并验证」。插件会真的调一次 MinerU 接口验 key。 Token 只写到本机配置文件,不会上传;也可以用环境变量
MINERU_API_KEY。Obsidian 库路径:选择一个已存在的文件夹;空库也可以,第一次导入会创建
1-Papers/。Python 依赖:需要 Python 3.10+ 和以下依赖:
python -m pip install -r requirements.txt如果你是通过 npm 安装的,
requirements.txt在插件包的pipeline/目录里; 面板的配置卡会显示当前流水线路径。摘要模型(可选):在 profile 的插件配置里设置
provider/model; 不设置时使用宿主默认模型。没有可用模型也能入库,只是摘要/标签会处于「待生成」。
配置卡随时可以从右上角的「MinerU 已配置 / 未配置」按钮打开。
日常使用
| 动作 | 怎么做 |
|---|---|
| 导入单篇 | 把 PDF 拖进「论文库」面板,或点「选择 PDF」,或在输入框粘贴本地路径后回车 |
| 批量导入(CLI) | python tools/ingest.py "D:\papers\*.pdf" --vault "<库路径>" |
| 从 Zotero 批量导入 | 设置 ZOTERO_STORAGE 环境变量指向 Zotero storage,再 python tools/ingest.py --from-storage --limit 20 --vault "<库路径>" |
| 看统计 | 面板「总览」页 |
| 搜索条目 | 面板「论文」页;点开可看 index.md 原文、在 Obsidian 打开 |
| 补摘要 | 论文页里对「待生成」条目点「生成摘要与标签」 |
| 看概念 | 面板「概念」页;概念页是跨论文综合,由你或 LLM 维护 |
| 看关系图 | 在 Obsidian 里用原生 Graph / Local Graph;论文页导航块提供概念/分类边 |
| 重建分类页/导航 | 面板「重建导航」(幂等,可反复跑) |
| 手机阅读 | python tools/make_mobile_reader.py --vault "<库路径>" --out "<输出目录>",把产物放到同步盘 |
数据位置
| 内容 | 开发态(源码运行) | 安装态(npm / 市场) |
|---|---|---|
| 配置 / 密钥 | <仓库>/config/ |
~/.dsh/paperdepot/config/ |
| MinerU 缓存 / digest / 收件箱 | <仓库>/cache/ |
~/.dsh/paperdepot/cache/ |
| 内置流水线 | <仓库>/tools/ |
<插件包>/pipeline/tools/ |
| Obsidian 库 | 你选择 | 你选择 |
PAPERDEPOT_HOME可改安装态根目录。config/secrets.local.json和config/paperdepot.local.json已在.gitignore里,不会进 git。- 缓存可删可重建;MinerU 缓存带版本号,可整体搬移。
配置参考
| 字段 | 默认 | 说明 |
|---|---|---|
vault |
~/Documents/ObsidianVault |
Obsidian 库根目录 |
homeRoot |
仓库根 / ~/.dsh/paperdepot |
配置与缓存根 |
dataRoot |
<homeRoot>/cache |
缓存 / digest / 收件箱 |
toolsDir |
<仓库>/tools 或 <插件包>/pipeline/tools |
Python 流水线 |
python |
python |
跑流水的解释器;macOS/Linux 可填 python3 |
provider / model |
宿主默认 / opencode-go |
摘要模型路由 |
autoSummarize |
true |
导入后是否自动生成摘要/标签 |
环境变量:
MINERU_API_KEY:MinerU Token(优先于本地文件)。PAPERDEPOT_HOME:安装态数据根。PAPERDEPOT_VAULT:默认库路径。PAPERDEPOT_PYTHON:Python 解释器。ZOTERO_STORAGE:Zotero storage 目录(仅--from-storage用)。
常见问题
左侧栏没有「论文库」
- 检查 profile 的
cordis.patch.yml:name:必须是paperdepot,不能是子路径。 - 检查 profile 的
node_modules/paperdepot是否存在(link 或 npm 安装)。 - 刷新页面;仍不行就重启 DSH。
GET /paperdepot/api/health能通但面板不在,基本就是第 1 条。
MinerU 报 401 / 403 / 429
- 401/403:Token 无效或过期,重新申请并保存。
- 429:免费额度或频率限制,等一会儿或换自己的额度。
导入成功但没有摘要
- 没有配置可用模型,或模型调用失败。入库不受影响;之后在论文页补摘要即可。
- 检查 profile 里的
provider/model是否是宿主真实存在的路由。
图片打不开 / 路径太长
- 论文目录名限制 ≤120 字符,图片固定
figNN.jpg,PDF 固定paper.pdf。 - Windows 上库根目录尽量短;长路径问题优先把库放到浅目录。
怎么卸载
- DSH 设置 → 插件 → 卸载;或从 profile 里移除
paperdepot并删除cordis.patch.yml对应行。 - 删除
~/.dsh/paperdepot/(配置 + 缓存)。 - Obsidian 库里的
1-Papers/等是你自己的数据,按需保留或移走。 - MinerU Token 可在 mineru.net 控制台删除。
支持 macOS / Linux 吗
- 本版 Windows 一等支持;macOS/Linux 已修 POSIX 长路径问题并跑基础自检,但未做完整手测,标记为实验性。
隐私与数据
| 数据 | 去哪里 |
|---|---|
| PDF 原文 | 上传到 MinerU 云端解析(第三方服务) |
| 论文节选(digest) | 发送给你在 DSH 中配置的 LLM provider |
| 标题 / DOI / arXiv 号 | 发送给 Crossref / arXiv 查询元数据 |
| MinerU Token | 只保存在本机配置文件 / 环境变量 |
| 使用统计 | 没有遥测;插件不上报任何数据 |
不要导入涉密、未发表或不允许上传第三方的材料。
兼容性
| 项 | 要求 |
|---|---|
| DSH | >=0.2.1-rc.1 <0.3.0 |
| Node.js | >=20(DSH 桌面版自带) |
| Python | >=3.10,需要 PyMuPDF、python-docx |
| Obsidian | 桌面版(移动端只读用导出文件) |
| 系统 | Windows 10/11 一等;macOS/Linux 实验性 |
路线图
后续计划(不承诺时间):批量队列与断点续跑、provider / 本地模型设置界面、全库 lint、概念层半自动、中英双语、移动端编辑。
贡献
- Bug / 功能请求:GitHub Issues。
- 开发与提交规范:见 CONTRIBUTING.md。
- 安全问题:见 SECURITY.md,不要公开提 issue。
- 维护者发布/分诊手册:见 docs/maintainer/。
- 行为准则:见 CODE_OF_CONDUCT.md。
- 提交代码即表示同意以 MIT 许可证贡献。
许可证
MIT。第三方依赖与商标声明见 THIRD_PARTY_NOTICES.md。
No comments yet. Be the first to write one.