面向大学工科数学的 AI 智能教学系统
体验网址:http://agent.sun-island.cn/
数智教师是一位能记住你的学习情况、严格遵循指定教材、引导式教学、自动生成学习报告和测验的智能导师。通过 LLM + RAG 知识库 + 工具调用 + 长期记忆,实现"教、练、测、评"一体化教学闭环。
- 生成的pdf文件, markdown格式遗留
- 生成pdf文件中, 出现unicode字符
- 生成的word文档中, markdown格式遗留
| 层级 | 技术 | 说明 |
|---|---|---|
| LLM | DeepSeek API | 主力推理模型,支持多模态(文本+图片) |
| Web 框架 | Flask + Jinja2 | 后端服务和模板渲染 |
| 数据库 | MySQL + SQLAlchemy | 用户数据、会话消息持久化 |
| 向量数据库 | ChromaDB | 教材知识库和长期记忆的向量存储 |
| 嵌入模型 | Ollama (nomic-embed-text) | 文本向量化(768维) |
| 符号计算 | SymPy | 导数、积分、极限、方程求解 |
| 数值计算 | NumPy + Matplotlib | 数值运算和函数可视化 |
| MCP 协议 | Model Context Protocol | 工具服务器标准化通信 |
| 文档处理 | pdfplumber + python-docx | PDF/Word 文档解析 |
| PDF 生成 | fpdf2 | 学习报告、试卷 PDF 导出 |
| 搜索引擎 | DuckDuckGo + Bing | 多引擎联网搜索 |
- 三栏布局:左侧会话列表 | 中央对话区 | 右侧快捷工具
- 右侧面板:常用提示词一键发送、功能开关、快捷操作
- 桌面端 + 移动端完美适配(移动端面板自动折叠为滑出式遮盖层)
- 暗色/亮色主题一键切换,毛玻璃半透明效果
- 上传图片(手写/印刷)、PDF 教材、Word 文档、Markdown 文件
- 图片自动视觉识别,PDF/Word 自动提取文本
- 基于教材构建向量知识库,回答附带原文出处
- 三合一混合检索:语义向量 + 关键词命中 + 学科分类匹配
- 支持查询扩展(数学术语同义词映射),提高召回率
- 推导型:分步引导、反问验证,不直接给答案
- 知识型:清晰准确回答,主动拓展关联知识
- 模糊型:温和追问,帮助学生明确需求
| 技能 | 功能 |
|---|---|
symbolic_computation |
符号计算:求导、积分、极限、方程求解 |
graph_plotting |
2D 函数图像:多函数对比、参数方程、极坐标 |
geometry |
3D 曲面图、几何说明卡片 |
step_by_step_solver |
分步解题:自动生成逐步推理过程 |
code_execution |
代码执行:安全沙箱运行 Python 数值计算 |
latex_render |
公式渲染:LaTeX 公式转高清 PNG |
wolfram_alpha |
Wolfram Alpha 复杂计算和公式推导 |
quiz_system |
测验系统:阶梯出题、自动批改、相似题推荐 |
study_plan |
个性化学习/复习/备考计划生成 |
document_generation |
文档导出:PDF/Word/Markdown(含中文支持) |
web_search |
联网搜索:DuckDuckGo + Bing 多引擎 |
- 长期记忆:永久保存用户画像、薄弱点、错题本
- 自适应出题:根据能力动态调整题目难度
- 相似题推荐:针对错题自动推荐巩固练习
| 对比维度 | 通用大模型 | 数智教师 |
|---|---|---|
| 长期记忆 | 仅当前会话 | 学生画像、薄弱点永久保存 |
| 教材锁定 | 无法限定知识源 | 教材向量库,回答附带出处 |
| 教学策略 | 直接给答案 | 分步引导、反问检查 |
| 学习闭环 | 仅问答 | 讲解→出题→批改→报告 |
| 数学工具 | 无专用工具 | 11 个专业技能 |
| 文档导出 | 不支持 | PDF/Word/Markdown 一键下载 |
- Python 3.10+
- MySQL 8.0+
- Ollama(用于向量嵌入)
git clone https://github.com/SunIsland06/Math-Learning-Agent.git
cd Math-Learning-Agentpip install -r requirements.txtCREATE DATABASE flask_chat DEFAULT CHARACTER SET utf8mb4;修改 src/web/app.py 第 53 行的数据库连接字符串。
编辑 config/global.yml:
APIUrl: https://api.deepseek.com/chat/completions
key: YOUR_DEEPSEEK_API_KEY
model: deepseek-v4-proollama pull nomic-embed-text# 将教材 .md 文件放入 src/rag/textbook/,然后依次运行:
python src/rag/chunking.py # 分块 + 自动分类
python src/rag/embedding.py # 向量化
python src/rag/database.py # ChromaDB 入库python src/web/app.pyMath-Learning-Agent/
├── config/global.yml # 全局配置(API密钥、模型选择)
├── src/
│ ├── web/
│ │ ├── app.py # Flask Web 应用入口
│ │ ├── templates/index.html # 前端页面(三栏布局)
│ │ └── static/css/style.css # 样式(暗/亮主题)
│ ├── model/model.py # LLM 模型封装
│ ├── skill/
│ │ ├── skillManager.py # 技能自动发现
│ │ └── skillCall.py # 技能调用引擎(含图片去重)
│ ├── rag/ # RAG 检索增强
│ │ ├── chunking.py # 教材分块 + 自动分类
│ │ ├── embedding.py # 批量向量化
│ │ ├── database.py # ChromaDB 入库
│ │ └── integration.py # 混合检索(语义+关键词+分类)
│ ├── memory/memory_manager.py # 长期记忆管理
│ ├── mcp_services/
│ │ ├── mcp_manager.py # MCP 客户端管理器
│ │ └── web_search_server.py # 多引擎联网搜索
│ ├── utils/
│ │ ├── font_manager.py # CJK 字体自动下载
│ │ ├── search_filter.py # 搜索结果过滤
│ │ └── document_parser.py # 文档解析
│ └── prompt/system.md # 系统提示词
├── skill/ # 11 个技能实现
│ ├── symbolic_computation/ # SymPy 符号计算
│ ├── graph_plotting/ # 2D 函数图像
│ ├── geometry/ # 3D 几何图形
│ ├── step_by_step_solver/ # 分步解题
│ ├── code_execution/ # 安全代码执行
│ ├── latex_render/ # LaTeX 公式渲染
│ ├── wolfram_alpha/ # Wolfram Alpha
│ ├── quiz_system/ # 测验系统
│ ├── study_plan/ # 学习计划
│ ├── document_generation/ # 文档生成(PDF/Word/MD)
│ └── math-guided-teaching/ # 引导式教学策略
├── requirements.txt
└── .gitignore
上传题目求解:上传手写题图片 → 系统识别 → 判断类型 → 分步引导或直接讲解
自适应测验:输入"出几道导数题" → 阶梯出题 → 作答 → 自动批改 → 相似题推荐
生成学习报告:输入"生成本周学习报告" → 回顾薄弱点 → 一键下载 PDF
MIT License