打造AI新闻追踪应用

从零到一:做一个面向 AI 新闻与论文的追踪与音频生成应用

学AI, 动手创造才是最好的学习方式

经常有人问我:“想学 AI,究竟从哪里开始最好?”

我的答案一直都是:动手去做一个真实的项目。

为什么创造是最好的学习方式?因为创造能帮助你实现真正的理解。通过实践,你会面对真实世界的挑战,而不只是停留在理论上。每当你解决一个具体的问题,就会促使你主动学习相关知识,而这种主动学习远比被动接受知识要深刻得多。与此同时,创造也能增强你的解决问题能力、提高你的自信,并帮助你建立独特的作品。这些都是传统的被动学习无法给予的。

时代变了,动手门槛也在变低

在这个时代,学习 AI 不再意味着你必须“死磕理论,刷完无数教程”才能开始动手。现在工具与生态越来越成熟,动手创造的门槛极大降低。只要你愿意尝试,人人都能快速搭建自己的 AI 项目,并从中收获最宝贵的经验。这比一味刷内容、学概念更能加深你对 AI 的理解。

我的背景:专注模型研发,却缺乏前后端经验

在开始做这个 Web 应用之前,我的主要背景是用 PyTorch 做模型训练和开发,对于当下火热的大模型比较熟悉。但在前后端开发上,我几乎是个小白。唯一的经验只是用 GitHub 的 Pages 搭建了一个个人主页,算是仅有的一点点前后端知识。

然而,当我意识到自己急需一个能够自动追踪与汇总 AI 新闻和论文的工具时,我觉得哪怕在前后端开发上经验不足,也应该试着自己动手做。“Create >> Consume”,动手创造,才是解决问题和学习新技能的最佳途径。

项目灵感:为什么要做一款追踪 AI 新闻与论文的应用

做科研或者从事 AI 行业的朋友,大概率都碰到过类似的痛点:每天都有大量论文、新闻涌现,想要第一时间获取行业动态,需要花费大量精力去不同的社交媒体、社区平台寻找推荐,既琐碎又容易遗漏。

  • 我平时会去 X 搜索最新动态,也会看 B 站或 YouTube 上的博主点评论文,有时还关注一些微信公众号,或是逛逛 Hacker News、Reddit 等网站。

  • 可是这些渠道往往有延迟、有局限,而且信息太分散,没有统一的聚合方式。

在调研了一圈后,我没有找到一个能同时聚合新闻和研究论文,还能实时抓取、自动更新的解决方案。于是,我决定自己动手做一个这样的工具——EZ.AI Listen Daily,一站式获取 AI 领域的最新动态,还能将它们读出来,方便我在走路、开车等碎片时间里收听。

需求与功能:我想要怎样的应用

在跟 GPT-4o 做了多轮对话后,我的需求大致如下:

  1. 自动爬取我感兴趣的 AI 新闻源、论文信息,并且尽量做到实时或准实时更新。

  2. 对抓取到的内容进行摘要,让我能够快速了解主要信息,不用我每篇都从头读到尾。

  3. 将文本转为音频,方便在开车、走路等不便阅读的场景里听新闻,充分利用碎片化时间。

  4. 保留原文链接,如果某篇新闻或论文特别重要,我还可以回到原文做更深入的阅读。

技术栈:从 Python 到 Next.js 的曲折之路

初步思路:Python + Vercel?

起初,我更熟悉 Python,于是就问 GPT-4o 如何用 Python 来实现。GPT-4o 给了一个思路:

  • 用 Python 写爬虫,抓取内容并总结。

  • 把应用部署到 Vercel 上,让前端可以访问。

结果后来我发现:Vercel 对于 Python 后端的支持并没有那么友好,部署起来比较麻烦。GPT-4o 其实一开始就建议我直接用 Next.js 写前后端并部署,这样会更顺畅。但我起初因为 Python 经验更足,没完全听从 GPT-4o 的建议,试了好几次后才回头是岸。

最终决定:Next.js + 爬虫 + TTS

最后敲定的整体架构如下:

  • 前端:Next.js(部署在 Vercel 上),负责页面展示与交互。

  • 爬虫:后端部分用 Node.js 去抓取新闻源数据,可以结合第三方的 API 或者自己写爬虫逻辑。

  • 内容摘要:调用 DeepSeek 的 API,对每条新闻/论文做关键点提炼。这里 GPT-4o 还帮我设计了DeepSeek的 Prompt。

  • TTS(语音合成):调用 Minimax 的 API,把处理后的文本转换成 MP3,上传到云存储中供页面播放。

  • 数据存储:

    • 文字与摘要放在数据库中(Supabase),便于随时查询和二次处理。

    • 生成的 MP3 则放在Vercel 提供的 Blob 存储里,前端页面可以直接加载和播放。

如何用 GPT-4o 和 Cursor 高效协作

GPT-4o:我的“产品经理”和“技术顾问”

  • 需求与架构讨论:从产品形态到技术栈选型,再到具体功能的实现思路,我都习惯先问 GPT-4o。如果它的回答符合直觉,就会继续深挖;如果有疑问,就带着问题和它多轮交互。

  • 遇到不会的问题就问:不管是如何买域名、配置数据库、还是写 SQL 语句,我通通都问 GPT-4o。简直就是一个 24 小时在线的全栈工程师。

  • Prompt 生成:我还会让 GPT-4o 根据需求,帮我写一个详细的Prompt,然后复制到 Cursor 中。

