# webagent
**Repository Path**: stdin2/webagent
## Basic Information
- **Project Name**: webagent
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-29
- **Last Updated**: 2026-10-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# DeepMaker
### 基于多模态大模型的数字化教学资源制作系统
**让课程资料成为可检索的知识,让教学想法成为可复用的资源。**
私有知识库 · RAG 辅助生成 · 交互式 PPT · 多模态创作 · 教学资源管理
**DeepBug 团队 · 中国软件杯 A1 赛题项目**
[功能概览](#功能概览) · [技术亮点](#技术亮点) · [系统架构](#系统架构) · [本地运行](#本地运行)
---
## 项目简介
DeepMaker 面向教师与学生,将课程资料整理、教案编写、习题生成、课件制作和资源管理整合到同一个工作台。用户可以上传自己的教材与讲义,建立私有知识库,再围绕课程主题生成教案、习题、PPT、教学配图和讲解语音。
项目采用 **Vue 3 + Spring Boot + Spring AI** 的前后端分离架构,通过 **PostgreSQL / pgvector** 支持结构化数据与知识检索,通过 **阿里云 OSS** 保存原始文件和生成成果,串联起“资料输入 → 内容创作 → 资源沉淀”的教学工作流程。
> **一个典型场景:** 为一节课程上传参考讲义,建立知识索引,生成配套教案与练习题;确认并修改 PPT 大纲后选择模板生成课件,再补充教学插图与讲解音频,最后按学科、年级等标签管理成果。
## 功能概览
| 模块 | 核心能力 | 教学场景 |
| --- | --- | --- |
| 用户与权限 | 注册登录、JWT 认证、角色划分与数据归属校验 | 为教师与学生提供个人工作空间 |
| 私有知识库 | 知识库组织、文档上传、分块处理、异步向量化 | 按课程或专题积累教材、讲义与参考资料 |
| 教案与习题 | 结合生成参数与知识库上下文,流式返回内容 | 编写教学设计、准备课后练习 |
| 交互式 PPT | 创建会话、生成和编辑大纲、选择模板、生成课件 | 先打磨课程结构,再制作演示文稿 |
| 多模态交互 | 图像生成与理解、文字转语音、语音转文字 | 制作教学插图、讲解音频,辅助表达创作需求 |
| 资源管理 | 统一归档、标签分类、条件检索、编辑、预览与下载 | 查找、调整并复用已有教学成果 |
## 技术亮点
### 1. 让生成内容结合自己的课程资料
私有知识库采用“**上传文档 → 建立向量索引**”的两步式流程,将文件管理与 AI 处理分开。文档经解析、分块与嵌入后进入向量存储,生成时检索相关内容作为模型上下文,为教案和习题提供课程依据。
原始文件、文档元数据和向量索引分别由 OSS、业务数据表和 pgvector 承担,便于组织资料及管理文档生命周期。
### 2. PPT 创作过程可编辑、可分步推进
PPT 制作围绕会话组织:**填写需求 → 生成大纲 → 修改大纲 → 选择模板 → 生成课件**。用户在生成最终文件前即可调整内容结构,系统通过任务记录中的 `session_data` 保存会话中间数据,衔接大纲与课件生成阶段。
课件生成后,可继续制作配图与讲解语音,作为教学附件使用。
### 3. 用不同交互方式承接不同生成任务
| 任务类型 | 交互方式 | 作用 |
| --- | --- | --- |
| 习题、教案、PPT 大纲 | SSE 流式响应 | 在生成过程中逐步呈现内容 |
| 图片、语音等耗时任务 | 异步执行 + 任务状态查询 | 通过任务 ID 跟踪处理结果 |
| 生成后的教学资源 | 元数据入库 + 文件存储 | 支持后续分类、检索、编辑与下载 |
### 4. 从一次生成延伸到持续复用
生成成果进入统一的教学资源管理流程,通过资源类型、学科、年级等标签组织。用户可以调整名称、描述和内容,在后续备课时继续查找与复用,逐步积累自己的教学资料库。
## 系统架构

系统按照客户端、服务层、业务层、公共技术层与基础设施层划分职责:前端承接创作交互,后端编排知识库、生成任务和资源管理,模型服务提供文本、图像与语音能力。
| 层次 | 技术组成 | 主要职责 |
| --- | --- | --- |
| 前端交互 | 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、龙芯平台 | 反向代理、容器部署与国产平台适配方案 |
> 架构图保留开发设计文档中的技术规划;具体依赖、模型名称和部署方式以当前代码与运行配置为准。图中的部署组件及平台适配不代表本次已完成环境验证。
## 数据流设计

整个流程围绕四个业务环节展开:
1. **身份认证**:用户登录后获取令牌,后续请求携带身份信息。
2. **知识准备**:上传文件并保存元数据,按需执行文档向量化,形成可检索的课程知识。
3. **内容生成**:接收创作需求,结合知识库上下文调用模型,通过流式响应或异步任务返回结果。
4. **资源沉淀**:将成果文件和资源元数据保存,支持标签检索、内容编辑、下载与删除。
## 展示建议
演示时可以围绕同一门课程展开,完整呈现资料如何变成教学成果:
1. **建一个课程知识库**:上传讲义,展示文档列表与向量化状态。
2. **生成一组教案或习题**:选择课程资料与生成参数,展示内容逐步返回。
3. **制作一份 PPT**:生成大纲,现场修改一个章节,再选择模板生成课件。
4. **补充教学附件**:围绕同一主题生成配图或讲解语音。
5. **回到资源库**:通过标签找到成果,展示预览、编辑与下载。
## 目录结构
```text
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`](back/zhongruan-cup-web-agent/src/main/resources/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/`](back/zhongruan-cup-web-agent/src/main/resources/sql/),包含多个版本。初始化前应核对目标 schema、表结构与向量维度,选择适用脚本,不要将所有版本重复执行。真实服务凭据请保存在本地配置或环境变量中。
在仓库根目录打开终端:
```powershell
cd back/zhongruan-cup-web-agent
mvn spring-boot:run
```
默认后端地址为 `http://localhost:8080`,API 前缀为 `/api`。
### 启动前端
另开终端,在仓库根目录执行:
```powershell
cd front/zhongruan-cup-web-agent
npm install
npm run dev
```
访问 `http://localhost:3000`。Vite 默认将 `/api` 请求代理到 `http://localhost:8080`;部分接口包含直连地址,修改后端端口时需同时核对相应请求配置。
前端构建命令:
```powershell
npm run build
```