3.5 KiB
3.5 KiB
1. 后端开发
1.1 项目初始化
- 创建 Python 虚拟环境
- 创建 requirements.txt,包含 Flask、pymongo、dashscope、pyyaml 等依赖
- 创建项目目录结构(app/、routes/、services/、models/、utils/)
1.2 配置管理
- 实现 config.yaml 读取工具类
- 在 config.yaml 中添加 DashScope API Key 配置项
- 实现环境变量覆盖配置功能
1.3 MongoDB 数据模型
- 创建视频文档模型(Video Model)
- 字段:id、filename、file_path、upload_time、file_size、status
- 创建视频分析结果模型(AnalysisResult Model)
- 字段:video_id、analysis_type、content、created_at、fps
- 创建视频总结模型(Summary Model)
- 字段:video_id、summary_text、created_at
- 创建视频对比模型(Comparison Model)
- 字段:video_ids、comparison_result、created_at
1.4 视频上传服务
- 实现文件上传 API 端点(POST /api/videos/upload)
- 实现文件验证(格式、大小限制)
- 实现文件存储到 uploads/ 目录
- 实现视频元数据保存到 MongoDB
1.5 阿里云 DashScope 集成
- 实现 DashScope 客户端封装类
- 实现视频解析服务(调用 MultiModalConversation.call)
- 实现 fps 参数配置(默认 2,可配置)
- 实现错误处理和重试机制
1.6 视频分析服务
- 实现视频内容解析 API(POST /api/videos/{video_id}/analyze)
- 实现解析结果保存到 MongoDB
- 实现解析状态跟踪(pending、processing、completed、failed)
1.7 视频总结服务
- 实现视频总结生成 API(POST /api/videos/{video_id}/summarize)
- 实现总结提示词模板
- 实现总结结果保存到 MongoDB
- 实现总结历史查询
1.8 视频对比服务
- 实现视频对比 API(POST /api/videos/compare)
- 实现多视频内容提取和对比逻辑
- 实现对比结果生成和保存
- 实现对比历史查询
1.9 API 路由
- 创建视频相关路由(/api/videos/*)
- 实现错误处理中间件
- 实现请求日志记录
- 实现 CORS 支持(用于前端访问)
2. 前端开发
2.1 静态页面结构
- 创建 index.html 主页面
- 创建视频上传页面组件
- 创建视频列表页面组件
- 创建视频总结展示页面组件
- 创建视频对比页面组件
2.2 前端功能实现
- 实现视频文件上传功能(使用 FormData 和 fetch API)
- 实现上传进度显示
- 实现视频列表展示(从 API 获取)
- 实现视频分析触发功能
- 实现视频总结展示
- 实现视频选择对比功能
- 实现对比结果展示
- 实现错误提示和加载状态
2.3 样式和交互
- 设计响应式布局
- 实现现代化的 UI 样式
- 实现交互反馈(按钮状态、加载动画等)
3. 测试和文档
3.1 API 文档
- 编写完整的 RESTful API 文档(Markdown 格式)
- 包含所有端点的请求/响应示例
- 包含错误码说明
3.2 测试
- 编写单元测试(视频处理服务)
- 编写 API 集成测试
- 测试视频上传、解析、总结、对比的完整流程
4. 部署准备
4.1 环境配置
- 更新 .farmer.dev.json 配置(Python 应用)
- 创建 Dockerfile(如需要)
- 更新部署脚本
4.2 文档
- 更新 README.md 说明项目结构和使用方法
- 添加环境变量配置说明