Skip to content

Latest commit

 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 沐梧AI解题系统 V26.4

基于通义千问多模态大模型的智能解题、批改作业、错题管理、智能出题系统

Version Python FastAPI React MySQL


📋 目录


✨ 核心功能

🤖 AI解题与批改

  • OCR识别 - 自动识别题目文字和LaTeX公式
  • 智能解答 - 通义千问VL-Max提供详细解题步骤
  • 作业批改 - 自动识别错误,给出改进建议
  • 连续对话 - 支持追问和深入讲解

📚 错题本管理

  • 自动保存 - 批改时自动保存错题到数据库
  • 知识点标签 - AI自动提取并分类知识点
  • 分类筛选 - 按学科、年级、知识点筛选
  • 复习追踪 - 记录复习次数和时间

📝 智能出题系统

  • 基于错题生成 - 根据错题知识点生成针对性练习
  • 网络辅助出题 - 爬取7大题库网站真实题目
  • 自定义参数 - 学科/年级/难度/题型/题量
  • LaTeX支持 - 完美支持数学公式

📄 试卷导出

  • PDF格式 - LaTeX公式完美渲染,适合打印
  • DOCX格式 - Word文档,方便编辑
  • 双模式导出:
    • 教师用卷 - 带答案、解析、知识点
    • 学生用卷 - 纯题目,预留答题空间

🔄 大模型切换

  • 支持5种通义千问模型API切换
  • 统一接口,一行代码切换
  • 集成评测框架

🛠️ 技术栈

后端 (FastAPI)

  • 框架: 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 + TypeScript)

  • 框架: React 18 + TypeScript
  • 构建工具: Vite 6
  • 数学渲染: MathJax 3
  • 图片裁剪: react-image-crop
  • Markdown: marked

数据库

  • MySQL 8.0
  • 表结构: 用户、题目、试卷、错题、对话历史
  • 连接池: 5个连接,支持自动重连

📚 技术文档

核心文档

功能文档


🚀 快速开始

1. 环境要求

  • Python: 3.9 - 3.13
  • Node.js: 16+
  • MySQL: 8.0+
  • 操作系统: Windows / Linux / macOS

2. 安装依赖

后端依赖

cd backend
pip install -r requirements.txt

前端依赖

cd frontend/vite-project
npm install

3. 配置环境变量

创建 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

4. 初始化数据库

# 方法1:使用MySQL命令行
mysql -h 14.103.127.20 -u edu -p mathsolver < backend/database_schema_v26_image_support.sql

# 方法2:使用Navicat/MySQL Workbench导入SQL文件

5. 启动服务

Windows用户(推荐)

# 双击启动
【启动】数据库版本系统.bat

手动启动

启动后端:

cd backend
python main_db.py

启动前端:

cd frontend/vite-project
npm run dev

6. 访问系统


📖 功能详解

🎯 AI解题与批改

解题模式

  1. 上传题目图片
  2. 输入提示(可选):"详细解答这道题"
  3. AI自动识别题目并给出解答

批改模式

  1. 上传作业图片
  2. 输入学生答案(可选)
  3. 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)

📤 试卷导出

PDF导出(推荐)

// 导出教师用卷(带答案)
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排版,适合打印
  • ✅ 自动添加页码

DOCX导出

POST /export
{
  "question_ids": ["id1", "id2"],
  "title": "数学练习卷",
  "mode": "teacher",
  "format": "docx"
}

DOCX特点:

  • ✅ Word文档,方便编辑
  • ✅ 彩色标记(答案绿色、解析橙色)
  • ⚠️ LaTeX显示为源码(技术限制)
  • ⚠️ 图片显示为提示文字

📚 版本历史

V26.4 (2025-11-02) - 历史记录数据库保存 💾

核心更新:

  1. 自动保存会话 - 做题/改题记录自动保存到数据库
  2. 历史记录加载 - 点击历史记录恢复完整对话
  3. 删除功能 - 支持删除无用历史记录
  4. 跨设备同步 - 数据持久化,重启不丢失

技术实现:

  • 双层存储(内存+数据库)
  • 软删除机制(可恢复)
  • 批量加载优化(限制50/100条)
  • 完整消息历史保存

用户体验:

  • 自动保存,无需担心数据丢失
  • 快速加载历史对话
  • 可删除无用记录
  • 跨浏览器/设备访问相同历史

V26.3 (2025-11-02) - 智能化全面升级 🌟

