前言¶
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 搜索结果以及引用格式,必须配置