既然不想招客服,我就用 Docker 部署了一套智能问答系统

既然不想招客服,我就用 Docker 部署了一套智能问答系统。省下的不是工资,是心力,是半夜被微信消息震醒的恐惧。去年搞团队那会儿,光客服就招了仨,结果呢?问题答得稀烂,还得我亲自下场擦屁股,管理成本比开发成本还高。现在好了,断尾求生,回归一个人,第一刀就砍向这种重复劳动。

这套系统的核心是个 FAQ 机器人,但难点不在算法,在工程化。我不想用任何 SaaS,数据在自己手里才睡得着。选型定了 Rasa,但直接跑在云服务器上太贵,而且采集训练数据的爬虫任务一开,CPU 就报警。这时候盯上了墙角吃灰的两台树莓派 4B 和一台老笔记本。极客的快乐来了:用废旧硬件搭建分布式爬虫集群,给主力服务器减负。

具体这么干的。主力阿里云 ECS 只跑 Rasa Core 和 NLU 服务,用 Docker Compose 编排,挂了 Nginx 做反向代理和 SSL。那三台“破烂”组成采集集群。每台都装上 Docker,跑同一个爬虫镜像。镜像里是定制的 Scrapy 项目,针对我们产品论坛和帮助中心页面写的。这里有个坑,论坛页面是动态加载的,直接用 Requests 拿不到数据,得上 Selenium,但树莓派 ARM 架构装 Chrome 驱动麻烦得要死,最后用了无头 Firefox,速度慢点,但稳定。

关键在任务调度和去重。我在这台老笔记本上装了 Redis 当消息队列和去重中心。Scrapy 爬虫从 Redis 里取种子 URL,爬到的数据直接通过 Redis 的 list 推给主力服务器上的一个数据清洗脚本。去重用的是布隆过滤器,不然论坛里翻来覆去就那么几个帖子,能爬出几万条重复数据。树莓派性能是真弱,单线程爬,但三台一起跑,利用的是“垃圾时间”,比如凌晨全自动启动,白天我手动触发一下采集新帖。电费?几乎可以忽略不计。

这种低成本自动化的美感,比当年烧钱堆服务器爽多了。以前带团队,动不动就要预算,买高配服务器,结果利用率不到 30%。现在这几台破烂,物尽其用,把最脏最累的采集任务分摊得明明白白。Rasa 的训练数据每小时自动更新一次,模型重训,Docker 镜像重新打包,再通过 CI 脚本滚更新到生产环境。全程除了我写初始脚本花了两天,后面基本零维护。

布隆过滤器偶尔有误判,导致个别新问题没采进来,监控脚本发现后会自动把漏网的 URL 重新塞回队列。这套系统跑顺之后,客服入口的常见问题解决率到了七成,剩下的三成复杂问题才需要邮件流转到我这里。解放出来的时间,我才能去研究低卡食谱和早上那五公里跑。身体才是第一生产力,这话以前当鸡汤,现在是被毒打后的真理。你堆再多人力,不如写好一个脚本;你开再多会,不如把自动化流程画通。所谓超级个体,不是啥都自己干,而是让机器替你干那些重复的,你把精力省下来,去干只有人能干的,比如思考,比如决策,比如在深夜调试完最后一段 pipeline 后,对着满屏滚动的日志,喝一口无糖可乐,享受这片刻的、完全属于你的、安静的掌控感。

© 版权声明
THE END
喜欢就支持一下吧
点赞58 分享