每天自动抓取 Hugging Face Daily Papers 的热门论文、arXiv 新论文、以及国内外大厂的产品发布动态,用 DeepSeek-V4 生成中文深度解读(含图解 / 关键术语 / 总结),按期归档可翻往期。整套系统零服务器、配置一次后每天自动运行。
因为 AI 领域每天涌出大量论文和动态,信息量大、英文阅读门槛高。我想要一个"像每日早报一样,五分钟看完今天 AI 最值得关注的进展"的工具——市面上的 AI 资讯站要么内容堆砌、要么解读太浅,所以自己动手做一个。
顺便,这也是一个练手项目:从抓取、AI 调用、定时编排、归档存储、到前端展示和部署,全栈走一遍,有真实的工程问题要解决。
Python DeepSeek API GitHub Actions Supabase 原生前端 HTML/CSS/JS Vercel
把打分脚本命名为 select.py,导致和 Python 标准库的 select 模块冲突,引发 circular import 崩溃。后改名为 rank_papers.py 解决。教训:文件命名要避开标准库名。
用 Python 的 .format() 处理含 JSON 大括号的 prompt 模板时,format 把 JSON 的 {} 误认为占位符,抛 KeyError。改用显式 .replace() 替换具体占位符,避开和 JSON 大括号的冲突。
定时任务自动 commit 数据时,如果同时手动改了仓库,push 会被远端拒绝(fetch first)。加了 git pull --rebase --autostash 并做三次重试,避免冲突。
原定 cron: "30 0 * * *"(UTC 0:30,北京 8:30)发现经常延迟或漏跑。改到冷门时段 "17 1 * * *"(北京 9:17),触发可靠多了。这是 GitHub 免费定时任务的已知特性,要避开整点 / 半点。
抓论文首图时,arXiv HTML 里有时用 2605.26302v1/x1.png 这种带论文 id 自身前缀的相对路径。直接拼到 /html/{id}/ 后会出现 id 重复(404)。加了"路径以 id 开头则从 /html/ 根拼"的判断。这个 bug 是看真实 feed.json 数据时定位到的——本地测试覆盖了 15 种 src 写法,但漏了这种"非标准"路径,只有真跑才发现。
原计划结合 X 的讨论热度做协同打分,但 2026 年 X 加强了链接抑制和站外抓取限制,API 收费也偏贵。改用 Hugging Face Daily Papers 的社区投票数(upvotes)作为替代信号——这本身就是研究者社区(很多就在 X 上活跃)的热度投票,信号高度相关。这是一个"有理有据的工程取舍"。
从工程角度,它覆盖了:数据抓取(多源容错)、API 集成(LLM 调用 + 重试)、CI/CD 流水线(GitHub Actions 定时编排)、Serverless 架构思维、前端可视化(纯原生)、数据库设计(Supabase 计数)、域名/部署(Vercel + 自有域名)、内容质量工程(prompt 调优、防编造)。
从产品角度,它体现了"识别真实需求 → 设计技术方案 → 处理真实环境的边界情况 → 持续优化"的完整闭环——而不是一个跑通就停的 demo。
← 返回首页