
1. 当日报变成一种产品我为什么要做AI日报自动化每天早上八点半我手机里会准时弹出一条消息不是新闻推送也不是社交软件提醒而是一份我自己搭建的AI日报。它包含过去24小时内我关注的几个信息源里最重要的动态按主题分好类每条附一句话摘要和原文链接。整个过程没有人工干预从抓取、筛选、摘要到排版推送全自动跑完。这件事的起点其实很朴素。2025年下半年开始AI领域的信息密度到了一个让人窒息的程度——每天醒来打开信息流几十条新模型发布、新论文、新工具、新融资刷完一圈半小时没了真正有价值的信息可能就三五条。我试过用收藏夹、用稍后读、用各种聚合工具最后发现都解决不了一个核心矛盾信息是无限的但我的注意力是有限的。所以AI日报这个项目本质上不是做一个新闻产品而是做一套信息降噪系统。它的目标很明确把每天几百条原始信息压缩成一份十分钟能读完、且不会漏掉关键动态的简报。适合谁来参考如果你也在被信息过载困扰或者你想学一套完整的抓取-处理-分发自动化链路那这套东西可以直接抄作业。它涉及的技术栈不复杂但每一个环节都有坑我会把踩过的都讲清楚。需要先说明一点这篇内容里的日期、数据、案例都是基于我自己的运行环境做的演示你实际跑的时候数字会不一样但方法论是通用的。2. 信息源的选择不是越多越好而是要可维护2.1 我为什么砍掉了三分之二的信息源一开始我贪心接了十几个源各种技术博客、论文预印本平台、行业媒体、社交平台上的技术账号、甚至几个邮件列表。结果第一周就崩了——不是技术崩是内容崩。同一个事件被五个源重复报道摘要出来五条几乎一样的内容有些源更新频率极低一周才一条但每次抓取都要花时间还有些源格式极其混乱解析出来的正文全是乱码。后来我做了一次大清理标准就三条更新频率稳定至少每天有更新否则不值得占用抓取配额。内容有独特性如果它的内容在别处也能看到且别处质量更高就砍掉。结构可解析RSS、公开API、或者结构规整的页面优先纯靠正则硬啃的源慎重。最后留下的源控制在8个以内。这个数字不是拍脑袋定的而是根据我每天能消化的信息量倒推的——一份日报如果超过15条我就读不完了而8个源平均每天产出20-30条原始信息经过筛选后刚好落在10-15条这个区间。2.2 抓取方式的选择逻辑不同源要用不同的抓取策略这里没有万能方案。我实际用的是三种方式的组合抓取方式适用场景优点坑点RSS/Atom有标准订阅源的博客、媒体结构稳定解析简单部分源只给摘要不给全文公开API提供接口的平台数据规整有速率控制需要处理鉴权和分页页面解析没有订阅源的站点能拿到最全内容页面改版就失效维护成本高我个人的优先级是API RSS 页面解析。页面解析是最后手段因为它的维护成本太高了。我有个源用了三个月对方网站改了一次DOM结构我的解析规则全废那天日报直接空了。从那以后凡是能用RSS的我绝不写页面解析。提示抓取频率不要设太高。我一开始设成每10分钟一次结果被某个源限流了。后来改成每天固定两个时间点抓取早上7点和晚上7点既够用又不会给对方服务器造成压力。2.3 去重的核心逻辑去重是日报质量的生命线。我的去重分两层第一层是URL去重这个简单把URL规范化去掉追踪参数、统一大小写后做哈希比对就行。第二层是内容去重这个复杂一些。同一个事件不同源的报道URL完全不同但内容高度相似。我用的是文本相似度计算——把标题和正文前200字拼起来做分词后计算余弦相似度超过阈值我设的是0.75就判定为重复只保留信息量最大的那条。这个阈值是调出来的。设0.9太松重复内容还是会漏进来设0.6太严会把不同角度的报道误杀。0.75是我实测下来比较平衡的值但你可以根据自己的源的特点微调。3. 从原始信息到一句话摘要处理链路拆解3.1 清洗把脏数据变成可处理数据抓下来的原始内容十有八九是脏的。常见的问题包括HTML标签残留、多余的空格和换行、广告段落混在正文里、编码乱码。这一步不做干净后面的摘要质量一定崩。我的清洗流程是这样的去HTML标签用解析库把HTML转成纯文本保留段落结构。去除噪声段落比如点击上方关注我们版权声明相关阅读这类固定模式用规则过滤掉。统一空白字符把连续的空格、换行、制表符统一成单个空格或标准换行。编码归一化统一转成UTF-8处理掉特殊符号。这里有个经验不要试图用一条正则解决所有清洗问题。我见过有人写一个巨长的正则想一次性搞定结果维护起来是噩梦。正确做法是拆成多个小步骤每个步骤只干一件事出问题了好定位。3.2 摘要生成为什么我不直接用大模型一把梭很多人做摘要的第一反应是把全文丢给大模型让它输出一句话总结。我一开始也这么干但很快发现三个问题成本每天几十条内容每条都调一次大模型一个月下来费用不低。不稳定同样的输入模型每次输出的风格和长度都不一样日报看起来忽长忽短。幻觉偶尔会编造原文里没有的信息这在日报场景里是致命的。所以我改成了两段式摘要第一段是抽取式摘要用传统方法比如TextRank或者基于词频的句子打分从原文里挑出最重要的1-2个句子。这一步不生成新内容只做选择所以不会有幻觉成本也几乎为零。第二段是改写式压缩把抽出来的句子交给大模型让它压缩成一句话并且限定字数我设的是60字以内。因为输入已经是精选过的句子模型的发挥空间被约束住了幻觉概率大幅降低成本也降下来了。这个组合实测下来摘要质量比纯大模型生成稳定得多而且每条的成本降到了原来的五分之一左右。3.3 分类让日报有目录感一份好的日报读者应该能一眼看到今天有哪些类别的内容。我的分类体系是固定的五类模型与算法新模型发布、算法改进、训练技巧工具与产品新工具、新功能、实用产品行业动态融资、合作、政策相关注意这里只做客观陈述不做评论论文速览值得关注的新论文观点与教程有深度的分析文章、实操教程分类用的是关键词匹配加规则判断没有用模型。原因是分类类别固定且边界清晰规则方法足够用而且速度快、可解释。比如标题里出现发布开源模型就归到模型类出现教程指南如何就归到观点类。当然规则会有误判我的处理方式是允许少量误判但保证大类不错。读者对分类的容忍度其实很高只要不是把论文归到融资里基本不会有人在意。4. 排版与推送日报的最后一公里4.1 排版不是美化是信息架构我见过很多自动化日报内容不错但排版一塌糊涂——所有内容堆在一起没有层级没有留白。读者打开一看就关了。排版的核心不是好看而是降低阅读成本。我的排版规则很简单每个类别一个二级标题类别之间用分割线隔开。每条内容一行标题加粗 一行摘要 一行来源链接。摘要控制在60字以内超过就截断。全文控制在手机屏幕滑动3-4屏以内。这里有个细节链接不要用裸URL。裸URL又长又丑还占地方。我用的是Markdown的链接语法显示成原文两个字点进去才是真实链接。4.2 推送渠道的选择推送渠道我试过三种邮件、即时通讯机器人、静态网页。邮件优点是归档方便缺点是打开率低而且手机上看邮件体验一般。即时通讯机器人优点是触达快打开率高缺点是消息太长会被折叠而且历史消息不好检索。静态网页优点是可以做得很好看历史归档也方便缺点是需要主动去打开。最后我的方案是组合拳即时通讯机器人推送一个精简版只列标题和链接完整版生成静态网页链接放在精简版末尾。这样既保证了触达又保证了完整体验。4.3 定时任务的稳定性整个链路是定时触发的我用的是服务器上的定时任务。这里踩过一个坑任务执行时间要留足余量。我一开始设的是早上7点执行8点推送结果有几次因为某个源响应慢整个流程拖到了8点半才跑完推送就延迟了。后来我改成了两个措施一是把执行时间提前到早上6点留出两小时缓冲二是给每个抓取步骤设了超时时间单个源最多等30秒超时就跳过不阻塞整体流程。这样即使某个源挂了日报还是能按时出来只是少一条内容而已。注意定时任务一定要加失败告警。我有一次服务器磁盘满了任务静默失败我三天后才发现日报没推送。现在只要任务失败我就会收到一条提醒。5. 运行三个月后我总结出的几条硬经验5.1 关于内容质量宁缺毋滥日报最怕的不是内容少而是内容水。我宁可某天只有5条也不要为了凑数塞进去10条垃圾。判断标准很简单这条信息如果我不推读者会错过什么重要的事吗如果答案是不会那就砍掉。我设了一个硬性规则每条内容必须能回答它新在哪里。新模型、新功能、新数据、新观点总得占一个。纯转述、纯评论、纯旧闻重发的一律不要。5.2 关于自动化留一个人工兜底的口子全自动化听起来很酷但实际运行中总会有意外。我的做法是自动化跑完后生成的内容先存到一个待发布区我有10分钟时间可以快速扫一眼如果发现明显问题比如某条摘要完全跑偏可以手动删掉或修改然后再触发推送。这个人工兜底的口子救过我好几次。有一次某个源的文章标题和正文完全不匹配对方网站自己出的bug自动摘要出来的内容驴唇不对马嘴我扫一眼就删了。如果没有这个环节这条内容就推给读者了。5.3 关于维护成本把配置和代码分离这是工程上的经验但很重要。我一开始把信息源列表、分类关键词、推送渠道这些都硬编码在代码里结果每次调整都要改代码、重新部署。后来我把这些全部抽成配置文件YAML格式代码只负责读配置执行。现在我想加一个源、改一个关键词改配置文件就行不用碰代码。这个改动看起来小但让整个系统的可维护性上了一个台阶。自动化系统的寿命取决于你调整它有多容易。5.4 一个容易被忽略的细节时区如果你的信息源来自不同地区时区问题一定会找上你。我遇到过两次一次是某条内容明明是昨天的但因为时区换算错误被当成了今天的另一次是定时任务在夏令时切换那天执行时间错了一小时。解决方案很简单但必须做所有时间统一存UTC只在展示的时候转成本地时区。定时任务的时间也要明确指定时区不要依赖服务器默认设置。6. 如果你想自己搭一套从哪开始6.1 最小可行版本先跑通一条链路不要一上来就追求完整。我的建议是先做一个最小版本选一个源抓取清洗生成一条摘要推送到一个渠道。这条链路跑通了你再往上加源、加分类、加排版。最小版本大概需要这些东西一个能跑脚本的环境本地电脑就行、一个抓取库、一个摘要方案哪怕先用最简单的截取前100字、一个推送渠道即时通讯机器人的webhook最简单。6.2 逐步迭代的路线图跑通最小版本后我建议按这个顺序迭代加去重这是提升质量最快的一步。加分类让日报有结构。优化摘要从截取改成抽取改写。加排版让阅读体验上一个台阶。加人工兜底保证内容不出大错。加监控告警保证系统稳定运行。每一步都独立可验证不要跳步。我见过有人一上来就想做全套结果每个环节都是半成品最后整个系统跑不起来。6.3 关于成本的一个参考如果你用大模型做摘要成本主要取决于调用量。以我的规模每天20-30条每条一次调用来算一个月的费用大概是一杯咖啡的钱。这个成本对于个人项目来说完全可以接受。如果你连这个都想省那抽取式摘要其实也够用只是读起来没那么顺。最后分享一个我自己的体会做日报这件事技术只占三成剩下七成是内容判断。你得知道什么信息值得推、什么不值得这个判断力没法自动化只能靠你自己每天读、每天筛慢慢养出来。工具能帮你省时间但省不掉你的判断。