当前位置: 首页 > news >正文

山东大学软件学院项目实训:基于AI大模型的智能考研助手(三)

本周的任务是着重于错题系统AI模块的开发,包含AI智能推题,OCR自动识图,AI智能分析题目并推送相关的题目等AI功能。我负责这一模块的架构,接口和具体的数据库表的设计。

设计label表,用于用户给错题设计相应的标签,作为此题的特征给AI的分析

设计topic_label表,作为错题与标签的关联,对于用户来说,一个标签可以给多个题目,一个题目也能有多个标签:

设计topic_daily_count表,用户可以自己选择每日的推题个数:

设计topic_daily表,存储用户的每日推题数据,其中type表示此题是用户自己的错题还是AI自己整合的新题,由AI端设计定时任务,每日填充此表:

设计topic_record表,记录用户对每一个错题的详细做题情况,负责交给AI进行智能分析,方便推题:

设计错题系统AI模块的接口如下:

/** *TODO * AI分析题目,将题目上传给AI分布解析 * 将信息传到消息队列中 * 在错题本页面单独的一个按钮,这里参数得到的是URL * */ @PostMapping("/uploadAI") @Operation(summary = "AI分析题目") public Result<TopicAnalyseVO> uploadAI(@RequestBody BaseRequest baseRequest){ log.info("AI分析题目参数: {}", baseRequest); TopicAnalyseVO result = topicService.uploadAI(baseRequest); return Result.success(result); } /** *TODO * 生成知识图谱 * 暂时不搞这个 * * */ @PostMapping("/generateKnowledgeGraph") @Operation(summary = "生成知识图谱") public Result generateKnowledgeGraph(@RequestBody BaseRequest baseRequest){ log.info("生成知识图谱参数,{}", baseRequest); return Result.success(); } /** *TODO * OCR识别文字,这里参数得到的是图片URL * */ @PostMapping("/ocr") @Operation(summary = "OCR识别文字") public Result<OCRTextVO> ocr(@RequestBody BaseRequest baseRequest){ log.info("OCR识别文字参数,"); return Result.success(); } /** *TODO * 做题,即修改topic_record * 如果一开始record中没有,就新建一个 *如果检测到 */ @PostMapping("/doTopic") @Operation(summary = "做题") public Result doTopic(@RequestBody BaseRequest baseRequest){ log.info("做题参数,{}", baseRequest); return Result.success(); } /** *TODO * 获取每日推题 * 通过访问日常题库,获取每日题 * 根据用户id在推题表中查找 * 可以从自己的错题里面找,也可以AI生成新的 * 不用访问消息队列 */ @PostMapping("/getDailyTopic") @Operation(summary = "获取每日推题") public Result<List<TopicVO>> getDailyTopic(){ log.info("获取每日推题参数"); return Result.success(); } //TODO 设置每天推送的题数 @PostMapping("/setDailyTopicNum") @Operation(summary = "设置每天推送的题数") public Result setDailyTopicNum(@RequestBody TopicDailyCountDTO topicDailyCountDTO){ log.info("设置每天推送的题数参数,{}", topicDailyCountDTO); return Result.success(); }

AI分析方式为业务后端接收到前端传来的数据,然后通过消息队列传给AI后端,再通过消息队列监听获得AI分析之后的结果。在此设计各个Package类,用于表示传给消息队列中的数据结构:

//用来发送图片url的包 @Data public class UrlPackage { private String url; private Long userId; // 请求ID,用于关联请求和响应 private String requestId; }
@Data public class TopicAnalysePackage { @Schema(description = "请求ID,用于关联请求和响应") private String requestId; @Schema(description = "题干") private String questionStem; @Schema(description = "题目解析") private String analyseQuestion; @Schema(description = "用户错点分析") private String analyseWrong; @Schema(description = "建议标签") private List<String> suggestLabels; @Schema(description = "同类题推荐") private List<TopicVO> recommendTopics; }

创建相关消息队列:

/** * 创建图片发送队列 */ @Bean public Queue pictureQueue() { return QueueBuilder.durable(PICTURE_QUEUE).build(); } /** * 创建AI结果队列 */ @Bean public Queue aiResultQueue() { return QueueBuilder.durable(AI_RESULT_QUEUE).build(); }

撰写相关的文档,后端接口文档(节选):

前端UI的UML图:

http://www.jsqmd.com/news/753614/

相关文章:

  • YOLO11涨点优化:特征融合优化 | 引入RepPAN结构,基于重参数化技术重构YOLO11的特征金字塔
  • Taotoken计费透明化如何让个人开发者清晰掌控预算
  • 2026廊坊卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • 别再为笔记本烧录STM32发愁了!手把手教你用CH340模块搞定程序下载(附FlyMcu配置)
  • Scrum Meeting 07
  • 检索增强世界模型(R-WoM)原理与应用实践
  • 【刷题】力扣739.每日温度
  • 基于Go与Wails的本地AI智能体WinClaw:原理、部署与Python技能扩展
  • 避坑指南:MindFormers框架中tokenizers版本兼容性引发的那些‘坑’(以ChatGLM2为例)
  • 如何快速配置ViGEmBus虚拟手柄驱动:Windows游戏兼容性终极解决方案
  • 别再复制粘贴了!手把手教你为STM32F103C8T6搭建一个干净、可复用的固件库工程模板
  • 终极德州扑克GTO求解器:5个快速提升扑克水平的免费工具
  • 2026拉萨卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • YOLO11涨点优化:Neck二次创新 | 融合FPT (Feature Pyramid Transformer),在空间、通道、尺度三个维度全方位交互
  • kaggle cli无法下载大数据集
  • 2026济南卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • VECT 2.0勒索软件深度剖析:伪装成加密工具的致命数据擦除器
  • 【C语言】static 关键字详解
  • LeetCode 73. matrix置0(文章重点是怎样打印二维数组)
  • 从H桥驱动到电源防反接:手把手教你选型MOS管(附NMOS/PMOS实战对比)
  • 手把手教你配置KingbaseES V8R6,搞定等保2.0数据库测评里的身份鉴别与访问控制
  • NCSC预警2026:AI引爆全球补丁浪潮 网络安全新常态深度解析与企业应对指南
  • 2026杭州卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • 利用 Taotoken 模型广场为不同任务快速匹配合适的大模型
  • Axolotl是什么?一文带你入门大模型微调框架-原理源码解析
  • CanMV K230实战:把手写数字识别模型‘塞’进边缘端,性能与精度实测
  • 别再为脑网络数据发愁了!手把手教你用BrainGB复现GNN基准实验(附完整代码)
  • 如何快速构建智能四足机器人:openDogV2完整开发指南
  • 2026福州卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • CVE-2026-41940深度剖析:cPanel/WHM零日认证绕过漏洞如何让百万服务器裸奔