Skip to content

tsrigo/PaperTools

Repository files navigation

PaperTools

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

快速开始

# 1. 安装
pip install -e .

# 2. 配置
cp .env.example .env
# 编辑 .env,填入 API 地址、密钥和模型名

# 3. 运行
papertools run

配置

变量 说明 必填
OPENAI_BASE_URL API 地址
OPENAI_API_KEY API 密钥
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_KEY Prism 总结/翻译 API,不用于筛选
SUMMARY_SJTU_RPM SJTU 总结 provider 的共享 RPM 限制,默认 2;同一 key/base URL 下多个模型共用冷却
SUMMARY_PRISM_RPM Prism 每分钟请求上限,默认 5
SUMMARY_PRISM_REASONING_EFFORT Prism reasoning_effort,默认 xhigh
SUMMARY_PRISM_WINDOW_SECONDS Prism 滚动限额窗口秒数,默认 300
SUMMARY_PRISM_WINDOW_SAFETY_REQUESTS Prism 滚动窗口安全余量,默认 1
SUMMARY_PRISM_429_COOLDOWN_SECONDS Prism 429 后冷却秒数,默认 300
REVIEWGROUNDER_API_KEY ReviewGrounder key;默认优先复用 SUMMARY_PRISM_OPENAI_API_KEY
REVIEWGROUNDER_BASE_URL ReviewGrounder base URL;默认优先复用 SUMMARY_PRISM_OPENAI_BASE_URL
REVIEWGROUNDER_MODEL ReviewGrounder backbone,默认 gpt-5.5
REVIEWGROUNDER_REASONING_EFFORT ReviewGrounder reasoning effort,默认 xhigh
REVIEWGROUNDER_RPM ReviewGrounder 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_ENV OpenAI-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_TOKEN Jina 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

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors