Skip to content

Sources paper

BlueSkyXN edited this page May 4, 2026 · 2 revisions

Sources / 学术论文

事实来源:主仓 pr-88 @ a312645 的 registry/sources.py。19 个内置 paper 源。

按"是否需要 Key"分三档;零配置默认就能跑五个免 Key 论文源。


1. 全部 19 源(按字母序)

源 接入 鉴权 凭据字段 稳定性 备注
arxiv open_api none — 稳定 arXiv 预印本(STEM)
biorxiv open_api none — 稳定 bioRxiv / medRxiv 预印本
core official_api required core_api_key 稳定 OA 大规模聚合
crossref open_api none — 稳定 DOI 跨库检索
dblp open_api none — 稳定 计算机科学权威书目
doaj official_api optional (rate_limit) doaj_api_key 稳定 OA 期刊目录
europepmc open_api none — 稳定 欧洲生物医学
hal open_api none — 稳定 法国 HAL(Solr API)
huggingface open_api none — 稳定 HF Papers 社区精选
iacr scraper none — 实验性 密码学预印本
ieee_xplore official_api required ieee_api_key 稳定 IEEE 工程文献
openaire official_api optional (quota) openaire_api_key 稳定 欧盟研究基础设施
openalex open_api optional (politeness) openalex_email 稳定 建议默认起点
pmc open_api none — 稳定 PubMed Central 全文
pubmed open_api none — 稳定 PubMed 生物医学
semantic_scholar official_api optional (rate_limit) semantic_scholar_api_key 稳定 含 TLDR 摘要、引文图
unpaywall official_api required unpaywall_email 实验性 仅 DOI → OA,不 listing
zenodo official_api optional (quota) zenodo_access_token 稳定 CERN 开放仓库
zotero official_api required zotero_api_key + zotero_library_id 稳定 个人/团体文献库

2. 推荐组合

入门:零配置(5 源默认)

souwen search paper "transformer" -n 5
# 默认调 openalex,arxiv(兼容旧版命令是 openalex+crossref+arxiv+dblp+pubmed)

5 个全免 Key 全开放——大多数 RAG / 文献综述场景已经够用。

提速:加可选 Key

openalex_email: you@example.com         # 进 OpenAlex polite pool
semantic_scholar_api_key: ...           # SS 限流提升 + TLDR 摘要
pubmed_api_key: ...                     # PubMed 3 → 10 req/s

专业库:必须 Key

场景 加哪个
OA 大规模聚合 core_api_key
工程电气文献 ieee_api_key
个人/团体管理 zotero_api_key + zotero_library_id
DOI → OA 链接查找 unpaywall_email

3. 调用示例

CLI

souwen search paper "graph neural network" -s openalex,semantic_scholar -n 10
souwen search paper "新冠肺炎" -s pubmed,europepmc -n 10        # 中文也能搜
souwen search paper "diffusion model" -s arxiv -n 5 --json

HTTP API

curl "http://localhost:8000/api/v1/search/paper?q=transformer&sources=openalex,arxiv&per_page=5"

Python

from souwen.facade import search

resp = await search("transformer", domain="paper",
                    sources=["openalex", "semantic_scholar"], limit=5)
for sr in resp:
    for r in sr.results:
        print(f"{r.year} | {r.title} | DOI={r.doi} | TLDR={r.tldr}")

4. 反模式

  • 只用 arxiv:仅 STEM 预印本,错过社科/医学。
  • 跑 core 但没配 Key:auth_requirement="required" 缺 Key 直接被过滤。
  • 把 unpaywall 当 search 用:它只回答"这个 DOI 有没有 OA 版本",不返回结果列表。
  • 生产用 iacr:HTML 爬虫,上游变化敏感;密码学场景可暂用,建议补 fallback。

5. 接下来

Clone this wiki locally