ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AI资讯日报自动化实战:从采集、去重到摘要生成的完整技术链路

AI资讯日报自动化实战:从采集、去重到摘要生成的完整技术链路 1. 从一份日报标题说起AI资讯聚合的真实需求每天早上打开电脑我的第一件事不是看邮件而是扫一遍过去24小时AI圈发生了什么。这个习惯坚持了快三年从最初手动刷十几个信息源到后来写脚本自动抓取再到如今形成一套固定的筛选和整理流程中间踩过的坑足够写一本小册子。这次拿到的项目标题是“2026-09-21 AI最新资讯日报”看起来只是一个日期加主题的简单组合但背后涉及的信息采集、去重、分类、摘要生成、排版发布这一整套链路其实是一个典型的AI辅助内容生产场景。为什么这么说因为AI领域的资讯有三个显著特点更新频率极高、信息源极度分散、内容质量参差不齐。你如果只是简单地把所有新闻堆在一起读者根本抓不到重点。而如果筛选太严又会漏掉真正有价值的技术突破。所以一份合格的AI日报核心不在于“多”而在于“准”和“快”。它要解决的是信息过载环境下的注意力分配问题帮读者在最短时间内获取最值得关注的信息。这篇文章适合几类人参考一是想搭建自己信息聚合系统的开发者二是做技术内容运营的编辑三是单纯想提高信息获取效率的AI从业者。我会从整体设计思路讲起然后拆解每个环节的具体实现包括信息源的选择逻辑、去重算法的设计、摘要生成的提示词工程、以及最终排版的自动化方案。中间会穿插我实际跑这套流程时遇到的坑和解决方案尽量让不同基础的人都能直接抄作业。2. 资讯日报的整体架构设计2.1 为什么选择“采集-清洗-分类-摘要-发布”五段式做任何自动化内容系统第一步都是确定流水线结构。我试过三种方案第一种是纯人工筛选质量最高但效率极低一天两小时起步第二种是纯算法推荐用关键词匹配加热度排序速度快但经常推一些标题党内容第三种就是我现在用的五段式流水线在效率和可控性之间找到了平衡点。采集环节负责从多个信息源拉取原始数据包括技术博客、代码托管平台的趋势榜、学术预印本平台、以及几个高质量的技术社区。清洗环节做三件事去重、去广告、去低质内容。分类环节按照预设的标签体系把资讯归入不同板块比如“模型发布”“工具更新”“行业动态”“论文速递”。摘要环节用大语言模型对每条资讯生成一句话概括必要时补充背景信息。发布环节负责排版和分发输出Markdown格式的日报文件。这个架构最大的好处是每个环节可以独立替换和优化。比如你觉得某个信息源质量下降只需要改采集模块的配置觉得摘要风格不对只需要调整提示词。模块之间通过标准化的数据格式通信我用的是JSON Lines每行一条记录字段包括标题、链接、来源、时间戳、原始摘要、分类标签、生成摘要等。2.2 信息源的选择标准与权重分配信息源的质量直接决定日报的质量。我目前维护了大约二十个信息源分为三个优先级。第一优先级是官方渠道比如主要AI实验室的博客和公告页面这些内容准确度最高但更新频率不固定。第二优先级是技术社区的热门榜单比如代码托管平台的趋势项目、技术论坛的高赞讨论这些能反映开发者的真实关注点。第三优先级是学术预印本平台的最新论文按引用量和下载量排序。每个信息源有一个权重系数在最终排序时参与计算。权重的设定不是拍脑袋决定的而是根据过去三个月的实际数据回测出来的。具体做法是记录每条被选入日报的资讯来源然后统计不同来源的资讯在发布后一周内的阅读完成率和互动率用这个数据反过来调整权重。比如某个来源的资讯平均阅读完成率是80%另一个只有40%那前者的权重就是后者的两倍。这里有个细节需要注意权重不能设得太极端否则会导致日报内容过于集中。我一般把最高权重和最低权重的比值控制在5:1以内保证多样性。另外每周会手动review一次信息源列表把连续两周没有产出高质量内容的源降权或移除同时尝试添加新的候选源。2.3 去重策略从精确匹配到语义相似度去重是资讯聚合里最容易被低估的环节。早期我用的是标题精确匹配结果发现同一件事不同媒体的标题差异很大根本去不掉。后来改成标题的编辑距离计算阈值设0.8效果好了一些但还是会漏掉那些换了说法的重复内容。现在的方案是两级去重。第一级还是快速匹配用标题的SimHash值做近似判断这个速度极快能在毫秒级过滤掉大部分明显重复。第二级是语义去重把标题和摘要拼接后送入一个轻量级的文本嵌入模型计算余弦相似度阈值设在0.85。超过这个阈值就判定为重复保留权重更高的那条。语义去重会带来一定的计算开销但实测下来完全可以接受。我用的嵌入模型是本地部署的小模型单条推理时间在10毫秒左右一天处理几百条资讯也就几秒钟的事。这里有个经验阈值不要设得太低否则会把相关但不重复的内容误删。比如“某模型发布新版本”和“某模型新版本性能评测”是两件不同的事相似度可能在0.7左右如果阈值设0.7就会误伤。3. 核心环节的实操细节与避坑指南3.1 采集模块的配置与反爬应对采集模块我用的是Python写的核心依赖是requests和feedparser。对于提供RSS或Atom订阅的源直接用feedparser解析省时省力。对于没有订阅接口的页面就需要写针对性的解析规则。这里强烈建议用配置文件来管理解析规则而不是把选择器硬编码在代码里。我的配置文件是YAML格式每个源定义URL、请求头、解析类型、字段映射等信息。反爬方面最基本的操作是设置合理的请求间隔和User-Agent。我一般把间隔设在3到5秒之间太短容易被封太长影响效率。User-Agent用常见的浏览器标识不要用默认的python-requests那个太容易被识别。如果某个源有频率限制就在配置里单独设置更长的间隔。还有一个容易被忽略的点是编码问题。有些页面的编码声明和实际编码不一致直接解析会出现乱码。我的做法是先用chardet检测实际编码再用检测结果解码最后统一转成UTF-8。这个步骤虽然简单但能避免很多莫名其妙的错误。注意采集频率不要太高尊重每个站点的服务承载能力。我一般把全量采集安排在凌晨低峰期执行白天只做增量更新。3.2 分类标签体系的设计与动态调整分类标签体系是日报的骨架。我最初设计了八个类别后来发现太细了很多资讯找不到合适的归属最后精简到五个模型与算法、工具与框架、行业与应用、论文与研究、观点与讨论。每个类别下面再设二级标签比如“模型与算法”下面有“新模型发布”“模型更新”“训练方法”“推理优化”等。标签的分配有两种方式基于规则和基于模型。基于规则就是用关键词匹配比如标题里出现“发布”“开源”“上线”就归入“新模型发布”。这种方式准确率高但覆盖率低很多资讯匹配不上。基于模型就是用文本分类模型我用的是一个在科技新闻数据集上微调过的小模型准确率在85%左右。实际运行中我采用的是混合策略先用规则匹配匹配不上的再用模型分类。这样既保证了常见情况的准确性又覆盖了长尾内容。每周会抽查一批分类结果把分错的案例加入训练集定期重新微调模型。这个迭代过程很重要因为AI领域的术语和热点变化很快模型需要持续更新。3.3 摘要生成的提示词工程实战摘要生成是整个流水线里最考验提示词设计的环节。我试过很多种提示词模板最终稳定下来的版本包含四个部分角色设定、任务描述、输出格式、示例。角色设定是“你是一名资深AI技术编辑”任务描述是“用一句话概括以下资讯的核心内容不超过50字保留关键数字和专有名词”输出格式是“直接输出摘要不要加任何前缀”示例给两到三个。这里有个关键技巧把原始摘要和标题一起送入模型而不是只送标题。因为很多标题为了吸引点击会故意模糊关键信息原始摘要里往往有更准确的内容。另外对于论文类资讯我会额外要求模型提取“研究方法”和“主要结论”两个要素这样生成的摘要信息密度更高。温度参数我设的是0.3这个值在创造性和准确性之间比较平衡。太高了容易胡编乱造太低了又会出现重复模板。实测下来0.3对于技术类摘要生成效果最好。还有一个细节是max_tokens的设置我一般设100给模型足够的空间但又不至于啰嗦。提示摘要生成后一定要做后处理包括去除多余空格、统一标点符号、检查是否有截断。我写了一个简单的正则清洗函数能解决90%的格式问题。3.4 排版自动化与多端适配排版环节看起来简单实际上有很多讲究。我用的是Jinja2模板引擎把日报的HTML结构定义在模板文件里数据通过变量注入。这样修改排版只需要改模板不用动代码。模板里定义了标题样式、段落间距、链接颜色、代码块样式等。多端适配方面我主要考虑三种场景网页阅读、邮件推送、Markdown文件。网页版用完整的HTML加CSS邮件版用内联样式因为很多邮件客户端不支持外部样式表Markdown版则保留最简格式方便二次编辑。三种格式从同一份数据生成保证内容一致。这里有个小技巧在生成HTML时给每个资讯条目的链接加上utm参数这样可以追踪不同渠道的点击情况。虽然是个小功能但对后续优化信息源权重很有帮助。另外日报的标题格式我固定为“YYYY-MM-DD AI资讯日报”方便归档和检索。4. 常见问题与排查技巧实录4.1 采集失败与数据缺失的排查路径采集失败是最常见的问题表现是某个源的数据为空或者报错。排查顺序是这样的先检查网络连通性用curl命令直接请求目标URL看返回状态码如果网络没问题再检查解析规则是否失效因为网站改版会导致选择器匹配不到元素最后检查是否有反爬机制触发比如返回了验证码页面。我遇到过最隐蔽的一个问题是时区处理错误。某个源的时间戳是UTC格式但我按本地时间解析了导致资讯的时间排序完全错乱。后来统一规定所有时间戳在入库时都转成UTC展示时再转成本地时区。这个坑花了我一个下午才定位到因为表面上看数据都正常只是顺序不对。还有一个常见问题是字符编码导致的解析失败。有些页面声明是UTF-8但实际是GBKrequests库按声明解码就会出错。解决方案是用response.content获取原始字节然后用chardet检测编码后再解码。虽然多了一步但能避免很多乱码问题。4.2 摘要质量不稳定的优化方法摘要质量不稳定通常有三种表现太长、太短、内容偏离。太长是因为模型没有遵守字数限制解决方法是在提示词里明确写“不超过50字”并在后处理时截断。太短是因为模型过于保守可以适当提高温度参数或者给更详细的示例。内容偏离最麻烦通常是原始信息不足导致的需要检查采集环节是否漏掉了关键字段。我总结了一个摘要质量检查清单每次生成后自动跑一遍字数是否在30到60之间、是否包含至少一个专有名词、是否以句号结尾、是否包含“本文”“该研究”等空洞开头。不通过的条目会标记出来人工复核。这个检查清单把摘要合格率从70%提升到了95%以上。另外对于重要资讯我会用两个不同的提示词模板各生成一次摘要然后选质量更高的那个。虽然增加了一倍的计算量但对于日报这种每天只有几十条内容的场景完全负担得起。这个策略叫“多路生成加优选”在文本生成任务里很常用。4.3 分类错误的典型模式与修正分类错误主要集中在边界模糊的类别上。比如“某公司发布新模型”既可以归入“模型与算法”也可以归入“行业与应用”取决于你关注的是技术本身还是商业动态。我的处理原则是如果资讯重点在技术细节归入前者如果重点在商业影响归入后者。这个判断标准写进了分类模型的训练数据里。另一个高频错误是把“教程类”内容误分到“工具与框架”。比如“如何使用某工具做某件事”应该归入教程而不是工具本身。我在规则里加了一条标题包含“如何”“教程”“指南”“入门”等词的优先归入教程类别。这条规则简单但有效减少了大约30%的分类错误。对于持续分错的案例我会把它们加入一个“难例集”每周review一次分析错误原因并调整规则或补充训练数据。这个迭代过程是分类系统保持准确率的关键。没有一劳永逸的分类器只有持续优化的流程。4.4 性能瓶颈与优化经验整套流水线跑下来最耗时的环节是语义去重和摘要生成两者都涉及模型推理。在早期版本里我是串行处理的几百条资讯要跑好几分钟。后来改成批量推理把多条文本打包成一个batch送入模型速度提升了五到八倍。具体做法是把待处理的文本按长度排序然后按固定batch size分组每组内的文本长度相近这样padding最少计算效率最高。batch size设的是16再大显存就不够了。如果用的是API调用而不是本地模型那就用异步请求加并发控制我一般设5到10个并发再高容易被限流。还有一个优化点是缓存。对于重复出现的资讯比如同一篇论文被多个源报道摘要生成的结果可以缓存复用。我用的是基于内容哈希的缓存命中率大约在20%左右别小看这个比例每天能省下不少计算资源。缓存的有效期设的是7天过期自动清理。5. 从日报到知识库后续扩展思路这套流水线跑顺之后我做了几个扩展。第一个是自动生成周报和月报逻辑很简单把一周或一月的日报数据聚合起来用更大的模型做二次摘要提炼出趋势和热点。第二个是构建个人知识库把每条资讯的摘要、链接、标签存入本地数据库支持全文检索和标签筛选。第三个是热点追踪对特定关键词做持续监控一旦出现频率异常升高就触发提醒。这些扩展的共同点是都建立在标准化的数据格式之上。只要采集和清洗环节的输出格式稳定后面的应用可以随意叠加。这也是我一开始坚持用JSON Lines而不是直接生成最终文本的原因——数据和处理分离灵活性高得多。如果你也想搭一套类似的系统我的建议是从最小可行版本开始。先选三到五个高质量信息源用最简单的规则做去重和分类摘要生成可以先手动或者用现成的API。跑通之后再逐步增加信息源、优化算法、扩展功能。不要一上来就追求大而全那样很容易在细节里迷失方向。先把核心链路跑通后面的事情都是水到渠成。
返回列表