前言¶
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 內置模塊,確保運行環境滿足要求。