让课程资料成为可检索的知识,让教学想法成为可复用的资源。
私有知识库 · RAG 辅助生成 · 交互式 PPT · 多模态创作 · 教学资源管理
DeepBug 团队 · 中国软件杯 A1 赛题项目
DeepMaker 面向教师与学生,将课程资料整理、教案编写、习题生成、课件制作和资源管理整合到同一个工作台。用户可以上传自己的教材与讲义,建立私有知识库,再围绕课程主题生成教案、习题、PPT、教学配图和讲解语音。
项目采用 Vue 3 + Spring Boot + Spring AI 的前后端分离架构,通过 PostgreSQL / pgvector 支持结构化数据与知识检索,通过 阿里云 OSS 保存原始文件和生成成果,串联起“资料输入 → 内容创作 → 资源沉淀”的教学工作流程。
一个典型场景: 为一节课程上传参考讲义,建立知识索引,生成配套教案与练习题;确认并修改 PPT 大纲后选择模板生成课件,再补充教学插图与讲解音频,最后按学科、年级等标签管理成果。
| 模块 | 核心能力 | 教学场景 |
|---|---|---|
| 用户与权限 | 注册登录、JWT 认证、角色划分与数据归属校验 | 为教师与学生提供个人工作空间 |
| 私有知识库 | 知识库组织、文档上传、分块处理、异步向量化 | 按课程或专题积累教材、讲义与参考资料 |
| 教案与习题 | 结合生成参数与知识库上下文,流式返回内容 | 编写教学设计、准备课后练习 |
| 交互式 PPT | 创建会话、生成和编辑大纲、选择模板、生成课件 | 先打磨课程结构,再制作演示文稿 |
| 多模态交互 | 图像生成与理解、文字转语音、语音转文字 | 制作教学插图、讲解音频,辅助表达创作需求 |
| 资源管理 | 统一归档、标签分类、条件检索、编辑、预览与下载 | 查找、调整并复用已有教学成果 |
私有知识库采用“上传文档 → 建立向量索引”的两步式流程,将文件管理与 AI 处理分开。文档经解析、分块与嵌入后进入向量存储,生成时检索相关内容作为模型上下文,为教案和习题提供课程依据。
原始文件、文档元数据和向量索引分别由 OSS、业务数据表和 pgvector 承担,便于组织资料及管理文档生命周期。
PPT 制作围绕会话组织:填写需求 → 生成大纲 → 修改大纲 → 选择模板 → 生成课件。用户在生成最终文件前即可调整内容结构,系统通过任务记录中的 session_data 保存会话中间数据,衔接大纲与课件生成阶段。
课件生成后,可继续制作配图与讲解语音,作为教学附件使用。
| 任务类型 | 交互方式 | 作用 |
|---|---|---|
| 习题、教案、PPT 大纲 | SSE 流式响应 | 在生成过程中逐步呈现内容 |
| 图片、语音等耗时任务 | 异步执行 + 任务状态查询 | 通过任务 ID 跟踪处理结果 |
| 生成后的教学资源 | 元数据入库 + 文件存储 | 支持后续分类、检索、编辑与下载 |
生成成果进入统一的教学资源管理流程,通过资源类型、学科、年级等标签组织。用户可以调整名称、描述和内容,在后续备课时继续查找与复用,逐步积累自己的教学资料库。
系统按照客户端、服务层、业务层、公共技术层与基础设施层划分职责:前端承接创作交互,后端编排知识库、生成任务和资源管理,模型服务提供文本、图像与语音能力。
| 层次 | 技术组成 | 主要职责 |
|---|---|---|
| 前端交互 | Vue 3、Vite、Element Plus、Pinia、Vue Router | 页面展示、状态管理与创作流程 |
| 后端服务 | Java 21、Spring Boot 3.4.6、Spring Security、JWT | 业务接口、身份认证与访问控制 |
| AI 集成 | Spring AI、Spring AI Alibaba、DashScope SDK | 模型调用、文本生成、嵌入与多模态处理 |
| 数据持久化 | MyBatis-Plus、PostgreSQL、pgvector | 用户与资源数据、任务状态、向量检索 |
| 文件与课件 | 阿里云 OSS、文多多 API | 文件存储与 PPT 生成 |
| 设计部署环境 | Nginx、Docker、龙芯平台 | 反向代理、容器部署与国产平台适配方案 |
架构图保留开发设计文档中的技术规划;具体依赖、模型名称和部署方式以当前代码与运行配置为准。图中的部署组件及平台适配不代表本次已完成环境验证。
整个流程围绕四个业务环节展开:
- 身份认证:用户登录后获取令牌,后续请求携带身份信息。
- 知识准备:上传文件并保存元数据,按需执行文档向量化,形成可检索的课程知识。
- 内容生成:接收创作需求,结合知识库上下文调用模型,通过流式响应或异步任务返回结果。
- 资源沉淀:将成果文件和资源元数据保存,支持标签检索、内容编辑、下载与删除。
演示时可以围绕同一门课程展开,完整呈现资料如何变成教学成果:
- 建一个课程知识库:上传讲义,展示文档列表与向量化状态。
- 生成一组教案或习题:选择课程资料与生成参数,展示内容逐步返回。
- 制作一份 PPT:生成大纲,现场修改一个章节,再选择模板生成课件。
- 补充教学附件:围绕同一主题生成配图或讲解语音。
- 回到资源库:通过标签找到成果,展示预览、编辑与下载。
deepbug/
├── README.md # 项目展示入口
├── docs/images/ # 功能结构、系统架构与数据流图
├── front/zhongruan-cup-web-agent/ # Vue 前端
│ └── src/
│ ├── api/ # 业务接口封装
│ ├── components/ # 公共组件
│ └── views/ # 知识库、资源创作与管理页面
└── back/zhongruan-cup-web-agent/ # Spring Boot 后端
├── pom.xml # Java 与依赖版本
├── src/main/java/ # 接口、业务服务与基础配置
├── src/main/resources/ # 应用配置与 SQL 脚本
└── postman_*.json # 按业务场景组织的接口测试集合
上方列出教学资源系统相关目录。
- JDK 21、Maven:后端构建与运行。
- Node.js 与 npm:安装前端依赖,版本需兼容项目使用的 Vite 4。
- PostgreSQL + pgvector:保存业务数据与文本向量。
- 模型与云服务配置:按使用功能准备 DashScope、阿里云 OSS 和文多多服务凭据。
在本地配置中设置以下项目,配置入口为 application.yml:
| 配置项 | 配置内容 |
|---|---|
spring.datasource |
PostgreSQL 地址、数据库、账号及使用的 schema |
spring.ai.dashscope |
模型服务凭据、文本生成与嵌入等模型配置 |
spring.ai.vectorstore.pgvector |
向量存储参数;向量维度需与实际嵌入模型一致 |
aliyun.oss |
Endpoint、Bucket 与访问凭据 |
jwt |
本地 JWT 签名与过期时间配置 |
wenduoduo |
PPT 服务配置 |
数据库脚本位于 src/main/resources/sql/,包含多个版本。初始化前应核对目标 schema、表结构与向量维度,选择适用脚本,不要将所有版本重复执行。真实服务凭据请保存在本地配置或环境变量中。
在仓库根目录打开终端:
cd back/zhongruan-cup-web-agent
mvn spring-boot:run默认后端地址为 http://localhost:8080,API 前缀为 /api。
另开终端,在仓库根目录执行:
cd front/zhongruan-cup-web-agent
npm install
npm run dev访问 http://localhost:3000。Vite 默认将 /api 请求代理到 http://localhost:8080;部分接口包含直连地址,修改后端端口时需同时核对相应请求配置。
前端构建命令:
npm run build