核心更新:

  1. 智能学科识别 - 批改模式自动识别学科和年级
  2. 学生卷优化 - 生成题目时分离题干和解析
  3. 爬虫功能完善 - 7大题库网站智能爬取

技术亮点:

  • AI自动识别学科和年级(准确率>90%)
  • 题目字段分离(题干/答案/解析独立存储)
  • 智能关键词生成(7种搜索策略)
  • 多源爬取(菁优网、组卷网等7个网站)
  • 图片自动下载和Base64转换

用户体验:

  • 错题本自动分类到学科和年级
  • 学生用卷完全去除答案和解析
  • 网络搜索增加题目多样性

V26.2 (2025-11-02) - 多功能优化版 🔥

核心更新:

  1. PDF导出LaTeX修复 - 公式完美渲染,不再显示源码
  2. DOCX格式导出 - 新增Word文档导出功能
  3. 学生卷/教师卷 - 双模式导出,满足不同需求
  4. AI风格人性化 - 解析更像教师讲课,无AI痕迹
  5. 题目分离优化 - 多道题目稳定分离显示
  6. 图片导出支持 - PDF中正确显示题目图片
  7. 知识点分类API - 按学科/年级分类展示

技术改进:

  • 移除markdown.markdown()避免破坏LaTeX
  • 使用python-docx生成Word文档
  • 优化AI提示词,强化输出格式
  • 增强题目解析逻辑,支持多种分隔符
  • 支持Base64图片在PDF中显示

V26.1 (2025-11-02) - 智能爬虫优化

核心更新:

  1. ✅ 搜索关键词优化(5组→7组)
  2. ✅ 链接提取增强(3种策略+降级机制)
  3. ✅ 内容识别准确率提升50%
  4. ✅ LaTeX识别支持6种格式
  5. ✅ 图片智能过滤和压缩
  6. ✅ 使用lxml提升解析速度200%

V26.0 (2025-10-30) - 智能爬虫与图片支持

核心更新:

  1. ✅ 智能网络爬虫(5种搜索策略)
  2. ✅ 图片自动下载和Base64转换
  3. ✅ LaTeX公式多源识别
  4. ✅ 异步并发爬取(aiohttp)
  5. ✅ 数据库字段扩展(crawled_image_urls)

V25.2 (2025-10-25) - 模块化重构

核心更新:

  1. ✅ 连续对话功能
  2. ✅ 错题自动保存
  3. ✅ 学科/年级选择
  4. ✅ 数据库schema升级

V25.1 (2025-10-20) - MySQL数据库集成

核心更新:

  1. ✅ MySQL数据库替换JSON
  2. ✅ 用户认证系统(注册/登录)
  3. ✅ JWT令牌认证
  4. ✅ 数据隔离

V25.0 (2025-10-15) - 完整系统升级

核心更新:

  1. ✅ PDF导出(MathJax渲染)
  2. ✅ 网络辅助出题
  3. ✅ 微信小程序API

❓ 常见问题

Q1: PDF中LaTeX公式还是显示源码?

A: 确保已更新到V26.2版本,并重启后端服务。

# 检查版本
git pull
pip install -r backend/requirements.txt --upgrade

# 重启后端
python backend/main_db.py

Q2: DOCX导出失败?

A: 检查是否安装了python-docx依赖。

pip install python-docx==1.1.2

Q3: 生成的题目合并显示?

A: 删除旧题目,用新提示词重新生成。V26.2已优化AI提示词,确保题目正确分离。

Q4: 网络爬虫找不到题目?

A:

  1. 检查网络连接
  2. 等待几分钟后重试
  3. 使用更常见的知识点(如"函数"、"力学")

Q5: 图片在导出的PDF中不显示?

A: 确保题目有image_url字段,V26.2已支持PDF中显示图片。

Q6: 如何切换大模型?

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

API文档

问题反馈

提供以下信息以便快速解决:

  1. 完整的后端输出日志
  2. 复现步骤
  3. 前端截图
  4. 浏览器Console日志(F12)

📄 许可证

本项目仅供学习和研究使用。


🎉 致谢

  • 阿里云通义千问 - 提供强大的多模态AI能力
  • FastAPI - 现代化的Python Web框架
  • React - 构建用户界面的JavaScript库
  • MathJax - LaTeX公式渲染
  • 所有贡献者和用户

当前版本: V26.4
最后更新: 2025-11-02
维护状态: 🟢 活跃开发中

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages