基于大模型的智能教学平台,支持多课程学习状态追踪与个性化辅导——以研究生专业英文写作课程为试点
本项目是一个以学生为中心的智能教学平台,旨在通过AI技术实现对学生学习状态的长期追踪与个性化辅导。平台采用微服务架构,支持多角色权限管理,当前以华中科技大学研究生专业英文写作课程为试点应用场景。
- 📊 学生状态追踪: 跨课程、长期化的学习档案体系,支持学习轨迹分析
- ✍️ 写作类型感知: 区分文献综述、课程论文、学位论文等类型的差异化评估
- 🤖 个性化辅导: 基于大语言模型的智能写作反馈与改进建议
- 📱 跨端一致体验: Web端与移动端功能对等,适配企业微信环境
- 🔐 安全认证: JWT + RBAC 权限控制体系
- 📈 能力发展追踪: 事件溯源模式记录学习行为,支持纵向分析
| 组件 | 技术选型 | 版本 |
|---|---|---|
| Web 前端 | React + TypeScript + Vite | 19+ |
| 移动端(可选) | Expo (React Native) | - |
| 后端 | Go + Gin + GORM | 1.24+ |
| AI服务 | Python + FastAPI | 3.9+ |
| 仿真服务 | Python + FastAPI + NumPy/SciPy | 3.9+ |
| 数据库 | MySQL | 8.4+ |
| 对象存储 | MinIO | - |
| 容器化 | Docker + Docker Compose | - |
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 前端应用 │ │ 后端API │ │ AI服务 │
│ React + Vite │◄──►│ Go + Gin │◄──►│ FastAPI │
│ Port: 5173 │ │ Port: 8080 │ │ Port: 8001 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐ ┌─────────────────┐
│ 数据库 │ │ 仿真服务 │
│ MySQL │ │ FastAPI │
│ Port: 3306 │ │ Port: 8002 │
└─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ 对象存储 │
│ MinIO │
│ Port: 9000/9001 │
└─────────────────┘
project-root/
├── 📄 README.md # 项目总览和导航
├── 📄 CHANGELOG.md # 变更日志
├── 📄 CONTRIBUTING.md # 贡献指南
├── 📄 TECHNICAL_DEBT.md # 技术债务跟踪
├── 📄 .gitignore # Git忽略规则
│
├── 💻 code/ # 代码库
│ ├── 🌐 frontend-react/ # Web 前端 (React + Vite)
│ ├── ⚙️ backend/ # 后端代码 (Go)
│ ├── 🤖 ai_service/ # AI服务 (Python)
│ ├── 🔬 simulation/ # 仿真服务 (Python)
│ ├── 📦 shared/ # 共享资源
│ ├── 🚀 deployment/ # 部署配置(历史/备用)
│ └── 📜 scripts/ # 构建脚本
│
├── 📱 mini-app-expo/ # 移动端(Expo,可选)
│
├── 🎓 academic/ # 学术材料
│ ├── 📖 thesis/ # 毕业论文
│ ├── 📊 reports/ # 研究报告
│ ├── 📚 literature/ # 相关文献
│ └── 🎤 presentations/ # 演示材料
│
├── 📚 docs/ # 技术文档
│ ├── 🏗️ architecture/ # 架构文档
│ ├── 🔌 api/ # API文档
│ ├── 🚀 deployment/ # 部署文档
│ └── 💻 development/ # 开发文档
│
└── 🎨 assets/ # 静态资源
├── 🖼️ images/ # 图片资源
├── 📊 diagrams/ # 架构图
└── 📋 templates/ # 模板文件
- Docker & Docker Compose
- Go 1.24+ (开发环境)
- Node.js 18+ (开发环境)
- Python 3.9+ (开发环境)
# 1. 克隆项目
git clone <repository-url>
cd <repository-dir>
# 2. 配置环境变量
cp code/.env.example code/.env
# 编辑 code/.env 文件,配置数据库和AI服务参数
# 3. 启动所有服务
cd code
docker compose up -d --build
# 或:docker-compose up -d --build
# 4. 验证服务状态
curl http://localhost:8080/healthz # 后端服务
curl http://localhost:8001/healthz # AI服务
curl http://localhost:8002/healthz # 仿真服务cd code/backend
go mod download
go run cmd/server/main.gocd code/frontend-react
npm install
npm run devcd code/ai_service
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8001cd code/simulation
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8002主要配置项说明:
# 数据库配置
MYSQL_ROOT_PASSWORD=your_root_password
MYSQL_DATABASE=emfield_platform
MYSQL_USER=emfield_user
MYSQL_PASSWORD=your_password
# 后端配置
BACKEND_JWT_SECRET=your_jwt_secret
BACKEND_CORS_ORIGINS=http://localhost:5173
# AI服务配置
LLM_BASE_URL=https://api.openai.com/v1
LLM_API_KEY=your_api_key
LLM_MODEL=qwen-plus
# GraphRAG 配置(可选,本地知识库)
GRAPH_RAG_ENABLED=false
GRAPH_RAG_INDEX_PATH=app/data/graphrag_index.json
GRAPH_RAG_SEED_TOP_K=4
GRAPH_RAG_EXPAND_HOPS=1
GRAPH_RAG_FINAL_TOP_K=8
GRAPH_RAG_MAX_CONTEXT_CHARS=4000
# MinIO 配置(可选,用于文件上传/资源存储)
MINIO_ENDPOINT=localhost:9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin123
MINIO_BUCKET=emfield-uploads
MINIO_USE_SSL=false
MINIO_SIGNED_URL_EXPIRY=168h
# 企业微信配置(可选)
WECOM_CORPID=your_corp_id
WECOM_AGENTID=your_agent_id
WECOM_SECRET=your_secret系统初始化时会创建以下默认账号:
| 角色 | 用户名 | 密码 | 权限 |
|---|---|---|---|
| 管理员 | admin | admin123 | 全部权限 |
| 教师 | teacher | teacher123 | 课程管理、AI/仿真 |
| 学生 | student | student123 | 课程查看、AI/仿真 |
我们欢迎所有形式的贡献!请查看 贡献指南 了解详细信息。
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
- Go: 遵循
gofmt和golint规范 - TypeScript: 遵循 ESLint 配置
- Python: 遵循 PEP 8 规范
- 提交信息: 遵循 Conventional Commits 规范
- ✅ 基础架构搭建完成
- ✅ 用户认证与权限管理
- ✅ 课程管理功能
- ✅ AI答疑服务
- ✅ 电磁场仿真服务
- 🚧 学情分析功能开发中
- 📋 企业微信集成计划中
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 项目维护者: [项目团队]
- 邮箱: [联系邮箱]
- 项目主页: [项目链接]
感谢所有为本项目做出贡献的开发者和研究人员。