# 系统架构设计 ## 整体架构 ``` ┌─────────────────────────────────────────────────────────┐ │ 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防护 - 文件上传安全检查 - 数据库参数化查询 - 敏感信息加密存储