Skip to content

Latest commit

 

History

History
188 lines (130 loc) · 6.35 KB

File metadata and controls

188 lines (130 loc) · 6.35 KB

XJTU-SlideNote

智能课程知识萃取与认知辅助工作台

一款面向大学生的课程学习辅助工具,自动从课程录播视频中提取PPT内容,并借助AI技术提供个性化的知识讲解与练习生成服务。


为什么需要 SlideNote?

在大学学习过程中,学生常常面临以下困境:

  • 课件获取困难:学校回放平台仅提供视频播放权限,教师不公开分享原版课件,只能通过反复暂停视频手动截图
  • 课后复习低效:面对信息密集的专业课PPT,缺乏有效的自学指导和知识梳理工具
  • 学习资料分散:课件、笔记、习题散落各处,难以形成系统化的学习体系

SlideNote 正是为解决这些问题而生。


核心功能

1. 课程PPT智能提取

提供课程录播视频URL或上传本地视频文件,系统自动完成:

  • 智能抽帧:基于内容感知策略,精准识别PPT画面切换的关键帧
  • 自动去重:通过图像相似度算法过滤动画效果、鼠标移动等产生的冗余画面
  • PDF合成:将有效帧按时间顺序合成为高清PDF文档(分辨率≥300dpi)

支持自定义去重阈值,适应不同课程的PPT切换频率。

2. 结构化课件管理

采用「学期 → 课程 → 课时」三级目录结构,与实际学习节奏保持一致:

  • 自由创建学期标签和课程文件夹
  • 提取的PPT自动归档至对应课程目录
  • 每个课时下自动分类管理:课件PDF、学习笔记、练习题库、答案解析
  • 支持预览、下载、重命名、移动、删除及批量操作
  • 全局搜索、最近访问记录、收藏夹等便捷功能

3. AI智能讲解与笔记生成

一键调用大语言模型对课件内容进行深度解读,生成结构化的知识讲解笔记。

多种预设风格可选:

模式 适用场景
零基础入门 从基础概念开始,逐步展开讲解
重点提炼 聚焦核心概念和易混淆知识点
考前速记 以考点为导向,提炼关键结论和公式

支持自定义提示词,完全掌控输出风格和侧重方向。讲解笔记可导出为 Markdown 或 PDF 格式。

4. AI智能出题与自测

基于课件内容和AI笔记,自动生成配套练习题,形成学习闭环:

  • 题型覆盖:选择题、填空题、判断题、简答题、计算题
  • 灵活配置:自定义题目数量、难度分布和出题方向
  • 详细解析:每道题配套解题思路、知识点回顾和常见错误提示

同样支持自定义提示词,可指定"模拟期末考试难度"或"针对易混淆知识点出题"等个性化需求。

5. 课堂录音转写与多模态融合

针对"PPT精简、口头讲解丰富"的课程场景:

  • 支持上传课堂录音或从视频中分离音轨
  • 语音识别转写为文字稿
  • 将录音内容与PPT进行语义关联
  • 融合多模态信息生成更贴合课堂实际的高质量笔记

有效保留教师强调的重点内容,弥补纯PPT文字信息的局限性。


适用场景

  • 理工科、医学等PPT信息密度较高的专业课程
  • 有课程回放资源访问权限,但难以获取教师原版课件的情况
  • 需要系统化整理和高效复习课程内容的学习需求

技术特性

  • 基于内容感知的智能视频抽帧算法
  • 感知哈希/结构相似性指数的图像去重
  • 大语言模型驱动的内容理解与生成
  • 语音识别与多模态信息融合处理

项目结构

XJTU-SlideNote/
├── product_design/          # 产品设计文档
│   ├── design.md            # 产品需求设计
│   ├── tech-stack.md        # 技术方案设计
│   └── architecture.md      # 系统架构设计
├── backend/                  # 后端服务 (Python + FastAPI)
│   ├── app/
│   │   ├── api/             # RESTful API 路由
│   │   ├── services/        # 业务逻辑层
│   │   ├── core/            # 核心引擎(视频处理、OCR、LLM)
│   │   ├── models/          # 数据模型 (SQLAlchemy ORM)
│   │   ├── schemas/         # Pydantic 数据校验
│   │   └── prompts/         # AI 提示词模板
│   ├── tests/               # 单元测试
│   └── requirements.txt     # Python 依赖
├── frontend/                 # 前端应用 (React + TypeScript)
│   ├── src/
│   │   ├── pages/           # 页面组件
│   │   ├── components/      # 通用组件
│   │   ├── services/        # API 调用
│   │   ├── stores/          # Zustand 状态管理
│   │   ├── hooks/           # 自定义 Hooks
│   │   └── types/           # TypeScript 类型定义
│   └── package.json         # Node 依赖
└── README.md

详细架构设计请参阅 architecture.md


技术栈

层级 技术选型
前端框架 React 18 + TypeScript + Vite 5
UI 组件 Ant Design 5
状态管理 Zustand + TanStack Query
后端框架 Python 3.11 + FastAPI
数据库 SQLite + SQLAlchemy
视频处理 FFmpeg (场景检测) + imagededup (去重)
OCR 识别 PaddleOCR
LLM 接入 LiteLLM (兼容 OpenAI 规范)

快速开始

一键启动(推荐)

后端:

cd backend
./start.sh

该脚本会自动检查环境依赖、创建虚拟环境、安装依赖并启动服务。

手动启动:

cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env      # 配置环境变量(重要:需设置 LLM_API_KEY)
uvicorn app.main:app --reload --port 8000

前端启动

cd frontend
pnpm install
pnpm run dev

访问 http://localhost:5173 即可使用。

📖 详细部署指南

完整的部署文档、API 使用示例、故障排查请参阅 DEPLOYMENT_GUIDE.md


贡献指南

欢迎提交 Issue 和 Pull Request,共同完善这个项目。