0841b1a103
- 前端:Vue3 + TS + Element Plus,24 个页面路由(课件/组题/教案/动画/思维导图/作文批改/命题/课堂/资源/社区等) - 后端:FastAPI + SQLAlchemy + SQLite,17 个路由模块,AI 服务层含降级模板 - AI:glm-5.x 推理模型已禁用思维链,确保输出真实内容 - 修复:ai_service 两处请求体注入 enable_thinking/thinking disabled - 测试账号:13900999999 / test1234
203 lines
8.1 KiB
Markdown
203 lines
8.1 KiB
Markdown
# 系统架构设计
|
|
|
|
## 整体架构
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ Nginx 反向代理 │
|
|
├────────────────────────┬────────────────────────────────┤
|
|
│ 前端 (Vue 3 SPA) │ 静态资源 / CDN │
|
|
├────────────────────────┴────────────────────────────────┤
|
|
│ API Gateway (FastAPI) │
|
|
├──────────┬──────────┬──────────┬──────────┬─────────────┤
|
|
│ 认证模块 │ 课件模块 │ AI模块 │ 课堂模块 │ 社区模块 │
|
|
├──────────┴──────────┴──────────┴──────────┴─────────────┤
|
|
│ 服务层 (Business Logic) │
|
|
│ ┌─────────┐ ┌──────────┐ ┌─────────┐ ┌──────────────┐ │
|
|
│ │AI服务 │ │课件引擎 │ │动画引擎 │ │ 练习生成引擎 │ │
|
|
│ └─────────┘ └──────────┘ └─────────┘ └──────────────┘ │
|
|
├─────────────────────────────────────────────────────────┤
|
|
│ 数据层 (Data Layer) │
|
|
│ ┌──────────┐ ┌──────────┐ ┌─────────────────────┐ │
|
|
│ │PostgreSQL │ │ Redis │ │ 文件存储 (OSS) │ │
|
|
│ └──────────┘ └──────────┘ └─────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## 模块划分
|
|
|
|
### 1. 用户与认证模块 (auth)
|
|
|
|
- 教师注册/登录 (手机号 + 验证码)
|
|
- JWT Token 认证
|
|
- 角色权限管理 (教师/管理员)
|
|
- 个人信息管理
|
|
|
|
### 2. AI课件生成模块 (courseware)
|
|
|
|
**核心流程:**
|
|
```
|
|
教师输入 → AI理解意图 → 结构化课件大纲 → 逐页生成内容 → 互动元素注入 → 预览/编辑 → 发布
|
|
```
|
|
|
|
**子功能:**
|
|
- 文本输入 → 课件生成
|
|
- 语音输入 → 转写 → 课件生成
|
|
- 上传教材/文档 → 内容提取 → 课件生成
|
|
- 课件模板管理
|
|
- 课件在线编辑 (富文本 + 互动组件)
|
|
|
|
### 3. 教学动画模块 (animation)
|
|
|
|
**动画类型:**
|
|
- 数学: 函数图像动画、几何变换、公式推导
|
|
- 物理: 力学模拟、电路实验、光学实验
|
|
- 化学: 分子结构、化学反应过程
|
|
- 通用: 流程图动画、时间轴动画
|
|
|
|
**技术实现:**
|
|
- 基于 Canvas/SVG 的动画引擎
|
|
- AI生成动画参数配置 (JSON Schema)
|
|
- 动画模板库 + 自定义动画
|
|
|
|
### 4. 互动练习模块 (exercise)
|
|
|
|
**练习类型:**
|
|
- 游戏化练习: 贪吃蛇(单词)、消消乐(配对)、闯关
|
|
- 选择题 / 判断题 / 填空题
|
|
- 拖拽排序 / 连线匹配
|
|
- 口语跟读 (语音识别)
|
|
- AI自适应出题
|
|
|
|
**生成流程:**
|
|
```
|
|
知识点/单词表 → AI分析 → 选择游戏模板 → 生成题目 → 预览 → 发布
|
|
```
|
|
|
|
### 5. 教案生成模块 (lesson-plan)
|
|
|
|
- 根据课程标准和知识点生成教案
|
|
- 教案模板: 导入→新授→练习→总结→作业
|
|
- 支持自定义教案结构
|
|
- 教案与课件/练习关联
|
|
|
|
### 6. AI命题模块 (exam)
|
|
|
|
- 按知识点、难度、题型智能组卷
|
|
- 题型支持: 选择、填空、判断、简答、计算
|
|
- 题目去重与相似度检测
|
|
- 自动生成答案与解析
|
|
|
|
### 7. 作文批改模块 (essay)
|
|
|
|
- 多维度评分: 内容、结构、语言、书写
|
|
- 逐段/逐句批注
|
|
- 优秀范文推荐
|
|
- 常见错误统计分析
|
|
|
|
### 8. 课堂互动模块 (classroom)
|
|
|
|
- 在线授课 (WebRTC)
|
|
- 实时白板 (Canvas)
|
|
- 计时器 / 随机点名
|
|
- 课堂答题器 (实时统计)
|
|
- 课堂评价
|
|
|
|
### 9. 资源库模块 (resource)
|
|
|
|
- 个人资源管理
|
|
- 课件/动画/教案收藏
|
|
- 标签分类与搜索
|
|
- 资源版本管理
|
|
|
|
### 10. 教师社区模块 (community)
|
|
|
|
- 资源发布与分享
|
|
- 经验交流帖
|
|
- 点赞/评论/收藏
|
|
- 关注体系
|
|
|
|
## 数据库设计 (核心表)
|
|
|
|
```sql
|
|
-- 用户表
|
|
users: id, phone, name, avatar, subject, school, role, created_at
|
|
|
|
-- 课件表
|
|
coursewares: id, user_id, title, subject, grade, description,
|
|
content(JSON), status, version, created_at, updated_at
|
|
|
|
-- 动画表
|
|
animations: id, user_id, title, type, config(JSON),
|
|
thumbnail, status, created_at
|
|
|
|
-- 练习表
|
|
exercises: id, user_id, title, type, questions(JSON),
|
|
subject, knowledge_points, created_at
|
|
|
|
-- 教案表
|
|
lesson_plans: id, user_id, title, subject, grade, content(JSON),
|
|
objectives, key_points, created_at
|
|
|
|
-- 试卷表
|
|
exams: id, user_id, title, subject, questions(JSON),
|
|
answers(JSON), duration, total_score, created_at
|
|
|
|
-- 资源表
|
|
resources: id, user_id, type, title, content_ref,
|
|
tags, downloads, likes, status, created_at
|
|
|
|
-- 社区帖子表
|
|
posts: id, user_id, title, content, type, tags,
|
|
views, likes, comments_count, created_at
|
|
|
|
-- 评论表
|
|
comments: id, post_id, user_id, content, created_at
|
|
```
|
|
|
|
## AI服务架构
|
|
|
|
```
|
|
┌──────────────────────────────────────┐
|
|
│ AI Service Layer │
|
|
├──────────────────────────────────────┤
|
|
│ │
|
|
│ ┌────────────┐ ┌────────────────┐ │
|
|
│ │ Prompt模板 │ │ 教育知识库 │ │
|
|
│ │ 管理 │ │ (RAG) │ │
|
|
│ └────────────┘ └────────────────┘ │
|
|
│ │
|
|
│ ┌────────────────────────────────┐ │
|
|
│ │ LLM API 调用层 │ │
|
|
│ │ (OpenAI / 自研模型 / 本地模型) │ │
|
|
│ └────────────────────────────────┘ │
|
|
│ │
|
|
│ ┌────────────────────────────────┐ │
|
|
│ │ 输出处理与验证 │ │
|
|
│ │ (JSON Schema验证/安全过滤) │ │
|
|
│ └────────────────────────────────┘ │
|
|
│ │
|
|
└──────────────────────────────────────┘
|
|
```
|
|
|
|
### Prompt 工程
|
|
|
|
每种AI功能对应一套精心设计的Prompt模板:
|
|
|
|
1. **课件生成Prompt**: 输入教学意图 → 输出结构化课件JSON
|
|
2. **动画生成Prompt**: 输入知识点 → 输出动画参数配置
|
|
3. **练习生成Prompt**: 输入知识点/单词 → 输出游戏化练习数据
|
|
4. **教案生成Prompt**: 输入课程信息 → 输出结构化教案
|
|
5. **命题Prompt**: 输入知识点/难度 → 输出题目+答案+解析
|
|
6. **批改Prompt**: 输入作文 → 输出评分+批注+建议
|
|
|
|
## 安全设计
|
|
|
|
- JWT认证 + Refresh Token
|
|
- API限流 (Redis)
|
|
- 输入校验 (Pydantic)
|
|
- XSS/CSRF防护
|
|
- 文件上传安全检查
|
|
- 数据库参数化查询
|
|
- 敏感信息加密存储
|