科研文献检索工具箱
一个无第三方依赖的学术论文检索与分析命令行工具,全部数据来自公开学术数据库官方 API,共 11 个子命令。
能力总览
| 子命令 | 功能 | 数据源 |
|---|---|---|
search |
按关键词搜论文(支持按时间过滤) | arXiv / OpenAlex / Crossref / Semantic Scholar |
get |
按 DOI 或 arXiv ID 查详情、摘要 | 同上 |
cited-by |
查某篇论文被哪些论文引用 | OpenCitations |
citations |
查某篇论文引用了哪些文献 | OpenCitations |
related |
找与某篇论文相似的论文(推荐) | Semantic Scholar |
top |
查某领域历史最高被引论文(支持限定近 N 年) | OpenAlex |
convert |
DOI → BibTeX / RIS / APA / MLA / Chicago / Vancouver / Harvard / IEEE / GB/T 7714 | Crossref + 本地渲染 |
institution |
按名称查全球高校官网与国别 | OpenAlex |
digest |
一键生成近期学术热点速览(按被引排序) | OpenAlex |
快速开始
python3 scripts/scholar_cli.py search --source arxiv --query "large language model" --limit 5
python3 scripts/scholar_cli.py get --doi 10.1038/s41586-021-03819-2
python3 scripts/scholar_cli.py get --arxiv-id 1706.03762
python3 scripts/scholar_cli.py cited-by --doi 10.1038/s41586-021-03819-2
python3 scripts/scholar_cli.py related --doi 10.1038/s41586-021-03819-2 --limit 5
python3 scripts/scholar_cli.py top --query "large language model" --years 3 --limit 5
python3 scripts/scholar_cli.py convert --doi 10.1038/s41586-021-03819-2 --format gbt7714
python3 scripts/scholar_cli.py institution --name "Tsinghua University"
python3 scripts/scholar_cli.py digest --query "agent" --days 14 --limit 8
参数说明
search
--source:arxiv(预印本)、openalex(覆盖最广)、crossref(官方出版元数据)、semantic(语义相关性排序 + 被引数,日常检索推荐)--query/--limit(默认 5)/--days(只看最近 N 天)/--json
get
--doi(配--source openalex|crossref|semantic,默认 crossref)--arxiv-id:如1706.03762
cited-by / citations / related
--doi必填;related走 Semantic Scholar 推荐引擎,找"读了这篇还读什么"的相似论文
top
--query+--years(限定最近 N 年,不传则查历史全部)+--limit
convert
--format:bibtex/ris/apa/mla/chicago/vancouver/harvard/ieee/gbt7714(国标,中文论文投稿刚需)
digest(学术热点速览)
- 拉取最近 N 天内与关键词相关、被引最高的论文自动汇总,适合周报、选题、追踪领域动态
推荐工作流
- 找论文:
search --source semantic→ 取 DOI →get看摘要 - 顺藤摸瓜:
related找相似工作 →cited-by看影响力 →citations看理论基础 - 摸清领域格局:
top --years 3看近三年最高被引 → 挑 2-3 篇深挖 - 导出引用:
convert --format gbt7714(中文投稿)/--format bibtex(LaTeX/文献管理器) - 写周报/选题:
digest拉近期热点
付费调用(支付宝 AI 按量付费 / SkillHub Pay Skill)
本技能为 Pay Skill:按次计费(per_call)0.10 元/次,遵循支付宝 AI 付《AI按量付费》官方协议(基于 402 Payment Required 的 A2M 方案),支付在对话内闭环完成。支付链路完整实现于 scripts/pay_client.py,每次业务调用前由 pay_guard() 守卫:
- 402 账单下发:请求付费资源时,网关返回
HTTP 402,并通过Payment-Needed头(Base64URL 编码)下发账单,账单字段含out_trade_no(商户订单号,全局唯一)、amount(0.10 CNY)、resource_id(资源防串)、pay_before(支付截止时间)、seller_signature(RSA2 商家签名)、seller_unique_id;脚本解析账单并向用户展示金额、订单号与截止时间。 - 携带凭证重试:用户完成支付宝支付后,Agent 将支付凭证构造为
Payment-Proof头(Base64 编码:protocol.payment_proof+protocol.trade_no+method.client_session)重新请求资源。 - 验付调用:经网关调用
alipay.aipay.agent.payment.verify验证凭证,全部通过才放行:active=true、amount与定价一致(防篡改)、out_trade_no/resource_id与本次请求一致(防串单)、trade_no未被重复核销(防一凭多用)。 - 履约确认:资源交付后异步调用
alipay.aipay.agent.fulfillment.confirm发送履约回执(complete/ack)。 - 订单持久化与幂等:全部订单状态落盘至
scripts/pay_state/orders.json(原子写入);同一out_trade_no不重复登记下单,同一trade_no只回执一次(used_trades),本地凭证 24 小时过期后自动重走 402。
状态机:probe(本地有效凭证探测)→ pay(402 账单下发 → 用户支付 → Payment-Proof 重试)→ verify(验付)→ 业务交付 → complete/ack(履约确认)→ 订单持久化。
配置:入驻 SkillPay 并绑定支付宝商户号后,由平台分配支付网关,通过环境变量 SKILLHUB_PAY_GATEWAY 注入;未配置网关时为免费直通模式,本地开发与自测不计费、不产生真实交易。
沙箱自测(验证支付链路五件套逻辑,无真实交易):
python3 scripts/pay_client.py selftest
数据源与限制
- 全部为公开 API,无需 API Key;请求自带合理超时与重试
- arXiv 接口在部分网络环境下不稳定(随机 406/超时),脚本已内置自动降级:
search --source arxiv失败时转 OpenAlex、get --arxiv-id失败时转 Crossref(arXiv 官方 DOI10.48550/arXiv.{id}),stderr 会提示降级 - 日常检索建议优先
semantic或openalex - Semantic Scholar 偶发限流(429),已内置退避重试
- OpenCitations 引文覆盖以开放数据为准;超高被引论文的
cited-by查询数据量大,耗时较长 - 引用格式:
bibtex/ris由 Crossref 官方渲染;其余样式由本工具基于 Crossref 元数据本地排版,导出后建议快速核对 - 输出数据请注明来源数据库(如"数据来自 OpenAlex"),不构成任何学术或投稿建议