dsh-plugin-scihub: DeepSeek Harness Plugin for Academic Literature Search and Full-Text Retrieval

Introduction

DeepSeek Harness (DSH) uses a plugin-based architecture, allowing developers to extend functionality through Cordis plugins. Academic literature search often involves multiple databases, and full-text access channels vary. dsh-plugin-scihub is a native plugin maintained by sevastopol36, designed to address the pain points of cross-source search and full-text retrieval, providing DSH with unified academic literature processing capabilities.

Core Capabilities

The plugin primarily provides the following capabilities:

  1. Cross-source metadata search: Supports parallel search and merge/deduplication across multiple sources such as Crossref, OpenAlex, Europe PMC, PubMed, and Semantic Scholar.
  2. Arbitrary identifier conversion: Supports mutual conversion and resolution among DOI ⇄ PMID ⇄ PMCID ⇄ arXiv id.
  3. Full-text retrieval strategy: By default, preferentially attempts to retrieve full text from Sci-Hub mirrors; if unreachable, automatically falls back to open access channels such as Unpaywall and OpenAlex.
  4. Mirror availability diagnostics: Provides tools to test the connectivity of Sci-Hub mirrors and channels, and generate directly usable configurations.
  5. Zero runtime dependencies: Uses only the built-in fetch and node:fs in Node.js, with no additional dependencies to install.
  6. PDF content validation: Performs magic number and content validation before downloading a PDF, preventing the saving of incorrect papers or empty files.

Installation and Activation

The plugin is a standard dsh bundle and can be installed with the official command.

dsh plugin --profile web add dsh-plugin-scihub

After installation, restart the current profile (for example, dsh web) to load the plugin.

Usage and Configuration

Available Tools

The plugin provides the following tool commands:

  • sevastopol36_scihub_search: Search paper metadata across sources.
  • sevastopol36_scihub_resolve: Resolve an arbitrary identifier and complete the full set of IDs.
  • sevastopol36_scihub_fetch: Download and save the full text.
  • sevastopol36_scihub_probe: Diagnose mirror and channel availability.
  • sevastopol36_scihub_sources: List the currently configured data sources and routes.

Configuration Example

Override the configuration by id in %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml. The main parameters are as follows:

- id: sevastopol36-scihub
  config:
    # 优先开放获取渠道,避免使用 Sci-Hub
    preferSciHub: false
    # 开启 PDF 校验,防止保存错误文件
    verifyPdf: true
    # 设置 Unpaywall 邮箱(需填写真实邮箱)
    email: 'you@example.com'
    # 单次请求超时时间(毫秒)
    timeoutMs: 30000

Notes

  1. Copyright and Use: Sci-Hub is intended only for academic and educational purposes. Comply with copyright laws and institutional policies.
  2. PDF Validation: PDF content validation is enabled by default (verifyPdf: true). It extracts the DOI or title from PDF metadata for comparison to avoid saving the wrong paper.
  3. Unpaywall Restriction: The Unpaywall feature requires a real email address; otherwise, requests may be rejected with an HTTP 422 error.
  4. Runtime Environment: It depends on Node.js built-in modules; ensure the runtime environment meets the requirements.
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye