ArXiv 每日论文追踪器:自动检索、双语总结、邮件推送、一键建站

开源项目地址:Arxiv-tracker 🔗 https://github.com/colorfulandcjy0806/Arxiv-tracker

在做读论文日报/周报吗?我做了一个轻量工具,每天自动从 arXiv 抓取目标主题论文,LLM 生成中英文总结,发邮件到你的收件箱,同时自动生成 GitHub Pages 网页归档。整个流程由 GitHub Actions 定时执行,几乎零运维。本项目参考了网络众多项目制作,感谢开源社区!

✨ 能力概览

  • 🔎 多学科/多关键词检索:cs.CV / cs.LG / cs.AI 等 + 关键词(AND/OR 组合)

  • 🧠 双语总结:LLM 直接生成 英文一段 + 中文一段(动机/方法/实验结果)

  • 📨 邮件日报:QQ 邮箱 SMTP,支持多收件人

  • 🌐 网页归档:自动生成美观 HTML(历史归档/折叠/展开)

  • 🔁 去重与"时间窗":只看近 N 天,且跨天去重(.state/seen.json)

  • ✅ 防重复发信:工作流/进程/快照三级保护

  • 🧩 多家模型接入:统一 OpenAI 兼容接口(DeepSeek / SiliconFlow 等)

网页效果👇

邮件效果👇

🚀 三步快速使用(零服务器)

  1. Fork 仓库 https://github.com/colorfulandcjy0806/Arxiv-tracker → Fork

  2. 配置 Secrets / Variables(Settings → Secrets and variables → Actions)

  • Secrets

    • SMTP_PASS:QQ 邮箱 SMTP 授权码(不是登录密码)

    • OPENAI_COMPAT_API_KEY:你的 LLM Key(DeepSeek 或 SiliconFlow 等)

  • Variables(也可放到 Secrets)

    • EMAIL_TO:收件人(多个用 , 或 ;)

    • EMAIL_SENDER:发件人邮箱(通常 = SMTP 用户)

    • SMTP_USER:SMTP 登录名(通常 = 发件人邮箱)

  1. 开启 Pages & 定时任务
  • Settings → Pages:Source 选 Deploy from a branch,分支 main,文件夹 /docs

  • .github/workflows/digest.yml 默认每天 北京时间 03:00 运行

  • 也可在 Actions → Run workflow 手动触发(支持手动"是否发送邮件"开关)

⚙️ 核心配置(config.yaml)

复制代码
categories: ["cs.CV", "cs.LG", "cs.AI"]
keywords:
  - "open vocabulary segmentation"
  - "vision-language segmentation"
  - "vision language model"
  - "vision-language grounding"
  - "open-vocabulary detection"
  - "training-free"

logic: "AND"                 # categories 与 keywords 的组合逻辑:AND / OR
max_results: 100
sort_by: "lastUpdatedDate"   #还可以是submittedDate 建议改成lastUpdatedDate按更新时间排,能捞到v2/v3的"新增"
sort_order: "descending"

lang: "both"                 # zh / en / both

summary:
  mode: "llm"                # none / heuristic / llm
  scope: "both"

translate:
  enabled: true
  lang: "zh"
  fields: ["title", "summary"]

llm:                         # 统一 OpenAI 兼容:DeepSeek / SiliconFlow 均可
  base_url: "https://api.deepseek.com"     # 或 "https://api.siliconflow.cn"
  model: "deepseek-chat"                   # 如用 SiliconFlow 可换 "Qwen/Qwen3-8B" 等
  api_key_env: "OPENAI_COMPAT_API_KEY"
  system_prompt_en: |
    You are a senior paper-reading assistant. Based on the given metadata and abstract,
    write ONE concise paragraph in English that covers: research motivation, main method,
    and key experimental findings. Be objective and specific; avoid marketing language.
  system_prompt_zh: |
    你是资深论文阅读助手。基于给定的论文元信息与摘要,用中文写「一段」简洁的总结,
    包含研究动机、核心方法与关键实验结果。保持客观、术语准确,避免营销式表述。

email:
  enabled: true
  smtp_server: "smtp.qq.com"
  smtp_port: 465
  tls: "ssl"
  detail: "full"
  max_items: 10
  attach_md: true
  attach_pdf: false

site:
  enabled: true
  dir: "docs"
  title: "arXiv 论文速递"
  keep_runs: 1024
  theme: "light"
  accent: "#2563eb"

freshness:
  since_days: 3              # 只看近 N 天;空可临时调大为 7
  unique_only: true          # 跨天去重(.state/seen.json)
  state_path: ".state/seen.json"
  fallback_when_empty: false

小贴士

  • 关键词太"窄"时可用 logic: "OR" 放宽;
  • since_days 决定"新增"的时间窗;
  • 401/超时:多为 密钥/基地址/模型名 不匹配或网络不稳定。

🧪 本地也能跑(Windows / Mac / Linux)

Windows PowerShell

复制代码
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt

$env:OPENAI_COMPAT_API_KEY="你的LLM密钥"
$env:EMAIL_TO="your@qq.com"
$env:EMAIL_SENDER="your@qq.com"
$env:SMTP_USER="your@qq.com"
$env:SMTP_PASS="你的QQ SMTP授权码"

python -m arxiv_tracker.cli run --config config.yaml --site-dir docs --verbose

macOS / Linux

复制代码
python -m venv .venv && source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt

export OPENAI_COMPAT_API_KEY="你的LLM密钥"
export EMAIL_TO="your@qq.com"
export EMAIL_SENDER="your@qq.com"
export SMTP_USER="your@qq.com"
export SMTP_PASS="你的QQ SMTP授权码"

python -m arxiv_tracker.cli run --config config.yaml --site-dir docs --verbose

📰 更新日志(News)

  • 2025-08-25

    • 新增 去重/时间窗:支持近 N 天过滤与跨天去重(.state/seen.json)

    • 新增 OpenAI 兼容 LLM:除 DeepSeek 外,已支持 SiliconFlow 等

    • 修复 重复发邮件的问题:加入工作流/进程/快照三级防重

  • 2025-08-22

    • 发布 初版:自动检索 + 双语总结 + 邮件推送 + 网页归档

❓常见问题

  • 没有新论文? ① 调大 freshness.since_days;② 放宽 logic: "OR";③ 增加/放宽关键词

  • 401 Unauthorized? ① 检查 llm.base_url / model / OPENAI_COMPAT_API_KEY 是否匹配; ② SiliconFlow 需使用余额有效的 API Key;

  • SMTP 报错/超时? ① 端口465 + SSL;② 使用授权码;③ 尝试切换到 587 + STARTTLS。

如果这对你有帮助,欢迎 Star 支持一下,现在代码肯定存在很多不足,也欢迎 PR/Issue 一起完善 🙌 https://github.com/colorfulandcjy0806/Arxiv-tracker