项目介绍: 本项目是一款基于 Spring Boot + Redis + Chat GLM + Vue3 + Vite + RxJava + SSE的AI答题应用平台。它提供了快速生成题目和制作应用的功能,用户可以在线答题,并得到基于多种评分算法或AI的回答总结。管理员可以对整站内容进行集中管理,进行统计分析。
1. 库表设计:根据业务需求设计了用户表、应用表、题目表、评分结果表和用户答题表等库表。其中,题目表采用JSON存储复杂的嵌套题目和选项,以便于维护扩展,并通过给题目表添加appId索引来提升检索性能。
2. 评分模块:利用策略模式实现了多种用户回答评分算法,如统计得分、AI评分等。全局执行器会扫描策略类上的自定义注解并选取相应的策略,相较于if-else判断逻辑,提高了系统的可扩展性。
3. 基于RxJava的操作符链式调用处理AI异步数据流:通过使用map操作符获取并处理字符串,filter操作符过滤空值,flatMap操作符映射串为单个字符,并利用括号平衡算法准确拼接出单道题目,使得逻辑简单清晰。
4. 实现了幂等设计:为了防止用户多次提交重复答案,针对每次答题分配了唯一id,采用雪花算法生成,并通过数据库主键实现了幂等设计,避免了重复的脏数据。
5. 数据库表的分片处理:为了应对用户答题数的增长,通过配置Sharding JDBC,采用取模分片算法,根据应用id对用户答题记录进行分表处理,提高了单表查询性能和可扩展性。
点击空白处退出提示
评论