Skip to content

SunIsland06/Math-Learning-Agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Math-Learning-Agent — 数智教师

面向大学工科数学的 AI 智能教学系统

体验网址:http://agent.sun-island.cn/

数智教师是一位能记住你的学习情况、严格遵循指定教材、引导式教学、自动生成学习报告和测验的智能导师。通过 LLM + RAG 知识库 + 工具调用 + 长期记忆,实现"教、练、测、评"一体化教学闭环。


已知BUG(待修复)

  • 生成的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 多引擎联网搜索

功能亮点

极简 UI

  • 三栏布局:左侧会话列表 | 中央对话区 | 右侧快捷工具
  • 右侧面板:常用提示词一键发送、功能开关、快捷操作
  • 桌面端 + 移动端完美适配(移动端面板自动折叠为滑出式遮盖层)
  • 暗色/亮色主题一键切换,毛玻璃半透明效果

多模态输入

  • 上传图片(手写/印刷)、PDF 教材、Word 文档、Markdown 文件
  • 图片自动视觉识别,PDF/Word 自动提取文本

RAG 教材检索

  • 基于教材构建向量知识库,回答附带原文出处
  • 三合一混合检索:语义向量 + 关键词命中 + 学科分类匹配
  • 支持查询扩展(数学术语同义词映射),提高召回率

智能引导式教学

  • 推导型:分步引导、反问验证,不直接给答案
  • 知识型:清晰准确回答,主动拓展关联知识
  • 模糊型:温和追问,帮助学生明确需求

11 个数学技能

技能 功能
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(用于向量嵌入)

1. 克隆项目

git clone https://github.com/SunIsland06/Math-Learning-Agent.git
cd Math-Learning-Agent

2. 安装依赖

pip install -r requirements.txt

3. MySQL 配置

CREATE DATABASE flask_chat DEFAULT CHARACTER SET utf8mb4;

修改 src/web/app.py 第 53 行的数据库连接字符串。

4. API 配置

编辑 config/global.yml

APIUrl: https://api.deepseek.com/chat/completions
key: YOUR_DEEPSEEK_API_KEY
model: deepseek-v4-pro

5. Ollama 配置

ollama pull nomic-embed-text

6. 构建知识库(可选)

# 将教材 .md 文件放入 src/rag/textbook/,然后依次运行:
python src/rag/chunking.py      # 分块 + 自动分类
python src/rag/embedding.py     # 向量化
python src/rag/database.py      # ChromaDB 入库

7. 启动

python src/web/app.py

访问 http://127.0.0.1:5000


项目架构

Math-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


License

MIT License

About

数学分析大作业——"数智教师"智能体(Agent)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors