Jamie-Cui/paper-pulse

GitHub: Jamie-Cui/paper-pulse

Paper Pulse 自动获取并摘要 arXiv 和 IACR 论文,提供中英文双语摘要与零成本自动化更新。

Stars: 8 | Forks: 2

# Paper Pulse **自动获取、过滤并汇总 arXiv 与 IACR 的研究论文 — 为每篇论文生成中英文双语摘要。免费部署在 GitHub Pages,每日通过 GitHub Actions 更新。** [在线演示](https://jamie-cui.github.io/paper-pulse/) | [RSS 订阅](https://jamie-cui.github.io/paper-pulse/feed.xml) | [中文文档](README_CN.md) ![Paper Pulse 截图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/21a0852c86102124.png) ## 为何选择 Paper Pulse? - 厌倦了每天手动检查 arXiv?Paper Pulse 自动获取论文。 - 只关注特定主题?灵活的关键词过滤(AND/OR 逻辑)只保留重要内容。 - 需要中文 + 英文摘要?通过 Qwen(DashScope API)自动生成,双击卡片即可切换语言。 - 不想支付托管费用?完全在 GitHub Actions + Pages 上运行,零成本。 ## 功能特性 | 功能 | 描述 | |---|---| | **多源获取** | 从 arXiv(可配置分类)和 IACR ePrint 获取论文 | | **关键词过滤** | 行间为 OR,行内为 AND,实现精细控制 | | **双语 AI 摘要** | 通过 Qwen(DashScope API)生成中文与英文摘要,每张卡片可单独切换 | | **每日自动化** | GitHub Actions 定时任务,自动提交结果 | | **RSS 订阅** | 可在任意阅读器中订阅,自动生成 `feed.xml` | | **BibTeX 导出** | 支持单篇或批量导出参考文献 | | **邮件摘要** | 每日发送包含统计信息与 Token 使用的邮件报告 | | **静态站点** | 无需服务器,直接通过 GitHub Pages 托管 | | **Markdown 摘要** | AI 生成的摘要支持丰富的 Markdown 格式 | ## 快速开始(5 步) ### 1. 使用此模板 / Fork 点击 **“Use this template”**(或 Fork)以创建你自己的副本。 ### 2. 获取 DashScope API 密钥 在 [DashScope 控制台](https://dashscope.console.aliyun.com/) 注册账号,免费额度可用。 ### 3. 将 API 密钥添加到 GitHub Secrets 进入 **Settings → Secrets and variables → Actions → New repository secret**: - 名称:`MODELSCOPE_API_KEY`(或 `DASHSCOPE_API_KEY`) - 值:你的 API 密钥 ### 4. 启用 GitHub Pages 进入 **Settings → Pages**: - 来源:**Deploy from a branch** - 分支:`master`,文件夹:`/ (root)` ### 5. 运行工作流 进入 **Actions → Fetch Papers → Run workflow**。完成后访问 `https://.github.io//`。 此后,论文将每天 UTC 时间 00:00 自动获取。 ### 6. (可选)启用邮件摘要 Paper Pulse 可通过邮件发送每日统计报告(新论文数量、失败摘要、Token 使用量)。如需启用,请在 **Settings → Secrets and variables → Actions** 中添加三个密钥: | 密钥 | 描述 | |---|---| | `EMAIL_USERNAME` | 用于发送报告的 Gmail 地址(如 `you@gmail.com`) | | `EMAIL_PASSWORD` | Gmail [应用专用密码](https://myaccount.google.com/apppasswords)(不是登录密码) | | `EMAIL_TO` | 收件人地址(可与 `EMAIL_USERNAME` 相同) | 若未设置这些密钥,工作流仍会正常运行,仅跳过邮件步骤。 ## 自定义配置 ### 关键词(`keywords.txt`) ``` # 每行 = OR 条件。同行 = AND 条件。 transformer # Papers containing "transformer" neural backdoor # Papers containing BOTH "neural" AND "backdoor" federated learning # Papers containing "federated learning" ``` 关键词过滤可针对每个来源独立开关(在 `config.toml` 中设置 `apply_to_arxiv` / `apply_to_iacr`)。 ### 配置文件(`config.toml`) | 设置项 | 位置 | 默认值 | |---|---|---| | 论文保留天数 | `general.days_back` | 30 天 | | 每页论文数 | `frontend.papers_per_page` | 10 | | arXiv 分类 | `fetchers.arxiv.categories` | cs.CR, cs.AI, cs.LG, cs.CL | | AI 模型 | `summarizer.model` | qwen-plus | | RSS 条目数 | `rss.max_items` | 50 | | 站点 URL | `general.site_url` | *(你的 GitHub Pages 地址)* | 请参考 [CONFIG_GUIDE.md](CONFIG_GUIDE.md) 查看所有选项。 ## 项目结构 ``` paper-pulse/ ├── .github/workflows/ │ └── fetch-papers.yml # Daily automation ├── scripts/ │ ├── fetchers/ │ │ ├── arxiv.py # arXiv API fetcher │ │ └── iacr.py # IACR RSS fetcher │ ├── filter.py # Keyword filtering engine │ ├── summarizer.py # Bilingual AI summarization │ ├── rss.py # RSS feed generator │ ├── generate_config.py # Frontend config generator │ └── main.py # Pipeline orchestrator ├── data/ │ ├── papers.json # Paper database │ └── failed.json # Failed summarization queue ├── config.toml # All configuration ├── keywords.txt # Keyword filter rules ├── index.html / app.js / styles.css # Frontend ├── config.js # Frontend config (auto-generated) └── feed.xml # RSS feed (auto-generated) ``` ## 工作原理 ``` Fetch (arXiv + IACR) → Filter (keyword matching) → Summarize (Qwen AI, bilingual) → Merge & Deduplicate → Save (papers.json) → Generate RSS (feed.xml) → Commit & Push (GitHub Actions) ``` 获取失败的摘要会在下一次运行时自动重试。 ## 许可证 [GPL-3.0](LICENSE)
标签:AI摘要, AND OR 逻辑, arXiv, BibTeX导出, DashScope API, GitHub Actions, GitHub Pages, IACR, Qwen, RSS订阅, SEO, 中文摘要, 免费托管, 关键词过滤, 双语摘要, 大模型, 威胁情报, 学术工具, 定时任务, 开发者工具, 技术资讯, 无服务器, 特权提升, 自动化部署, 自动笔记, 英文摘要, 论文聚合, 逆向工具, 邮件摘要, 静态网站