基于通义千问多模态大模型的智能解题、批改作业、错题管理、智能出题系统
- OCR识别 - 自动识别题目文字和LaTeX公式
- 智能解答 - 通义千问VL-Max提供详细解题步骤
- 作业批改 - 自动识别错误,给出改进建议
- 连续对话 - 支持追问和深入讲解
- 自动保存 - 批改时自动保存错题到数据库
- 知识点标签 - AI自动提取并分类知识点
- 分类筛选 - 按学科、年级、知识点筛选
- 复习追踪 - 记录复习次数和时间
- 基于错题生成 - 根据错题知识点生成针对性练习
- 网络辅助出题 - 爬取7大题库网站真实题目
- 自定义参数 - 学科/年级/难度/题型/题量
- LaTeX支持 - 完美支持数学公式
- PDF格式 - LaTeX公式完美渲染,适合打印
- DOCX格式 - Word文档,方便编辑
- 双模式导出:
- 教师用卷 - 带答案、解析、知识点
- 学生用卷 - 纯题目,预留答题空间
- 支持5种通义千问模型API切换
- 统一接口,一行代码切换
- 集成评测框架
- 框架: FastAPI 0.116 + Uvicorn
- AI服务: 阿里云通义千问 (DashScope SDK)
- OCR: Pix2Text 1.1.4
- 图像处理: OpenCV 4.12 + Pillow 11.3
- 数据库: MySQL 8.0 (PyMySQL)
- 认证: JWT (PyJWT 2.8)
- PDF生成: Pyppeteer 1.0.2 (Headless Chrome)
- DOCX生成: python-docx 1.1.2
- 爬虫: aiohttp 3.9 + BeautifulSoup4 4.12 + lxml 4.9
- 框架: React 18 + TypeScript
- 构建工具: Vite 6
- 数学渲染: MathJax 3
- 图片裁剪: react-image-crop
- Markdown: marked
- MySQL 8.0
- 表结构: 用户、题目、试卷、错题、对话历史
- 连接池: 5个连接,支持自动重连
- Python: 3.9 - 3.13
- Node.js: 16+
- MySQL: 8.0+
- 操作系统: Windows / Linux / macOS
cd backend
pip install -r requirements.txtcd frontend/vite-project
npm install创建 backend/.env 文件:
# 阿里云通义千问API密钥
DASHSCOPE_API_KEY=sk-your-api-key-here
# MySQL数据库配置
DB_HOST=14.103.127.20
DB_PORT=3306
DB_USER=edu
DB_PASSWORD=edu@14.103.127.20
DB_NAME=mathsolver
# JWT密钥
JWT_SECRET_KEY=your-secret-key-here# 方法1:使用MySQL命令行
mysql -h 14.103.127.20 -u edu -p mathsolver < backend/database_schema_v26_image_support.sql
# 方法2:使用Navicat/MySQL Workbench导入SQL文件# 双击启动
【启动】数据库版本系统.bat启动后端:
cd backend
python main_db.py启动前端:
cd frontend/vite-project
npm run dev- 前端: http://localhost:5173
- 后端API: http://localhost:8000
- API文档: http://localhost:8000/docs
- 上传题目图片
- 输入提示(可选):"详细解答这道题"
- AI自动识别题目并给出解答
- 上传作业图片
- 输入学生答案(可选)
- AI自动批改,指出错误
特点:
- ✅ 支持LaTeX公式识别
- ✅ 支持连续追问
- ✅ 自动保存错题
- ✅ 生成知识点标签
- 按学科筛选(数学、物理、化学...)
- 按年级筛选(高一、高二、高三...)
- 按知识点筛选(函数、导数、三角函数...)
// 调用API获取分类知识点
GET /api/v2/knowledge-points/classified
// 返回格式
{
"数学": {
"高一": ["函数", "三角函数"],
"高二": ["导数", "向量"]
},
"物理": {
"高一": ["力学"],
"高二": ["电磁学"]
}
}方式1:基于错题
- 选择错题或知识点
- AI分析薄弱环节
- 生成针对性练习题
方式2:自定义参数
- 学科:数学/物理/化学/语文...
- 年级:高一/高二/高三
- 难度:简单/中等/困难
- 题型:选择题/填空题/解答题
- 题量:1-20道
方式3:网络辅助 ⭐
- 启用"允许网络搜索辅助"
- 智能爬取7大题库网站
- 获取真实考题作为参考
- 支持爬取题目图片和LaTeX公式
- 菁优网 (jyeoo.com)
- 组卷网 (zujuan.com)
- 可圈可点 (cooco.net.cn)
- 学科网 (zxxk.com)
- 作业帮 (zybang.com)
- 学而思 (xueersi.com)
- 高三网 (gaosan.com)
// 导出教师用卷(带答案)
POST /export
{
"question_ids": ["id1", "id2"],
"title": "数学练习卷",
"mode": "teacher",
"format": "pdf"
}
// 导出学生用卷(留答题空间)
POST /export
{
"question_ids": ["id1", "id2"],
"title": "数学练习卷",
"mode": "student",
"format": "pdf"
}PDF特点:
- ✅ LaTeX公式完美渲染
- ✅ 支持题目图片显示
- ✅ A4排版,适合打印
- ✅ 自动添加页码
POST /export
{
"question_ids": ["id1", "id2"],
"title": "数学练习卷",
"mode": "teacher",
"format": "docx"
}DOCX特点:
- ✅ Word文档,方便编辑
- ✅ 彩色标记(答案绿色、解析橙色)
⚠️ LaTeX显示为源码(技术限制)⚠️ 图片显示为提示文字
核心更新:
- ✅ 自动保存会话 - 做题/改题记录自动保存到数据库
- ✅ 历史记录加载 - 点击历史记录恢复完整对话
- ✅ 删除功能 - 支持删除无用历史记录
- ✅ 跨设备同步 - 数据持久化,重启不丢失
技术实现:
- 双层存储(内存+数据库)
- 软删除机制(可恢复)
- 批量加载优化(限制50/100条)
- 完整消息历史保存
用户体验:
- 自动保存,无需担心数据丢失
- 快速加载历史对话
- 可删除无用记录
- 跨浏览器/设备访问相同历史
核心更新:
- ✅ 智能学科识别 - 批改模式自动识别学科和年级
- ✅ 学生卷优化 - 生成题目时分离题干和解析
- ✅ 爬虫功能完善 - 7大题库网站智能爬取
技术亮点:
- AI自动识别学科和年级(准确率>90%)
- 题目字段分离(题干/答案/解析独立存储)
- 智能关键词生成(7种搜索策略)
- 多源爬取(菁优网、组卷网等7个网站)
- 图片自动下载和Base64转换
用户体验:
- 错题本自动分类到学科和年级
- 学生用卷完全去除答案和解析
- 网络搜索增加题目多样性
核心更新:
- ✅ PDF导出LaTeX修复 - 公式完美渲染,不再显示源码
- ✅ DOCX格式导出 - 新增Word文档导出功能
- ✅ 学生卷/教师卷 - 双模式导出,满足不同需求
- ✅ AI风格人性化 - 解析更像教师讲课,无AI痕迹
- ✅ 题目分离优化 - 多道题目稳定分离显示
- ✅ 图片导出支持 - PDF中正确显示题目图片
- ✅ 知识点分类API - 按学科/年级分类展示
技术改进:
- 移除markdown.markdown()避免破坏LaTeX
- 使用python-docx生成Word文档
- 优化AI提示词,强化输出格式
- 增强题目解析逻辑,支持多种分隔符
- 支持Base64图片在PDF中显示
核心更新:
- ✅ 搜索关键词优化(5组→7组)
- ✅ 链接提取增强(3种策略+降级机制)
- ✅ 内容识别准确率提升50%
- ✅ LaTeX识别支持6种格式
- ✅ 图片智能过滤和压缩
- ✅ 使用lxml提升解析速度200%
核心更新:
- ✅ 智能网络爬虫(5种搜索策略)
- ✅ 图片自动下载和Base64转换
- ✅ LaTeX公式多源识别
- ✅ 异步并发爬取(aiohttp)
- ✅ 数据库字段扩展(crawled_image_urls)
核心更新:
- ✅ 连续对话功能
- ✅ 错题自动保存
- ✅ 学科/年级选择
- ✅ 数据库schema升级
核心更新:
- ✅ MySQL数据库替换JSON
- ✅ 用户认证系统(注册/登录)
- ✅ JWT令牌认证
- ✅ 数据隔离
核心更新:
- ✅ PDF导出(MathJax渲染)
- ✅ 网络辅助出题
- ✅ 微信小程序API
A: 确保已更新到V26.2版本,并重启后端服务。
# 检查版本
git pull
pip install -r backend/requirements.txt --upgrade
# 重启后端
python backend/main_db.pyA: 检查是否安装了python-docx依赖。
pip install python-docx==1.1.2A: 删除旧题目,用新提示词重新生成。V26.2已优化AI提示词,确保题目正确分离。
A:
- 检查网络连接
- 等待几分钟后重试
- 使用更常见的知识点(如"函数"、"力学")
A: 确保题目有image_url字段,V26.2已支持PDF中显示图片。
A: 修改 backend/config.py 中的 ACTIVE_MODEL_KEY。
# backend/config.py
ACTIVE_MODEL_KEY = "qwen-vl-max" # 或其他模型- 完整技术报告:
【工程文档】沐梧AI解题系统完整技术报告V2.md - V26.2升级报告:
【完成】V26.2多功能升级报告.md - V26.1爬虫优化:
【完成】V26.1智能爬虫优化完成.md - 快速测试指南:
【立即测试】V26.2功能验证指南.txt
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
提供以下信息以便快速解决:
- 完整的后端输出日志
- 复现步骤
- 前端截图
- 浏览器Console日志(F12)
本项目仅供学习和研究使用。
- 阿里云通义千问 - 提供强大的多模态AI能力
- FastAPI - 现代化的Python Web框架
- React - 构建用户界面的JavaScript库
- MathJax - LaTeX公式渲染
- 所有贡献者和用户
当前版本: V26.4
最后更新: 2025-11-02
维护状态: 🟢 活跃开发中