Cursor:我的“自动码农”和“调试伙伴”

  • 让 Cursor 直接写或修改代码:我会把 GPT-4o 生成的Prompt 发给 Cursor,再让它自动开发。我主要使用cursor里面的 Claude 3.7 模型,写代码很快,但有时也会出现断连或配额限制的问题。

  • 反复迭代 vs. 回退到初始状态:当 Cursor 写出的程序出现 bug,如果让它迭代修改两三轮还没解决,就要果断回退到初始版本,不然容易越修越乱。这是我宝贵的经验:与其在同一个脏乱的代码里无限修,不如重新来一遍,避免引入更多不稳定因素。

  • 必须保留对整体逻辑的掌控:Cursor 善于局部优化,但大局观有限。若完全甩手不管,代码可能会被它改得乱七八糟。最好在每次让它实现新功能或修 bug 之前,先让它解释整体思路,我自己也要做到心中有数。

  • 勤做文档:每当 Cursor 修完一个 bug 或完成一个 feature,我都会让它生成更新日志或在 README 里补充说明。这样后续每次开发新任务时候, 我会让cursor再次读取README内容。

遇到的坑:定时任务与 Edge Function 的限制

本项目的核心需要定时抓取新闻、调用 DeepSeq 摘要、再生成语音。这一整套流程超过了 Vercel Edge Function 默认只能跑几秒钟的限制。GPT-4o 给的建议是:

  • 如果想在 Vercel 上做定时任务,要么自己搭建后端服务器,要么将爬虫与生成流程放在其他云服务上执行,比如Render。

  • 因为我这个需求一小时才跑一次,并不需要实时,于是我干脆借用自己 MacBook Pro 上的 cron job(或 macOS 的 launchd)来处理定时任务。简单粗暴,但可行!这个建议也来自GPT-4o

用cursor做项目,仍有诸多局限

  • 上下文管理:像 cursor里面的Claude 3.7 等模型,如果多轮会话后太多代码或上下文,就容易忘东忘西或答非所问。需要我们精心分段、反复让它阅读关键文件或文档,才能持续获得较好的结果。

  • 整体规划能力有限:cursor在解决局部问题或小功能时很快,但要它一次性对一个复杂系统做架构设计,就可能顾此失彼。我需要当总控,让它分步骤实现功能,并不断验证、调试。

为什么说创造最能加速学习

  • 通过项目学到前后端知识:哪怕一开始几乎没有 Next.js 或 Node.js 的经验,但在 GPT-4o、Cursor 的帮助下,我快速掌握了基本的 Web 架构思路。

  • 认识到AI的优势与不足:只有在实战中踩坑,才会真正理解AI可以在哪些点上帮到你,在哪些地方还需要你亲自把关。

  • 输出能带来更多机会:写出一个实用小项目,不仅能满足自己需求,还可能为更多同行或 AI 爱好者解决类似痛点,顺便还能成为你在简历或社区分享中的亮点。

几点建议

  1. 找一个真实痛点先做起来

无论是自己生活、学习还是工作中的需求,只要你觉得“要是有个工具就好了”,就可以动手去做。在实现痛点需求的过程中,你所学到的东西会远远超过仅仅看教程或刷理论。

  1. 不懂就问大模型,多轮对话更高效

ChatGPT、Gemini等非常擅长提供技术路线、示例代码、方案对比和调试思路。别怕麻烦,多和它聊天,记得提问要具体、明确,你会惊讶于它能帮你节省多少时间。

  1. 保持一定的技术掌控力,别完全依赖工具

无论是 Cursor 还是其他自动化编程工具,都无法替代你的全局思考。如果让它们自由发挥,最后可能修出一团乱麻。要先让它们解释思路,再审核是否可行。

  1. 重视文档与版本管理

尤其是当你频繁和自动编码工具交互时,每次迭代都记得做好记录或写进 README,避免后续自己也找不到修改的来龙去脉。

  1. 动手项目能让你弯道超车

对于想转行或想快速积累经验的朋友来说,自己做出一个可运行、能解决实际问题的项目,是最好的作品集。比起死记硬背理论,这种实战证明往往更能赢得面试官或团队的青睐。

总结:Create >> Consume

这一路做下来,我深刻体会到动手实践的重要性。Create >> Consume 并不是一句口号,而是让你在亲手创造的过程中摸清技术细节、学会大模型的最佳使用方式,并收获无可替代的成就感。

别只刷内容,动手造点有趣的东西吧!

当你真正着手做一个项目,你会发现所有看似高大上的技术都变得亲近而具体。遇到的每一个小难题,都能促使你去学习和思考。当项目跑起来,哪怕只为你个人解决了一个小痛点,都是一次宝贵的成长历程。

希望我的经历能给你一些启发。如果你也想追踪 AI 领域的动态、或者手痒想做点新东西,不妨趁这个机会迈出第一步,做出属于自己的创造。未来之路,永远属于动手尝试的人!

后记:我的 Cursor 使用小贴士

  • 不要期望一次性迭代就能完美:Cursor 在两三次修改后依然不能解决 bug,就要果断回退到上一个可用版本,重新来过,免得越修越乱。

  • 要让 Cursor 先阐述思路:在实现或 debug 前,先让它解释框架和逻辑,并把这份思路贴给 GPT-4o 或自己审阅,避免黑箱操作。

  • 做好文档和版本管理:修 bug 或加新功能后,让 Cursor 生成 README 或更新日志,后续再改不会忘。

  • 控制上下文,分块给信息:当项目变大,Cursor 或 GPT-4o 记不住所有内容,就要把相关代码和文档先贴给它,并告诉它这是最关键的部分,分批次进行。

AI 的学习不只是算法和理论,也包括在实际项目中如何与工具、模型协作。希望你的实践之路,也能因为一次次的动手创造而更加精彩!

Last updated