业务和功能介绍
1、立项背景和目标:
针对北美课后教育市场商家信息高度分散(独立建站)、传统搜索引擎难以实现垂直领域精细化搜索,且聚合平台人工维护数据成本高昂的痛点,Richoo项目应运而生。本系统旨在打造一个垂直领域的SaaS+平台,核心目标是通过引入AI大模型(LLM)技术,实现海量商家网站课程信息的自动化采集、同步与智能解析,从而为北美家长和儿童提供高效的课程发现、个性化推荐以及统一的日程管理服务。
2、核心功能模块:
系统主要由五大核心业务模块构成:
课程查询系统:基于Elasticsearch提供BM25文本匹配与向量语义搜索相结合的混合召回能力。
课程推荐系统:结合用户画像与实时点击行为数据,为用户提供个性化的课程推荐。
课程日历系统:提供便捷的可视化工具,帮助家长统一管理小孩的课后班日程。
课程信息爬虫系统:负责在后台周期性并发抓取数万个商家网站的更新内容。
智能客服系统:利用Langraph技术,将家长复杂的自然语言需求精准转化为搜索过滤条件。
3、业务流程与路径:
系统的整体业务流呈现高度自动化的数据闭环:首先,爬虫系统从分散的商家网站抓取原始网页数据;随后,数据进入异步消息队列,由LLM解析服务接管,利用大模型将非结构化网页文本提取为结构化的课程JSON数据并建立索引;在用户端,家长通过前端发起搜索、对话(智能客服)或浏览推荐,网关将请求路由至对应的检索或推荐微服务,系统结合热度数据进行快速响应,最终用户可将心仪的课程一键加入个人日历中。
项目实现
1、整体架构与设计思路及技术栈:
为了应对AI驱动型项目高异构性、高并发及快速迭代的要求,系统整体采用了微服务架构风格(MSA)。设计思路是基于业务能力将系统解耦为六大自治服务(爬虫、解析、索引、搜索、推荐、BFF网关),实现计算密集型AI服务与高并发I/O服务的资源隔离与独立伸缩。
技术栈方面:爬虫模块采用Playwright并发抓取结合MongoDB存储状态;解析模块调用Gemini API大模型;不同服务间的异步通信与解耦重度依赖Kafka消息队列;搜索与API网关采用高性能异步Python框架FastAPI,对接Elasticsearch和Redis进行检索与缓存,结合Clickhouse处理热度数据;智能客服则独立采用Langraph/LangChain技术栈。
2、“我”的负责模块和量化结果:
我在本项目中担任系统架构师及核心算法工程师。主要负责:①主导微服务架构的选型与落地;②设计核心数据流,特别是爬虫与LLM解析服务之间的异步通信机制;③亲手实现搜索召回(BM25+语义)与推荐算法。
量化结果:在我的主导下,系统研发效率极大提升,从启动到核心功能上线仅耗时3个月;系统成功聚合了北美新泽西州和纽约州3万家培训机构、15万次课后班的实时课程信息;保障了系统于2025年6月顺利上线,并能够支撑高峰期LLM解析资源10倍以上的弹性扩容,持续稳定运营。
3、“我”遇到的难点、坑,和解决方案:
难点一:数据采集与AI解析的速度鸿沟。 爬虫产出HTML速度极快,但LLM解析资源消耗大且受外部API限速,传统同步调用会导致爬虫阻塞甚至系统崩溃。
解决方案: 我引入了Kafka作为异步消息队列缓冲层。爬虫服务作为生产者仅负责将原始HTML推入raw_html主题即刻返回;解析服务作为消费者根据自身算力按需拉取处理。这完美实现了流量削峰,即便外部API延迟,系统依然高可用。
难点二:微服务拆分带来的运维与监控黑洞。 随着服务增多,系统初期面临链路追踪困难、故障定位周期长的“坑”。
解决方案: 我牵头引入了统一的日志采集系统(ELK Stack),实现了跨服务的链路追踪。配合标准化的微服务治理和自动化CI/CD部署工具,有效化解了微服务带来的额外运维复杂度,让新算法更新能在数分钟内安全上线。