Releases: RogerYet/VideoPushSystem
v1.7.0
Release Notes — 双塔召回推荐(Two-Tower Recall)功能上线
新增功能
-
双塔召回模型(Two-Tower / Dual-Encoder)
- 引入用户塔与物品塔向量化表示,基于向量相似度进行候选视频召回。
- 支持使用 MovieLens(ml-latest-small) 进行离线训练与效果验证,生成可部署的召回模型文件。
-
召回服务模块
- 新增召回服务
recall_service.py(或同等模块),提供 TopK 候选召回能力。 - 应用启动时自动加载召回模型(启动日志提示 “Recall model loaded successfully.”)。
- 新增召回服务
-
推荐接口
- 新增/扩展推荐 API:
GET /api/recommend/home?user_id=... - 返回基于用户行为的个性化推荐列表;当用户行为不足时走冷启动逻辑(如热门/最新/类别偏好)。
- 新增/扩展推荐 API:
数据/模型产物
-
新增训练脚本:
train_two_tower.py -
训练产物输出到:
backend/app/services/model_data/two_tower_model.pth(模型权重)recall_data.pkl(召回所需索引/映射/向量等数据)
-
建议在 Docker 环境中将
model_data持久化挂载,避免容器重建导致模型文件丢失。
兼容性与行为变化
-
推荐模块从“纯规则/协同过滤”为主,升级为“双塔召回 + 原排序策略融合”的流程:
- 先召回候选(向量相似度 TopK)
- 再结合现有热度/协同过滤/规则做融合排序(保持原有可解释性与稳定性)
-
对现有数据库结构无强制变更;推荐依赖
action_logs行为日志用于构建用户向量/偏好。
部署与运行提示
-
首次使用需执行训练:
- 安装依赖:
pip install -r requirements.txt - 下载并放置 MovieLens 数据集到指定目录
- 运行训练:
python train_two_tower.py - 启动服务:
python run.py或docker compose up -d --build
- 安装依赖:
-
训练完成后重启后端以加载最新模型文件。
v1.6.0
管理员页面升级 增加密码重置功能
上传视频时:
* 在“视频元素”步骤,您可以上传字幕文件 (.vtt/.srt)。
* 您可以点击“添加片尾画面”,从您已发布的视频中选择 1-2 个作为片尾推荐。
视频播放时:
* 播放器会自动加载您设置的字幕。
* 在视频最后 10 秒,如果设置了片尾推荐,右下角会出现悬浮推荐卡片。
* 视频播放结束后,会显示全屏的接下来播放 (Post-Roll) 界面,包含自动推荐和您设置的片尾视频。
编辑视频时:
* 在“工作室 -> 内容”中点击编辑,您可以随时修改或删除字幕及片尾推荐视频。
体验优化:
* 修复了工作室右上角头像点击不灵敏的问题。
* 搜索结果和列表页现在支持鼠标悬停预览视频(自动静音播放)。
v1.5.2
v1.5.1
v1.5.0
v1.4.0
新特性
视频与播放体验
全新自定义播放器:基于 Vue 3 封装的 CustomVideoPlayer,支持拖拽进度、音量控制、全屏模式。
分步上传向导:复刻 YouTube Studio 上传体验,支持文件秒传、自动生成封面(OpenCV)、填写元数据、选择公开范围(公开/私享)。
草稿箱功能:上传视频时可选择“保存为草稿”,未审核/草稿视频仅作者可见。
UI/UX 交互升级
YouTube 风格布局:全站采用左侧侧边栏 + 顶部导航栏的响应式布局 (MainLayout)。
频道个性化:支持访问 /@username 格式的频道主页;频道主支持上传自定义头像和横幅(集成 Cropper.js 裁剪)。
播放列表:支持创建、删除播放列表,并在详情页侧边栏展示“正在播放”列表。
创作者工作室
仪表盘:展示频道核心数据(总播放、粉丝数、获赞数)及最新视频表现。
内容管理:提供视频列表管理,支持原地编辑(模态框)、撤回审核(转为草稿)、永久删除。