# xl-backend
**Repository Path**: NBz/xl-backend
## Basic Information
- **Project Name**: xl-backend
- **Description**: 小鹿老师AI智能作业批改,基于 SpringBoot+Vue3 开发的 K12 教育AI平台,支持AI智能组卷、作业自动批改、作文批改、OCR 识别、学情分析,开源教育 AI 后端系统。
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 7
- **Created**: 2026-04-15
- **Last Updated**: 2026-04-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
小鹿老师AI智能作业批改
基于SpringBoot 3.x + Java 21开发的AI辅助教育平台
## 项目简介
小鹿老师是一款面向K12教育的AI个性化平台,旨在通过AI技术辅助老师完成组卷和作业批改等教学任务。
平台核心功能包括:
- AI智能组卷:支持智能组卷、错题组卷、知识点组卷、分层组卷等多种组卷模式
- AI作业批改:自动批改学生作业,生成批改结果和详细报告
- AI答案生成:自动生成题目答案和解析
- 学情分析:提供学生报告、班级报告、知识点掌握分析等多维度数据分析
## 中台技术栈
| 技术组件 | 说明 | 版本 |
| :--- | :--- | :--- |
| 核心框架 | Spring Boot | 3.5.6 |
| 编程语言 | Java | 21 |
| 持久层框架 | MyBatis Plus | 3.5.5 |
| 关系型数据库 | MySQL | 8.0.36 |
| 缓存中间件 | Redis | 7.2.4 |
| 消息队列 | RocketMQ / Redis Stream | RocketMQ 5.1.4 / Redis Stream 7.2.4 |
| AI 集成 | 支持与外部 AI 服务集成进行题目处理 | 支持OpenAI/国内大模型(如通义千问/文心一言)适配 |
## Python AI 服务
| 技术组件 | 说明 | 版本 |
| :--- | :--- | :--- |
| Web 框架 | FastAPI | 0.115.0 |
| ASGI 服务器 | Uvicorn | 0.31.0 |
| 数据校验 | Pydantic | 2.5.0 |
| 模型上下文协议 | MCP / FastMCP | 0.9.0 / 0.2.0 |
| 图像处理 | OpenCV-Python | 4.8.0 |
| 数值计算 | NumPy | 1.24.0 |
| PDF 处理 | PyMuPDF | 1.23.0 |
| OCR 引擎 | RapidOCR | 4.0.0 |
| 版面分析 | DocLayout-YOLO | 0.0.1 |
| 对象存储 SDK | Aliyun OSS2 | 2.19.1 |
| 日志工具 | Loguru | 0.7.0 |
## 前端技术栈
| 技术组件 | 说明 | 版本 |
| :--- | :--- | :--- |
| 核心框架 | Vue | 3.3.8 |
| 构建工具 | Vite | 5.0.10 |
| UI 组件库 | AntD(业务系统) | 5.12.8 |
| UI 组件库 | Element Plus(AI配套系统) | 2.4.2 |
| 开发语言 | TypeScript | 5.2.2 |
| 状态管理 | Pinia (替代 vuex5) | 2.1.7 |
| 工具库 | VueUse | 10.6.1 |
| 国际化 | Vue I18n | 9.6.5 |
| 路由管理 | Vue Router | 4.2.5 |
| CSS 框架 | UnoCSS (原子 css) | 0.57.4 |
| 图标库 | Iconify | 3.1.1 |
| 富文本编辑器 | WangEditor | 5.1.23 |
| Canvas | fabric | 7.1 |
## 模块说明
| 模块 | 说明 |
| :--- | :--- |
| ipta-server | 启动主模块 |
| ipta-framework | 框架公共组件(WebSocket、MQ、Redis等) |
| ipta-module-system | 系统管理模块(用户、权限、租户等) |
| ipta-module-homework | 核心业务模块(作业、题目、组卷、批改等) |
| ipta-module-oauth | 认证授权模块(OAuth2) |
| ipta-module-report | 报表模块 |
| ipta-module-ai | AI能力封装模块(统一对接多厂商大模型/OCR服务) |
## 作业/试题核心功能
### 1. 组卷系统
- 智能组卷:根据章节、知识点自动选题组卷
- 错题组卷:根据学生错题记录智能生成复习试卷
- 知识点组卷:按指定知识点范围组卷
- 分层组卷:根据学生水平分层布置作业
- 个性化组卷:支持按学生学习节奏/薄弱点动态调整题目难度
### 2. 作业管理
- 作业发布与布置
- 作业提交与跟踪
- 作业状态监控
- 作业批量点评:支持AI生成批量作业评语,支持手动编辑后下发
### 3. AI批改
- 自动批改客观题
- AI辅助批改主观题
- 批改结果统计分析
- 手写识别优化:提升中小学生手写字体识别准确率至98%+
### 4. 学情报告
- 学生个人报告:知识点掌握度、错题分布、学习趋势
- 班级报告:班级整体表现、分层分析、对比分析
- 教材章节分析、核心素养分析
- 家校互通报告:支持一键生成家长版学情报告,简化家校沟通成本
## OCR识别和解析功能
### 1. 试卷解析与切题
- 多格式解析:支持 PDF、Word、图片等教材/教辅文件上传解析
- 智能版面分析:自动识别题目区域、题号、题型和结构层级
- 自动切题出图:按题目边界批量裁切并生成题目图片
- 分页处理能力:支持多页试卷按页加载、按页编辑、按页保存
- 多语种支持:新增英文/数学公式/OCR识别适配
### 2. 可视化标注与编辑
- 题框可视化编辑:支持题目边界框拖拽、缩放、微调
- 答题区标注:支持答题区域新增、修改、删除与批量管理
- 画布联动操作:题目树、画布、属性面板三方联动高亮
- 重叠对象反选:支持重叠区域对象切换与锁定编辑(题框/答题框)
- 快捷键操作:新增批量编辑快捷键,提升标注效率30%+
### 3. 编辑态数据管理
- 编辑中间态管理:通过 edit.json 管理可视化编辑数据
- 懒加载机制:按页加载编辑数据,降低大文档加载压力
- 脏页保存机制:仅保存变更页,减少重复写入和网络请求
- 版本并发控制:支持 base_version/edit_version 校验,避免多人覆盖
- 自动备份:新增编辑数据自动备份机制,防止意外丢失
### 4. 重切题与结果发布
- 保存并切题:将编辑结果一键应用并触发重新切题
- 结果回写同步:将编辑后的结构化结果回写 document_result
- 批量生成输出:输出题目切图、结构化 JSON、页级统计信息
- 异步上传 OSS:切题结果与结构化文件上传对象存储并可追踪
- 多格式导出:支持切题结果导出为Excel/Word/PDF格式
### 5. 作业批改与作文批改
- 作业批改:上传作业图片后进行视觉理解与答案匹配
- 作文批改:作文 OCR 提取后进行内容分析、评分与建议生成
- 多模态分析:结合 OCR 与 LLM 提升语义理解能力
- 后台任务化处理:主流程快速响应,详细结果异步回调
- 作文批改增强:支持作文错别字/病句/标点自动纠错,提供润色建议
### 6. 流程监控与任务管理
- 任务全链路跟踪:支持批次、文档、页级处理状态监控
- 历史任务回溯:支持从历史记录恢复并继续可视化编辑
- 异常重试机制:失败任务可重试并继续后续处理
- 进度可视化:支持解析进度、日志、结果状态实时展示
- 任务优先级:新增任务优先级配置,支持紧急任务插队处理
### 7. 系统架构能力
- Pipeline 流水线:预处理、OCR、对齐、切题、组装模块化编排
- 策略化切题:按题型/场景使用不同切题策略
- 云端+本地引擎:支持本地 OCR 与阿里云 OCR 混合能力
- 高并发与可扩展:支持批量任务处理、异步队列和服务解耦
- 容器化部署:新增Docker Compose一键部署脚本,简化环境搭建
## 测试账号
| 账号 | 密码 | 说明 |
| :--- | :--- | :--- |
| 13866666666 | Aa123456 | 测试账号 |
| 13888888888 | Aa123456 | 管理员测试账号 |
## 快速开始
### 环境要求
- JDK 21+
- Maven 3.8+
- MySQL 8.0+
- Redis 6.0+
- Docker 20.10+(可选,用于容器化部署)
### 构建部署
```bash
# 克隆项目后,进入项目根目录
cd ipta-backend
# 打包构建
mvn clean install -DskipTests
# 启动服务(需配置数据库、Redis等)
cd ipta-server
mvn spring-boot:run
# 容器化部署(新增)
# docker-compose up -d