Skip to content

Repository files navigation

PaperTools

自动追踪、筛选、聚类、总结 arXiv 论文。每天帮你从海量论文中找到真正相关的研究。

快速开始

# 1. 安装
pip install -e .# 2. 配置
cp .env.example .env
# 编辑 .env,填入 API 地址、密钥和模型名# 3. 运行
papertools run

配置

变量说明必填
OPENAI_BASE_URLAPI 地址
OPENAI_API_KEYAPI 密钥
MODEL模型名
FILTER_MODEL筛选阶段模型,默认 qwen
PAPERTOOLS_FILTER_MODEL_CHAIN筛选模型回退链;OpenRouter 下自动把短别名归一化为 provider-prefixed ID
CLUSTER_MODEL聚类阶段模型,默认跟随 FILTER_MODEL
CLUSTER_OPENAI_BASE_URL聚类阶段 API 地址;不填则使用 OPENAI_BASE_URL
PAPERTOOLS_CLUSTER_MODEL_CHAIN聚类模型回退链;OpenRouter 下自动把短别名归一化为 provider-prefixed ID
SUMMARY_MODEL_CHAIN总结/翻译模型回退链,默认 sjtu:minimax,sjtu:glm,sjtu:qwen,sjtu:deepseek-chat,sjtu:deepseek-reasoner;可显式加入 prism:gpt-5.5
SUMMARY_SJTU_OPENAI_API_KEY致远一号总结/翻译 API,不用于筛选
SUMMARY_PRISM_OPENAI_API_KEYPrism 总结/翻译 API,不用于筛选
SUMMARY_SJTU_RPMSJTU 总结 provider 的共享 RPM 限制,默认 2;同一 key/base URL 下多个模型共用冷却
SUMMARY_PRISM_RPMPrism 每分钟请求上限,默认 5
SUMMARY_PRISM_REASONING_EFFORTPrism reasoning_effort,默认 xhigh
SUMMARY_PRISM_WINDOW_SECONDSPrism 滚动限额窗口秒数,默认 300
SUMMARY_PRISM_WINDOW_SAFETY_REQUESTSPrism 滚动窗口安全余量,默认 1
SUMMARY_PRISM_429_COOLDOWN_SECONDSPrism 429 后冷却秒数,默认 300
REVIEWGROUNDER_API_KEYReviewGrounder key;默认优先复用 SUMMARY_PRISM_OPENAI_API_KEY
REVIEWGROUNDER_BASE_URLReviewGrounder base URL;默认优先复用 SUMMARY_PRISM_OPENAI_BASE_URL
REVIEWGROUNDER_MODELReviewGrounder backbone,默认 gpt-5.5
REVIEWGROUNDER_REASONING_EFFORTReviewGrounder reasoning effort,默认 xhigh
REVIEWGROUNDER_RPMReviewGrounder backbone 的滚动 RPM 限制,默认 5
REVIEWGROUNDER_MAX_RELATED_PAPERS每篇最多纳入的 related papers,默认 1
FILTER_MAX_WORKERS筛选阶段并发上限,默认 5
PAPERTOOLS_FILTER_LLM_TIMEOUT筛选阶段单次 LLM 请求超时秒数,默认 120
PAPERTOOLS_FILTER_LLM_MAX_RETRIES筛选阶段 LLM 重试次数,默认 1
PAPERTOOLS_FILTER_EXTRACT_CHAIN筛选阶段 prestige 机构抽取链,默认 docling,pymupdf4llm,jina
PAPERTOOLS_TOPIC_HEURISTIC_TOPIC_BYPASS_MIN_SCORE强主题确定性命中的 LLM 细筛旁路最低分,默认 30;硬排除风险仍交给 LLM
PAPERTOOLS_FILTER_SUSPICIOUS_ZERO_MIN_INPUT可疑零结果源论文阈值,默认 500
PAPERTOOLS_FILTER_SUSPICIOUS_ZERO_MIN_PREFILTERED可疑零结果关键词候选阈值,默认 100
PAPERTOOLS_OPENAI_TRUST_ENVOpenAI-compatible API 是否继承系统代理环境,默认 false
PAPERTOOLS_PIPELINE_STAGE_TIMEOUT_SECONDS单个 pipeline 子进程阶段超时秒数,默认 21600;设为 0 可禁用
WEBHOOK_URL失败/完成通知 webhook
PAPERTOOLS_DAILY_WINDOW_DAYS每日任务滚动补抓天数,默认 4
PAPERTOOLS_DAILY_PIPELINE_TIMEOUT_SECONDS每日自动发布单次 pipeline 超时秒数,默认 21600(6 小时)
PAPERTOOLS_DAILY_PREFLIGHT_OFFLINE_OK设为 1 时每日 wrapper 跳过远端 /models 预检;默认 0。默认预检会按筛选、聚类、总结 provider 的实际 endpoint 分组检查模型
JINA_API_TOKENJina Reader API(全文获取)

筛选规则在 src/utils/config.pyPAPER_FILTER_PROMPT 中定义。

命令

papertools run # 运行完整流水线
papertools run --mode quick # 快速测试(10篇)
papertools run --date 2026-03-28 # 指定日期
papertools run --start-date 2026-03-26 --end-date 2026-03-28
papertools serve # 启动本地服务器
papertools clean # 清理缓存
papertools check # 检查环境
papertools check --install-missing # 显式安装缺失的基础依赖

开发检查

项目支持 CPython 3.10-3.14;CI 会覆盖 pyproject.toml 中声明的所有 CPython 版本。

pip install -e ".[dev]"
pre-commit install # 可选:提交前运行快速检查
make test# 隔离外部 pytest 插件,避免全局环境影响测试
make lint # Ruff lint + format check
make security # Bandit medium/high security gate
make validate-data # 校验当前 webpages/data 发布 payload
make pre-commit # 对已跟踪文件运行提交前检查
make ci # 本地复现主要 CI 检查

定时运行

crontab -e
# 每天早上 8 点自动运行、校验并发布 webpages/
0 8 ***cd /path/to/PaperTools && ./daily_update.sh >> logs/cron.log 2>&1

流水线

爬取 arXiv → LLM 筛选 → LLM 聚类 → 摘要/总结生成 → 网页生成

每个阶段产出独立的 JSON 文件,可以从任意阶段恢复:papertools run --start-from cluster

更多文档

About

PaperTools 是一个完整的学术论文处理流水线,提供自动化的论文爬取、智能筛选、总结生成和网页生成功能。

Resources

Code of conduct

Contributing

Security policy

Stars

19 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages