第1篇:一个人用AI从零搭了一套AI新闻系统,每天凌晨5点自动运行
这不是一篇教程。这是一个独立开发者真实的搭建过程,包括踩过的坑和凌晨3点的崩溃时刻。
为什么做这件事
每天早上打开手机,铺天盖地的AI新闻。OpenAI发了新模型,Google又搞了个新产品,某个研究论文声称解决了XX问题。
信息太多了,但99%都是噪音。
我想有一个属于自己的AI新闻站——每天自动帮我筛选、翻译、打分、生成深度解读。不需要我动手,早上起来就能看到一份精选的AI日报。
更重要的是,我想用这件事验证一个问题:一个人加上AI助手,到底能做到什么程度?
结果有点出乎我的意料。
最终效果(先看结果)
每天凌晨5点,系统自动执行这些步骤:
05:00 采集:从HackerNews、Reddit、RSS等10+个英文源抓取AI新闻
05:10 翻译:AI将英文内容翻译成中文,提取关键信息
05:20 打分:AI根据影响力、创新性、相关性打分(0-10分)
05:30 生成:AI为TOP 15新闻生成中文摘要和编辑观点
05:40 排版:自动生成漂亮的新闻页面和归档
05:50 同步:同步到服务器,早上7点推送公众号
08:00 深度解读:自动对TOP 1新闻生成2000+字深度分析,发布到博客
全程零人工干预。我已经连续跑了20多天。
最终效果:https://ai.howie.wang
第一步:数据采集(最难的部分)
AI新闻来自哪里?
我选择了一个开源项目Horizon作为基础,它支持从HackerNews、Reddit、arXiv等英文源抓取AI相关内容。
但开源的不够用。我加了:
- RSS订阅源:The Verge、TechCrunch、Ars Technica的AI频道
- Twitter/X:跟踪关键AI研究者和公司账号
- arXiv预印本:直接抓取最新的AI论文
每天采集到的原始数据大约200-300条。
问题来了:数据采集必须在外网服务器上跑。因为HackerNews、Reddit、Twitter这些国内访问不了。
所以我的架构变成了这样:
🇭🇰 香港服务器(能访问外网)
└─ Horizon采集 → 生成结构化数据
└─ rsync同步到腾讯云
🇨🇳 腾讯云(备案域名,国内用户访问快)
└─ AI分析+生成 → 用户访问
└─ 公众号推送
踩坑 #1:一开始把采集放在腾讯云,跑了一夜,一条数据都没抓到。
原因:腾讯云服务器没有外网权限,HackerNews的API根本连不上。
解决:在香港服务器采集,通过SSH隧道+rsync同步数据到腾讯云。
这个教训让我后来制定了一条铁律:数据采集和外网操作永远放香港,用户服务和备案域名永远放腾讯云。
第二步:AI分析(让AI当编辑)
原始数据是英文的,200多条,质量参差不齐。
我需要AI做三件事: 1. 过滤:只保留和AI相关的高质量内容 2. 评分:0-10分,综合影响力、创新性、相关性 3. 翻译+摘要:生成中文标题、摘要、标签
这个逻辑写在一个叫daily_news.py的Python脚本里,大概500行代码。
调用的AI是智谱的GLM系列模型。
踩坑 #2:一开始用的模型经常触发429限流。
原因:每天处理200多条新闻,每条都要调API,请求量太大。
解决: - 准备了5个API key轮换 - 加了指数退避重试(失败一次等30秒,再失败等60秒...) - 批量处理而不是逐条调用
踩坑 #3:AI评分有时会超过10分。
原因:prompt里要求0-10打分,但AI有时"太激动",给了14.4分。
解决:代码里加了一行 score = min(score, 10.0)。简单粗暴,但有效。
第三步:页面生成(从数据到漂亮的页面)
有了分析结果,下一步是生成用户能看的页面。
这里我用了一个Jinja模板引擎,生成纯静态HTML。
每篇新闻自动生成: - 日报页面:https://ai.howie.wang/news/ (今日TOP 15) - 深度解读页面:每条新闻的单独分析页 - PPT速览卡:竖屏幻灯片格式,适合手机分享 - 归档页:所有历史日报的索引
踩坑 #4:归档列表页怎么都显示不出来。
原因:代码里有一个条件写反了——if date_part < today: continue,把所有历史日期都跳过了。
解决:改成 >= 就好了。但这个bug藏了一个多星期才被发现,因为前几天的数据都还是"未来日期"。
这种bug最可怕——代码语法没问题,逻辑错了。
第四步:自动化(让系统自己跑起来)
手动能跑通了,但我不想每天手动触发。
用了Linux的systemd timer,设置每天凌晨5点自动执行:
# 每天早上5点,自动采集+生成+同步+推送
0 5 * * * cd /var/www/ai-news && bash daily_auto.sh
daily_auto.sh脚本做了这些事:
1. 运行Horizon采集(香港)
2. 用AI分析和生成(腾讯云)
3. 生成静态页面
4. rsync同步到香港(供外部访问)
5. 推送到微信公众号
踩坑 #5: cron跑了一周后发现,每天生成的新闻日期都是"今天",但实际应该是"昨天"。
原因:Horizon采集的是"今天发生的事",但采集时间是凌晨5点,采集到的实际是前一天的内容。
解决:统一改成显示前一天的日期。
看起来是个小问题,但如果你在看新闻的时候发现"今天的新闻都是昨天的",就会觉得这个站不靠谱。细节决定可信度。
第五步:深度解读自动生成
这是最新加的功能,也是我最满意的部分。
每天早上8点,系统自动对排名第一的新闻进行深度分析:
- 抓取新闻原文
- AI生成2000-3000字的深度解读(有观点、有数据、有分析)
- 自动保存为Markdown博客文章
- 同步到博客,自动出现在文章列表里
比如今天GPT-5.5发布的新闻,系统自动生成了一篇《GPT-5.5深度解读:从"聊天机器人"到"AI超级应用"的跃迁》,7个小节,包含benchmark数据对比和独立观点。
这个过程完全不需要我参与。
唯一需要我做的,是偶尔去博客看看生成的内容质量,确保没有明显的错误。
背后的技术栈
给技术爱好者列一下:
| 组件 | 技术 |
|---|---|
| 数据采集 | Python + Horizon(开源) |
| AI分析 | 智谱GLM API |
| 页面生成 | Jinja2模板 + 纯静态HTML |
| 后端API | FastAPI + SQLite |
| 服务器 | 腾讯云(用户服务)+ 香港(数据采集) |
| 域名 | ai.howie.wang(备案) |
| 自动化 | Linux systemd + cron |
| 部署 | rsync + Docker + nginx |
没有用到任何昂贵的云服务。成本就是一台腾讯云轻量服务器和API调用费。
一些反思
做这个系统前后花了大概3周时间。大部分时间不是在写代码,而是在修各种奇怪的问题。
凌晨3点调试cron,发现数据没同步;早上6点看日志,发现429限流;白天上班前检查页面,发现归档列表又空了。
这种感觉很难描述。不是痛苦,更像是一种"我亲手建了一个活着的系统"的满足感。
每天早上打开手机,看到新的AI日报已经生成好了,深度解读已经发到博客了。这种感觉,比写完代码本身更让人上瘾。
一个人能做到什么程度?
我的答案是:比你想象的多。但前提是——你要学会把AI当成真正的队友,而不是工具。
这20天的搭建过程中,超过一半的代码是我和AI助手一起写的。我负责方向和决策,它负责执行和查bug。我们吵过架(它在用sed全局替换时把所有SSL证书路径都改了),但最终总是能解决问题。
这不是未来。这就是现在。
本文首发于浩哥AI实验室,同步发布于博客、知乎、小红书等平台。 系统地址:https://ai.howie.wang 博客:https://howie.wang/blog
小红书版(提炼5个要点)
一个人用AI搭了套AI新闻系统🤯 全程自动化
第1点:数据采集是最大的坑。必须在有外网的服务器上跑,国内服务器一个数据都抓不到。
第2点:AI评分会"超分"。prompt让它0-10分,它有时给14分。代码里硬限制:超过10就是10。
第3点:凌晨5点自动跑,早上起来新闻已经排版好了。这种"被动收入感"真的很爽。
第4点:最有价值的功能是自动深度解读。每天自动对TOP1新闻写2000字分析文章,完全不需要人工。
第5点:一个人+AI助手=无限可能。代码一半是我写的,一半是AI写的。吵架归吵架,活干完了。
配图建议:系统架构图、每天生成的新闻页面截图、凌晨日志截图、归档页截图