前言¶
DeepSeek Harness(DSH)采用插件化架构,允许开发者通过 Cordis 插件扩展功能。学术文献检索通常涉及多个数据库,且全文获取渠道各异。dsh-plugin-scihub 是一个由 sevastopol36 维护的原生插件,旨在解决跨源检索与全文获取的痛点,为 DSH 提供统一的学术文献处理能力。
核心功能¶
该插件主要提供以下能力:
- 跨源检索元数据:支持 Crossref、OpenAlex、Europe PMC、PubMed、Semantic Scholar 等多源并行检索与归并去重。
- 任意标识符互转:支持 DOI ⇄ PMID ⇄ PMCID ⇄ arXiv id 的互相转换与解析。
- 全文获取策略:默认优先尝试 Sci-Hub 镜像获取全文;若不可达,自动回退到 Unpaywall、OpenAlex 等开放获取渠道。
- 镜像可用性诊断:提供工具实测 Sci-Hub 镜像与渠道的连通性,并生成可直接使用的配置。
- 零运行时依赖:仅使用 Node.js 内置的
fetch和node:fs,无需额外安装依赖。 - PDF 内容校验:下载 PDF 前进行魔数校验与内容校验,防止保存错误论文或空文件。
安装与启用¶
插件为标准 dsh bundle,可通过官方命令安装。
dsh plugin --profile web add dsh-plugin-scihub
安装完成后,需重启当前 profile(例如 dsh web)以加载插件。
使用与配置¶
可用工具¶
插件提供以下工具命令:
sevastopol36_scihub_search:跨源检索论文元数据。sevastopol36_scihub_resolve:解析任意标识符,补齐完整 ID 集合。sevastopol36_scihub_fetch:下载全文并保存。sevastopol36_scihub_probe:诊断镜像与渠道可用性。sevastopol36_scihub_sources:列出当前配置的数据源与路线。
配置示例¶
在 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml 中按 id 覆盖配置,主要参数如下:
- id: sevastopol36-scihub
config:
# 优先开放获取渠道,避免使用 Sci-Hub
preferSciHub: false
# 开启 PDF 校验,防止保存错误文件
verifyPdf: true
# 设置 Unpaywall 邮箱(需填写真实邮箱)
email: 'you@example.com'
# 单次请求超时时间(毫秒)
timeoutMs: 30000
注意事项¶
- 版权与用途:Sci-Hub 仅用于学术与教育用途,请遵守版权法规及机构政策。
- PDF 校验:默认开启 PDF 内容校验(
verifyPdf: true),会从 PDF 元数据中提取 DOI 或标题进行比对,避免保存错误论文。 - Unpaywall 限制:Unpaywall 功能需要填写真实的邮箱地址,否则会因 HTTP 422 错误拒绝请求。
- 运行环境:依赖 Node.js 内置模块,确保运行环境满足要求。