本周,小组顺利完成异步通信架构搭建、AI微服务核心功能开发、前后端全模块开发与联调准备,项目整体进入智能化应用深化阶段。

 

 

 

一、本周整体进度概览

成员

本周核心工作

邵木凡

完成数据库表结构设计、核心实体类封装,实现登录注册、错题本、错题管理及文件上传等后端接口

邢越

搭建Python AI微服务,实现通义千问大模型接入、RabbitMQ异步通信,完成错因分析报告生成与个性化推题两大核心功能

完善Redis/RabbitMQ/MySQL环境配置,搭建RabbitMQ异步通信架构,修复路由键匹配和JSON反序列化问题

王睿

完成uni-app全模块UI设计与页面开发,实现用户端、管理端核心页面,封装全模块API请求

 

 

 

二、各模块工作详情

(一)后端架构与数据库设计(邵木凡)

1. 数据库表结构设计

表名

说明

user

用户基础信息(id、name、password、avatar、创建/更新时间、逻辑删除)

notebook

错题本实体

topic

错题实体(标题、题干、答案等)

topic_notebook

错题本与错题多对多关联

topic_picture

错题图片存储(区分题干图片与答案图片)

topic_label

错题与标签关联

2. 通用封装

  • BaseEntity:统一整合创建时间、更新时间、逻辑删除字段
  • Result<T>:统一后端响应格式
  • BaseRequest:简化接口参数传递

3. 核心接口实现

模块

功能

用户模块

登录、注册、用户信息更新,集成JWT身份认证

错题本模块

增删改查、列表获取、详情查询

错题模块

增删改查、列表获取、详情查询

文件上传

对接阿里云OSS,实现头像上传

