Files
jiaoyu/docs/architecture.md
Zhang Jing Xuan 0841b1a103 智教助手平台:完整初始化
- 前端:Vue3 + TS + Element Plus,24 个页面路由(课件/组题/教案/动画/思维导图/作文批改/命题/课堂/资源/社区等)
- 后端:FastAPI + SQLAlchemy + SQLite,17 个路由模块,AI 服务层含降级模板
- AI:glm-5.x 推理模型已禁用思维链,确保输出真实内容
- 修复:ai_service 两处请求体注入 enable_thinking/thinking disabled
- 测试账号:13900999999 / test1234
2026-07-29 16:29:10 +08:00

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防护
- 文件上传安全检查
- 数据库参数化查询
- 敏感信息加密存储