本指南提供完整的产品演示流程,确保所有核心功能都能顺利展示。
# 检查系统依赖
ffmpeg -version
pdftoppm -version
python3 --version # 需要 >= 3.10cd backend
./start.sh
# 或手动启动
source venv/bin/activate
uvicorn app.main:app --reload --port 8000验证启动成功:
curl http://localhost:8000/health
# 应返回: {"status":"healthy","app":"XJTU-SlideNote"}演示视频准备:
- 使用 10-15 分钟的课程录播视频(MP4 格式)
- 确保视频中包含清晰的 PPT 画面
- 建议准备 2-3 个不同课程的视频
API 调用(或通过前端界面):
# 1. 创建学期
curl -X POST http://localhost:8000/api/semesters \
-H "Content-Type: application/json" \
-d '{
"name": "2024秋季学期",
"order": 1
}'
# 记录返回的 semester_id,例如:{"id": 1, ...}# 2. 创建课程
curl -X POST http://localhost:8000/api/courses \
-H "Content-Type: application/json" \
-d '{
"semester_id": 1,
"name": "操作系统原理",
"description": "介绍操作系统的基本概念和核心机制",
"order": 1
}'
# 记录返回的 course_id,例如:{"id": 1, ...}# 3. 创建课时
curl -X POST http://localhost:8000/api/lessons \
-H "Content-Type: application/json" \
-d '{
"course_id": 1,
"name": "第1讲-操作系统概述",
"order": 1
}'
# 记录返回的 lesson_id,例如:{"id": 1, ...}# 上传本地视频文件
curl -X POST http://localhost:8000/api/extract/upload \
-F "file=@/path/to/your/lecture_video.mp4" \
-F "lesson_id=1" \
-F "scene_threshold=0.3" \
-F "dedup_threshold=10"
# 返回示例:
# {
# "task_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
# "status": "submitted",
# "message": "File uploaded and task submitted"
# }# 使用返回的 task_id 查询进度
curl http://localhost:8000/api/tasks/a1b2c3d4-e5f6-7890-abcd-ef1234567890
# 任务状态示例:
# {
# "task_id": "...",
# "status": "processing", # pending -> processing -> completed
# "progress": 60,
# "message": "Generating PDF...",
# "created_at": "2024-12-14T10:00:00"
# }演示要点:
- ⏱️ 展示处理速度:15分钟视频约20-30秒完成
- 📊 展示进度更新:从 0% -> 100%
- ✅ 展示最终结果:生成的 PDF 页数
# 1. 获取课时下的文件列表
curl http://localhost:8000/api/lessons/1/files
# 返回示例:
# [
# {
# "id": 1,
# "lesson_id": 1,
# "filename": "slides.pdf",
# "file_type": "slides",
# "file_size": 2048576,
# "created_at": "2024-12-14T10:05:00"
# }
# ]# 2. 预览 PDF
# 在浏览器打开:
http://localhost:8000/api/files/1/preview演示要点:
- 📄 PDF 质量清晰,分辨率高
- 📑 页面完整,无遗漏
- 🔍 文本可搜索(如果启用了 OCR)
# 获取可用的讲解风格列表
curl http://localhost:8000/api/ai/styles
# 返回示例:
# [
# {
# "key": "beginner",
# "name": "零基础入门模式",
# "description": "假设完全没有接触过这门课,从最基础的概念开始讲解"
# },
# {
# "key": "keypoints",
# "name": "重点提炼模式",
# "description": "假设已有初步了解,重点讲解核心概念和易混淆点"
# },
# {
# "key": "exam",
# "name": "考前速记模式",
# "description": "以考点为导向,提炼关键结论和公式"
# }
# ]使用 curl 观察流式生成:
curl -N -X POST http://localhost:8000/api/ai/notes \
-H "Content-Type: application/json" \
-d '{
"file_id": 1,
"style": "beginner"
}'
# 输出示例(实时流式):
# data: # 操作系统概述学习笔记
# data:
# data: ## 1. 什么是操作系统?
# data:
# data: 操作系统(Operating System,OS)是计算机系统中最重要的系统软件...
# data:
# data: 💡 **关键理解**:操作系统就像是计算机的"大管家"...
# ...
# event: done
# data: completed演示要点:
- 🔄 实时流式输出,体验流畅
- 📝 内容结构化,层次清晰
- 💡 包含"关键理解"等辅助记忆点
- ✅ 自动保存为 Markdown 文件
# 再次查看课时文件列表
curl http://localhost:8000/api/lessons/1/files
# 新增的笔记文件:
# [
# {
# "id": 1,
# "filename": "slides.pdf",
# "file_type": "slides",
# ...
# },
# {
# "id": 2,
# "filename": "notes_beginner.md",
# "file_type": "notes",
# "file_size": 5120,
# ...
# }
# ]# 预览笔记内容
curl http://localhost:8000/api/files/2/previewcurl -N -X POST http://localhost:8000/api/ai/exercises \
-H "Content-Type: application/json" \
-d '{
"file_id": 1,
"include_notes": true,
"config": {
"choice_count": 5,
"short_answer_count": 3,
"difficulty": "medium"
}
}'
# 输出示例(流式):
# data: ## 一、选择题
# data:
# data: ### 1. [单选] 操作系统的主要功能不包括以下哪一项?
# data: A. 进程管理
# data: B. 内存管理
# data: C. 网页设计
# data: D. 文件管理
# data:
# data: ### 2. [多选] 下列关于操作系统的描述正确的是?
# ...
# data:
# data: ## 参考答案与解析
# data:
# data: ### 选择题答案
# data:
# data: 1. 【答案】C
# data: 【解析】操作系统的核心功能包括进程管理、内存管理、文件管理和设备管理...演示要点:
- 📋 题型多样:选择题、简答题
- 📊 难度可控:easy/medium/hard
- 📖 解析详细:包含解题思路和知识点回顾
- ✅ 自动保存为 Markdown
# 查看完整的文件系统结构
tree backend/storage/users/1/
# 输出示例:
# users/1/
# └── 2024秋季学期/
# └── 操作系统原理/
# └── 第1讲-操作系统概述/
# ├── slides.pdf # ①提取的PPT
# ├── notes_beginner.md # ②AI生成的笔记
# └── exercises_medium.md # ③AI生成的练习题演示要点:
- 📁 三级目录结构清晰:学期 → 课程 → 课时
- 📚 学习资料完整:课件 + 笔记 + 练习题
- 🔄 形成学习闭环:看 PPT → 读笔记 → 做习题
# 1. 查看当前 LLM 配置
curl http://localhost:8000/api/config/llm
# 返回示例:
# {
# "provider": "openai",
# "model_name": "gpt-4o-mini",
# "max_tokens": 4096,
# "temperature": 0.7,
# "has_api_key": true,
# "base_url": null
# }# 2. 切换到其他提供商(例如 DeepSeek)
curl -X PUT http://localhost:8000/api/config/llm \
-H "Content-Type: application/json" \
-d '{
"provider": "deepseek",
"model_name": "deepseek-chat",
"api_key": "sk-xxxxx",
"temperature": 0.5
}'演示要点:
- 🔧 配置灵活,支持多种 LLM 提供商
- 💰 成本可控,可选择不同价格的模型
- ⚙️ 参数可调,temperature 影响输出稳定性
# 创建多个课时
for i in {1..3}; do
curl -X POST http://localhost:8000/api/lessons \
-H "Content-Type: application/json" \
-d "{
\"course_id\": 1,
\"name\": \"第${i}讲\",
\"order\": ${i}
}"
done
# 依次提交视频提取任务
# 后台并行处理(max_workers=2)演示要点:
- 🚀 异步处理,不阻塞 API
- 🔄 并行处理多个任务
- 📊 任务列表管理
# 创建自定义笔记模板
curl -X POST http://localhost:8000/api/ai/prompts \
-H "Content-Type: application/json" \
-d '{
"name": "考研重点模式",
"template_type": "notes",
"content": "你是一位考研辅导专家。请提炼出适合考研复习的重点内容,标注高频考点...",
"description": "专为考研复习设计的笔记风格"
}'
# 使用自定义模板生成笔记
curl -N -X POST http://localhost:8000/api/ai/notes \
-H "Content-Type: application/json" \
-d '{
"file_id": 1,
"style": "custom",
"custom_prompt": "你是一位考研辅导专家..."
}'| 指标 | 测试结果 |
|---|---|
| 15分钟视频提取 | 约 25-30 秒 |
| 45分钟视频提取 | 约 1-1.5 分钟 |
| OCR识别50页PPT | 约 30 秒 |
| AI生成3000字笔记 | 约 20 秒 |
| 生成10道习题 | 约 15 秒 |
可能原因:
- 视频格式不支持
- 场景检测阈值设置不当
解决方案:
# 调整阈值重新提交
curl -X POST http://localhost:8000/api/extract/upload \
-F "file=@video.mp4" \
-F "lesson_id=1" \
-F "scene_threshold=0.4" # 提高阈值,减少提取帧数可能原因:
- LLM API 限流
- 网络连接问题
解决方案:
# 检查 API 状态
curl http://localhost:8000/api/config/llm
# 查看任务错误信息
curl http://localhost:8000/api/tasks/{task_id}可能原因:
- PPT 图片质量差
- 字体过小或模糊
解决方案:
# 使用更高分辨率的视频源
# 或调整 OCR 参数| 阶段 | 时长 | 备注 |
|---|---|---|
| 环境准备 | 2 分钟 | 提前完成 |
| 场景一 | 3-5 分钟 | 视频提取 |
| 场景二 | 3-4 分钟 | 笔记生成 |
| 场景三 | 3-4 分钟 | 练习题生成 |
| 场景四 | 1-2 分钟 | 文件结构展示 |
| 场景五 | 1-2 分钟 | 配置管理 |
| Q&A | 5 分钟 | 回答问题 |
总计: 约 15-20 分钟
-
突出性能优势
- 视频处理速度快(10倍提升)
- AI 生成流式输出,体验流畅
-
强调用户价值
- 解决 PPT 获取难题
- 提供个性化学习辅导
- 形成完整学习闭环
-
展示技术亮点
- 两级抽帧策略
- OCR 高准确率(PaddleOCR)
- LLM 多提供商支持
-
体现产品完整性
- 从视频到 PPT
- 从 PPT 到笔记
- 从笔记到习题
- 完整的知识萃取与认知辅助流程
- 后端服务正常启动
- 系统依赖全部就绪(FFmpeg, Poppler)
- LLM API Key 已配置
- 演示视频已准备(10-15分钟)
- API 文档可访问(http://localhost:8000/docs)
- 测试用例已验证通过
- 演示脚本已熟悉
- 问答准备充分
祝演示成功!🎉