夜雨聆风学习资料网

ARTICLE · 1123231

看了卡兹克开源的 AIHot 源码,我把自己的小工具大改了一版

看了卡兹克开源的 AIHot 源码,我把自己的小工具大改了一版

国庆这几天没出去玩,研究卡兹克开源了他那一套 AIHOT 的代码。

最早做见微的时候, AIHOT 就给了我很直接的启发。这次既然能看到源码,让 AI 顺着从头到尾翻了一遍,也对照着把见微重新看了一轮。

翻完最直接的感受是,两边的路线其实早就分开了。卡兹克做的更像一个“行业编辑部”,从筛选标准、两次评分到多渠道分发,有一整套面向公众的内容处理流程。但我做见微,从头到尾就没想过去抢媒体的活。我只是想在自己的小机器上,盯紧自己挑的那几个 X 账号、公众号和关键词,不用多权威,只要别把重复的垃圾信息推给我就行。

借着 AIHOT 在后台处理上的一些思路,我干脆趁着这几天假期,把见微好好整理了更新一版。

读过的,就别再读一遍

看完 AIHOT 的代码,我让 AI 也给见微提了一轮改版建议。

它列了长长一串功能清单,我看完直接让它重新查,“感觉这些还是太基础了吧?”

我想弄清楚的事情,光看功能列表是看不出来的。能接几个平台、能不能生成摘要,这些都能写得很漂亮。可最后打开页面,如果只是把同一条消息的几篇重复报道堆在眼前,那我干嘛还要做它?

之前自己用的时候,就出现这个问题。同一个热点,好几家媒体换着标题发通稿。我本来是为了省时间,结果打开页面,光是确认哪篇有新进展、哪篇只是换皮,又要浪费好几分钟。

所以这一轮,我把首页的阅读方式往前推了一步,让它围绕事件的新变化来读。

标记已读后,后面如果只是其他媒体的转述,就不用再跳出来;事件有了新进展,或者原文发生修订,再回到未读里。

顺手把收藏和关注也拆开。喜欢某篇文章的行文,就收藏原文;想盯着一件事的后续,就关注这个事件。哪怕过几天这条事件换了另一家媒体的报道当封面,关注状态也不会丢。

监控也是一样,盯关键词的人有自己的标准,不用硬看大众榜单。系统按你圈的范围挑内容,顺便在旁边说明它为什么被选进来。

改动写出来都不惊艳,但每天打开的时候,确实不用再像个人肉审核员一样去剔除重复内容了。

机器也得省着用

改完页面,顺手看了一眼后台监控,内存吃得还是肉疼,Mac mini 内存只有 16G,本不富裕的家庭更是雪上加霜。

一个小工具自己挂在后台跑,动辄占掉几百兆。顺着排查了一圈进程,才发现很多根本没配任务的采集模块,一直在后台傻傻常驻。

我让 AI 把这块改成了按需启动,没用到的服务先歇着。内容处理流程也拆开了,抓回来的长文先存起来,后台再以五篇为一批,让模型慢慢处理;就算哪批卡住了,前面的采集也不会跟着干等。

用一批构造的长文章在测试环境里跑了测试,阅读时网页程序占用的内存峰值,从将近 500M 降到了 220M 左右。不过这还没有覆盖真实采集的完整负载,等实际环境里的网络抖动、微信反爬都碰上了,肯定还得接着调。

别把它越改越复杂

这次改代码,最提防的就是 Codex 的“过度热情”。

用 CodeX 写代码太顺手了,只要稍微给点由头,它转头就能新建两个文件、顺便多封装一层抽象,最终变成屎山代码。

改到后面,我几乎每次都要把它打断,追问两句。“项目里原本没有现成的函数能干这事吗?”“你多加这一层,下次别的地方改动会不会被它带崩?”

有好几次都是逼着它把刚写好的十几行新逻辑全删掉,老老实实回过头去用现有的接口。

发出去之前

临发布前,又顺着排查掉几个暗坑。

微信采集依赖的一个第三方组件,设备支持标注有误,有些机器需要额外做兼容才能跑。这次在文档里把限制写清楚了,免得别人照着装到一半卡住。

安全扫描还扫出了一个第三方依赖的漏洞。点进去看调用关系,见微其实只用它查找目录,项目里现有的其他包能接替这部分工作。最后把这条有问题的依赖换掉,不仅消了安全告警,还顺便减了几个依赖包。

旧数据升级、备份恢复、核心操作都跑过一轮,才把新版本发出去。

写在最后

代码依然开源在仓库:github.com/workagi/jianwei

项目支持通过 Docker 本地部署。如果你也有几个想长期盯的信息源,可以先接入一两个试一试。

这个小工具现在肯定还有不完善的地方。如果你跑起来遇到问题,欢迎随时到仓库提 issue。

最后,求个 Star,觉得见微有点用的话,欢迎去仓库点个 Star

相关学习资料