(二)RabbitMQ异步通信架构搭建(王

1. 架构设计思路

考虑到AI模型分析题目需要数秒时间,直接HTTP同步等待会导致连接超时,因此设计基于RabbitMQ的异步流程:

text

前端上传 → picture-queue → Mock AI处理 → ai-result-queue → 返回结果

2. 核心代码

队列配置与路由键分离:

java

public static final String PICTURE_QUEUE = "picture-queue";

public static final String PICTURE_ROUTING_KEY = "picture-routing-key";

 

@Bean

public Binding pictureBinding(Queue pictureQueue, DirectExchange directExchange) {

return BindingBuilder.bind(pictureQueue).to(directExchange).with(PICTURE_ROUTING_KEY);

}

3. CompletableFuture异步等待机制

  • 发送前:创建CompletableFuture对象存入并发Map,调用future.get(30, TimeUnit.SECONDS)阻塞等待
  • 接收后:消费者收到MQ消息后通过requestId找到对应Future,调用future.complete(result)唤醒主线程

4. 关键问题解决

问题

原因

解决方案

FastJSON序列化报

@Builder注解导致无参构造缺失

补充@NoArgsConstructor

消费者无响应

路由键匹配错误

修正路由键为picture-routing-key

(三)AI微服务核心功能开发(邢越)

1. 错因分析报告

错因分析的核心流程:

text

用户提交错题 → RAG检索相关知识 → AI生成结构化报告

知识库构建:从LaTeX教材中提取知识点,按subsection粒度组织,向量化存储到FAISS。

提示词设计要点(重要经验):

  • 错误类型必须从预设分类中选择
  • 知识薄弱点要具体到知识点名称
  • 清晰约束 + 具体示例 + 结构化输出要求 = 好的提示词工程

返回的报告包含:错误类型、错误描述、知识薄弱点、正确解法、学习建议、类似题目推荐。

2. 个性化推题

当前实现纯向量检索方案:

python

def search_similar(self, query_text: str, k: int = 3) -> List[Dict]:

# 在FAISS中进行向量相似度搜索

docs = self.similarity_search(query_text, k=k)

# 从MySQL获取完整信息

# 降级方案:直接返回向量库中的简化格式

后续规划“用户画像 + 向量检索”双层架构:

text

历史错题 → MySQL统计薄弱标签 → FAISS检索 → 去重排序 → 推送

3. 与图片分析功能的集成

python

def on_picture_message(self, ch, method, properties, body):

# 1. 调用视觉模型识别题目

result = ai_service.analyze_image(url)

question_stem = result.get("question_stem", "")

 

# 2. 基于识别结果,检索类似题目(最多3道)

similar_questions = rag_service.vector_store.search_similar(question_stem, k=3)

 

# 3. 构建响应(包含分析结果和推荐题目)

response = {

"questionStem": question_stem,

"analyseQuestion": result.get("analysis", ""),

"suggestLabels": result.get("tags", []),

"recommendTopics": similar_questions

}

4. 异构架构优势

采用Java业务层 + Python AI层,通过RabbitMQ消息队列解耦:

  • Python AI生态友好,便于后续RAG、FAISS向量库落地
  • 异步解耦,避免AI耗时任务阻塞前端
  • 共享MySQL数据库,AI可实时读取错题数据

(四)前端UI与页面开发(王睿)

1. 设计规范

要素

设计

主色调

蓝紫色渐变(#667eea → #764ba2)

风格

现代简约、圆角卡片、渐变、阴影

适配

rpx单位、flex布局,兼容多端

2. 核心页面

页面

用户端

登录/注册、首页推荐、错题本、社区、院校数据、AI助手、个人中心

管理端

仪表盘、用户/帖子/评论/举报管理、系统设置、操作日志

3. 功能与交互

  • 错题本左滑编辑/删除、下拉刷新、上拉加载、空状态提示、对话气泡布局
  • 封装AppIcon、卡片、按钮等通用组件
  • 全模块API请求封装,自动携带Token

 

 

 

三、跨模块协同成果

周四名成员的工作形成了紧密的协同闭环:

text

王睿(前端UI)──API调用──→ 邵木凡(后端接口)

(RabbitMQ)

邢越(AI服务)

返回分析结果

已打通的完整链路

  1. 用户通过前端上传图片
  2. 后端通过RabbitMQ异步发送到AI服务
  3. AI服务进行错因分析并检索类似题目
  4. 结果通过消息队列返回
  5. 前端展示分析报告和推荐题目

 

 

 

四、测试效果展示

Swagger接口测试

在Swagger测试界面中正常注册、登录,/topic/uploadAI接口测试成功:

text

请求:POST /topic/uploadAI

参数:{"imageUrl": "http://xxx/example.jpg"}

 

响应:{

"code": 200,

"message": "success",

"data": {

"questionStem": "已知函数f(x) = x² + 2x + 1,求f(2)的值",

"analyseQuestion": "这是一道基础的函数求值题,考察二次函数的基本运算能力",

"analyseWrong": "常见错误:代入时符号错误,或者计算顺序混乱",

"suggestLabels": ["函数", "二次函数", "代数运算", "求值"],

"recommendTopics": [...]

}

}

错因分析报告效果

系统能够精确分类错误类型(概念理解错误/计算错误/方法选择错误/审题不清等),知识薄弱点具体到知识点名称,学习建议具有较强可操作性。

个性化推题效果

查询“导数与微分的计算”,系统推送了三道有关联的微积分题目,格式规范统一,具有较好的可读性。

 

 

 

五、本周总结

本周的开发使得错题本从一个题目“记录工具”变成了“智能学习助手”。它不仅能识别题目、回答问题,更能诊断错误原因、推荐学习方案。这种从“被动记录”到“主动指导”的转变,正是AI技术在教育领域的核心价值所在。

主要成果

  • 后端完成数据库设计、接口开发、环境优化与全量接口测试
  • AI服务完成大模型接入与消息队列通信,架构具备强扩展性
  • 前端完成全模块UI与页面开发,具备前后端联调条件
  • 项目整体进入前后端联调与AI功能深化阶段

 

 

 

六、下周计划

  1. 前后端联调:完成接口联调,实现登录、错题本等功能端到端验证
  2. RAG知识库构建:获取远程RabbitMQ地址,与Python AI团队进行真实接口对接
  3. 数据落库:实现相关接口,将AI分析结果保存到数据库
  4. 前端优化:完善前端交互,对接真实接口数据
  5. 文档完善:完善文档、注释,修复已知问题,优化代码结构
  6. 体验优化:增加WebSocket实时推送功能,让用户无感知接收AI分析结果

 

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