独立承担后端架构设计与核心编码,搭建一套多模型调度的个性化学习资源推荐平台,实现智能对话问答、知识库管理、个性化资源推荐等业务,重点解决多模型调用容错、接口响应慢、业务数据闭环等问题。
项目背景与目标
学习场景需要按任务特点选择不同大模型,而多模型分散调用带来的单点故障会影响整个业务;长耗时 AI 响应让前端白屏等待,反复调用又持续消耗 Token。项目目标是把模型调用收口、把响应变流式、把重复调用降下去。
- 多模型按业务场景分流(DeepSeek / Kimi / Qwen),实现单模型故障隔离。
- 长耗时响应流式输出,避免前端白屏。
- AI 重复调用量下降 42%,数据库压力显著降低。
技术架构与选型思考
基于 Spring AI Alibaba 封装统一 AiChatClient,按业务场景路由不同模型,新增模型仅需调整配置;输出侧用 SseEmitter 做流式推送,数据侧用 Cache Aside 策略管理缓存。
- 调用层:统一 AiChatClient 场景路由 + 全局异常处理 + 统一 Result 封装 + 失败重试机制。
- 输出层:SseEmitter + 异步线程池实现流式推送,逐字输出。
- 数据层:Cache Aside 更新策略与 Redis 差异化缓存,结合 MyBatis-Plus、数据库 sequence 与事务控制实现节点状态自动流转及缓存联动失效。
核心难点与解决方案
难点一:多模型调用分散、单点故障影响业务
基于 Spring AI Alibaba 封装统一 AiChatClient,按业务场景路由不同模型,结合全局异常处理、统一 Result 封装与失败重试机制,实现单模型故障隔离,后端接口稳定性明显提升。
难点二:长耗时响应导致前端白屏、AI 返回 JSON 被 Markdown 包裹
基于 SseEmitter + 异步线程池实现流式推送,通过自定义解析链路与超时异常处理,实现逐字输出,非标准返回解析成功率由 71% 提升至 85%。
难点三:AI 重复调用消耗 Token、统计查询频繁读库
基于 Cache Aside 更新策略与 Redis 实现差异化缓存,结合 MyBatis-Plus、数据库 sequence 与事务控制实现节点状态自动流转及缓存联动失效,AI 重复调用量下降 42%,数据库压力显著降低。
项目成果与个人收获
- 多模型分流与故障隔离落地,单模型故障不再影响整体业务,后端接口稳定性明显提升。
- 流式输出 + 解析容错,非标准返回解析成功率由 71% 提升至 85%。
- AI 重复调用量下降 42%,数据库压力显著降低。
相关链接
项目已作为课程与个人作品沉淀,源码与演示地址暂不对外公开。