前言¶
DeepSeek Harness (DSH) 採用插件化架構,支持通過插件擴展功能。在構建智能體或進行本地開發時,檢索文獻是常見需求。該插件旨在解決在 DSH 環境中調用不同文獻數據庫(PubMed 和 Google Scholar)時接口不統一、數據結構各異的問題。
插件介紹¶
該插件名爲 astervolans/dsh-literature-search,由 Astervolans 維護。它通過官方 PubMed NCBI E-utilities API 和 Google Scholar(支持 SerpApi 或 HTML 解析)進行檢索,並將兩者返回的結果統一爲標準的 paper 數據結構。插件僅依賴 Node.js 內置的 fetch 和 AbortSignal,無額外的運行時依賴。
安裝與啓用¶
通過 DSH 的插件管理器進行安裝。安裝完成後需要重啓 DSH 進程以加載新工具。
dsh plugin --profile desktop add @astervolans/dsh-literature-search
核心功能¶
插件提供了以下主要能力:
- PubMed 搜索
- 支持 ESearch、ESummary、EFetch 和 ELink 流程。
- 支持字段標記查詢、排序、日期窗口和分頁。
- 返回 PMID、標題、作者、期刊、卷期頁、DOI、PMC ID、摘要、MeSH 和關鍵詞。
- PubMed 單篇論文
- 獲取指定 PMCID 的完整記錄,包括摘要、MeSH、關鍵詞、出版類型和評論/參考文獻行。
- PubMed 相關文章
- 使用 NCBI 的相關文章算法檢索並排序與給定論文相關的文章。
- Google Scholar 搜索
- 支持年份窗口和分頁。
- 支持通過 SerpApi 或 HTML 解析兩種後端。
- Google Scholar 引用
- 生成 MLA、APA、Chicago、Harvard、Vancouver 和 BibTeX 格式的引用信息。
- 統一輸出
- PubMed 和 Google Scholar 的搜索結果都返回統一的
paper形狀。
- PubMed 和 Google Scholar 的搜索結果都返回統一的
- 零運行時依賴
- 僅依賴 Node.js 內置 fetch 和 AbortSignal。
配置與使用¶
插件支持在 DSH 的插件配置頁面進行設置。在側邊欄的「插件」面板中,展開 @astervolans/dsh-literature-search,頂部即爲配置頁面。配置項包括 NCBI 和 SerpApi 的 API 密鑰、速率限制、結果限制以及連通性測試。
典型用法示例:
# 搜索 PubMed
node cli.mjs pubmed "CRISPR base editing" --max 3
# 獲取單篇論文詳情
node cli.mjs paper 33301246
# 搜索 Google Scholar
node cli.mjs scholar "base editing" --max 5
注意事項¶
- Google Scholar 後端
- 默認使用 HTML 解析。由於 Google 的反爬機制,該方式可能會被封禁。建議配置
SERPAPI_API_KEY以使用 SerpApi 後端,以獲得穩定的結果和引用格式。
- 默認使用 HTML 解析。由於 Google 的反爬機制,該方式可能會被封禁。建議配置
- PubMed 速率限制
- PubMed 官方 API 默認有速率限制。在未設置
NCBI_API_KEY的情況下,插件會自動限速(每請求間隔 350ms)。配置NCBI_API_KEY可將配額從 3 提升至 10 請求/秒。
- PubMed 官方 API 默認有速率限制。在未設置
- SerpApi 依賴
- 若要獲取穩定的 Google Scholar 搜索結果以及引用格式,必須配置
SERPAPI_API_KEY。
- 若要獲取穩定的 Google Scholar 搜索結果以及引用格式,必須配置