基于 Spring Boot + MyBatis-Plus + Redis + AIGC + RxJava + SSE 的AI智能问答平台,用户可使用AI快速 生成题目并制作应用,经管理员审核,可以使用多种评分算法或者AI得到回答总结; 管理员可以集中管 理全栈内容,并进行统计分析。
• 评分模块: 基于策略模式实现了多种评分算法,并通过全局执行器自动扫描策略类上的自定义注解并 选择不同的评分算法,相较于 if-else 提高了系统的可扩展性。
• 基于AIGC封装通用的AI服务,通过配置类自动读取 key 配置初始化AI客户端Bean,便于全局调用。
• 由于AI 生成题目速度较慢,选择 流式 API 并通过 SSE 实时推送单道题目给前端,提升用户体验。
• 使用 RxJava 的操作符链式调用处理 AI 异步数据流,先使用操作符对字符串进行处理,再通过括号 匹配算法准确拼接出单道题目,使逻辑更加清晰。
• 为了防止用户多次提交重复答案,使用雪花算法为每次答题分配唯一ID,并通过数据库主键实现幂 等设计,避免了重复的脏数据。
• 使用 Caffeine 本地缓存 AI评分对应的答案,提高评分性能(从11s到9ms)的同时节约成本; 此外使 用 Redission 解决缓存击穿的问题。