🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

Academic Literature Search

by @jibeilindong

提供多权威数据库的学术文献检索,支持自然语言、多字段搜索、高级过滤、去重排序及多格式结果输出。

Versionv0.1.3
Downloads2,171
Stars2
TERMINAL
clawhub install academic-literature-search

📖 About This Skill

学术文献检索技能

概述

这是一个专注于学术文献检索的专业工具,集成了多个权威学术数据库,提供全面、快速、准确的文献检索服务。支持多数据库并发检索、高级过滤、智能排序和多种输出格式。

核心功能

🔍 强大的检索能力

  • 多数据库集成:Semantic Scholar、Crossref、arXiv、PubMed
  • 智能查询解析:自然语言、布尔运算、字段限定、短语搜索
  • 并发检索:同时查询多个数据库,毫秒级响应
  • 高级过滤:年份、引用数、期刊类型、开放获取、语言等
  • 📖 高级检索特性

  • 自然语言查询
  • 布尔运算符 (AND, OR, NOT)
  • 字段限定搜索 (title:, author:, year:)
  • 范围搜索 (year:2020-2024, citations:>100)
  • 通配符搜索
  • 🎯 精准的结果处理

  • 智能去重:基于DOI、标题、作者等多维度去重
  • 多维度排序:引用数、年份、相关性、影响力、趋势
  • 高级过滤:(期刊、开放获取、文献类型)
  • 结果丰富:自动补充元数据、计算影响力指标
  • 质量评分:综合评分系统,提供最佳结果
  • 💬 丰富的输出格式

  • Markdown:适合阅读和笔记
  • JSON:适合程序处理
  • CSV/Excel:适合数据分析和导入
  • BibTeX/RIS:适合参考文献管理
  • HTML/XML:适合网页展示和数据交换
  • ⚡ 性能优化

  • 多级缓存:内存、磁盘、分布式缓存
  • 智能重试:自动处理速率限制和网络错误
  • 渐进式加载:快速返回第一批结果
  • 请求合并:减少API调用次数
  • 支持的数据库

    | 数据库 | 数据量 | 优势领域 | 速率限制 | |--------|--------|----------|----------| | Semantic Scholar | 2.33亿+ | AI、计算机科学、多学科 | 100请求/5分钟(无认证) | | Crossref | 1.4亿+ | 期刊文章、官方DOI | 无限制(礼貌使用) | | arXiv | 220万+ | 预印本、计算机、物理、数学 | 无限制 | | PubMed | 3500万+ | 生物医学、生命科学 | 10请求/秒 |

    使用示例

    基本检索

    from agent import AcademicLiteratureSearchSkill
    import asyncio

    async def main(): skill = AcademicLiteratureSearchSkill() params = { "query": "deep learning in medical imaging", "databases": ["semantic_scholar"], "max_results": 10 } result = await skill.execute(params) print(result["results"])

    asyncio.run(main())

    高级检索

    params = {
        "query": "attention mechanism AND transformer",
        "databases": ["semantic_scholar", "crossref"],
        "year_range": "2020-2024",
        "max_results": 100,
        "sort_by": "citations",
        "min_citations": 50,
        "open_access_only": True,
        "output_format": "markdown"
    }
    

    作为库使用

    from agent import LiteratureSearchEngine

    async def search(): async with LiteratureSearchEngine() as engine: papers = await engine.search( query="reinforcement learning", databases=["semantic_scholar", "arxiv"], max_results=20 ) for paper in papers: print(f"{paper.title} - {paper.citation_count} citations")

    参数说明

    查询参数

    | 参数 | 类型 | 默认值 | 说明 | |------|------|--------|------| | query | string | 必需 | 检索查询字符串 | | databases | array | ["semantic_scholar", "crossref"] | 使用的数据库列表 | | max_results | integer | 50 | 最大返回数量 (1-1000) | | year_range | string | - | 年份范围,如 "2020-2024" | | sort_by | string | "relevance" | 排序方式 | | sort_order | string | "desc" | 排序顺序 (asc/desc) | | open_access_only | boolean | false | 仅开放获取文献 | | min_citations | integer | - | 最小引用数 | | venue_filter | array | - | 期刊/会议过滤 |

    输出参数

    | 参数 | 类型 | 默认值 | 说明 | |------|------|--------|------| | output_format | string | "markdown" | 输出格式 | | output_file | string | - | 输出文件路径 | | interactive | boolean | false | 交互式模式 | | verbose | boolean | false | 详细输出 | | cache | boolean | true | 启用缓存 | | save_results | boolean | false | 保存结果到文件 |

    配置说明

    环境变量

    # API 密钥(可选,不设置也可运行,但建议设置自己的密钥)
    

    获取方式:

    - Semantic Scholar: https://www.semanticscholar.org/product/api

    - PubMed: https://www.ncbi.nlm.nih.gov/account/

    SEMANTIC_SCHOLAR_API_KEY="your_key_here" CROSSREF_API_EMAIL="your_email@example.com" PUBMED_API_KEY="your_key_here"

    配置文件

    复制 config.example.yamlconfig.yaml 并修改配置。

    错误处理

  • 网络错误:自动重试,提供降级方案
  • API限制:智能退避,多API密钥轮换
  • 无效查询:提供修正建议
  • 无结果:提供扩展搜索建议
  • 许可证

    MIT License

    安全与隐私

    数据流向

  • 检索查询会发送到第三方API:Semantic Scholar、Crossref、PubMed、arXiv
  • 搜索关键词和论文元数据会被发送到这些服务
  • 建议

  • 使用虚拟环境运行:python -m venv venv && source venv/bin/activate
  • 设置自己的 API 密钥以使用您的凭证
  • 默认使用 openclaw@example.com 作为 Crossref 邮箱
  • 缓存目录:~/.cache/openclaw/literature
  • 隐私

  • 如需高隐私保护,避免使用默认凭证
  • 可在代码中审查网络请求目的地