学术文献检索技能
概述
这是一个专注于学术文献检索的专业工具,集成了多个权威学术数据库,提供全面、快速、准确的文献检索服务。支持多数据库并发检索、高级过滤、智能排序和多种输出格式。
核心功能
🔍 强大的检索能力
- 多数据库集成: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.yaml 为 config.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
隐私
- 如需高隐私保护,避免使用默认凭证
- 可在代码中审查网络请求目的地