Add admin vision lab and LLM vision verification

这个提交包含在:
cryptocommuniums-afk
2026-03-15 00:41:09 +08:00
父节点 20e183d2da
当前提交 ad83ce9c68
修改 18 个文件,包含 915 行新增16 行删除

查看文件

@@ -20,6 +20,7 @@
- 实时摄像头分析:浏览器端调用 MediaPipe,进行姿势识别和反馈展示
- 动作纠正:支持文本纠正和多模态纠正两条链路,统一通过后台任务执行
- 多模态图片输入:上传关键帧后会转换为公网可访问的绝对 URL,再提交给视觉模型
- 视觉标准图库:内置网球公网参考图,可直接发起视觉识别测试并保存结果
- 视频库:集中展示录制结果、上传结果和分析摘要
### 在线录制与媒体链路
@@ -51,6 +52,7 @@
- 统一工作台导航
- 仪表盘、训练、视频、录制、分析等模块一致的布局结构
- 全局任务中心:桌面侧边栏和移动端头部都可查看后台任务
- Admin 视觉测试页:`H1` 这类 admin 用户可查看全部视觉测试数据
- 为后续 PC 粗剪时间线预留媒体域与文档规范
## 架构能力

查看文件

@@ -21,6 +21,7 @@
- Node/tRPC 路由输入校验与权限检查
- LLM 模块请求配置与环境变量回退逻辑
- 视觉模型 per-request model override 能力
- 视觉标准图库路由与 admin/H1 全量可见性逻辑
- 媒体工具函数,例如录制时长格式化与码率选择
### 3. Go 媒体服务测试
@@ -85,6 +86,14 @@ pnpm exec tsx -e 'import "dotenv/config"; import { invokeLLM } from "./server/_c
如果返回模型与 `LLM_VISION_MODEL` 不一致,说明上游网关忽略了视觉模型选择,业务任务会自动回退到文本纠正结果。
视觉标准图库的真实 smoke test 可直接复用内置数据:
- 初始化 `ADMIN_USERNAMES=H1`
- 登录 `H1` 后访问 `/vision-lab`
- 检查标准图是否已经入库
- 运行单张或批量测试,确认结果会写入 `vision_test_runs`
- 若上游视觉网关不可用,记录应显示 `fallback`
## Production smoke checks
部署到宿主机后,建议至少补以下联测:

查看文件

@@ -1,18 +1,19 @@
# Verified Features
本文档记录当前已经通过自动化验证或构建验证的项目。更新时间2026-03-15 00:11 CST。
本文档记录当前已经通过自动化验证或构建验证的项目。更新时间2026-03-15 00:40 CST。
## 最新完整验证记录
- 通过命令:`pnpm verify`
- 验证时间2026-03-15 00:10 CST
- 结果摘要:`pnpm check` 通过,`pnpm test` 通过80/80),`pnpm test:go` 通过,`pnpm build` 通过,`pnpm test:e2e` 通过6/6`pnpm test:llm` 通过
- 验证时间2026-03-15 00:39 CST
- 结果摘要:`pnpm check` 通过,`pnpm test` 通过85/85),`pnpm test:go` 通过,`pnpm build` 通过,`pnpm test:e2e` 通过6/6`pnpm test:llm` 通过
## 生产部署联测
| 项目 | 验证方式 | 状态 |
|------|----------|------|
| `https://te.hao.work/` HTTPS 访问 | `curl -I https://te.hao.work/` | 通过 |
| `https://te.hao.work/vision-lab` 视觉测试页访问 | `curl -I https://te.hao.work/vision-lab` | 通过 |
| `http://te.hao.work:8302/` 4 位端口访问 | `curl -I http://te.hao.work:8302/` | 通过 |
| 站点 TLS 证书 | Let’s Encrypt ECDSA 证书已签发并由宿主机 nginx 加载 | 通过 |
| 生产登录与首次进入工作台 | Playwright 登录真实站点并跳转 `/dashboard` | 通过 |
@@ -79,6 +80,9 @@
| `.env` 中的 `LLM_API_URL` / `LLM_API_KEY` / `LLM_MODEL` | `pnpm test:llm` | 通过 |
| `https://one.hao.work/v1/chat/completions` 联通性 | `pnpm test:llm` 实际返回文本 | 通过 |
| 视觉模型独立配置路径 | `server/_core/llm.test.ts` + 手工 smoke 检查 | 通过 |
| 视觉标准图库入库 | MySQL 中 `vision_reference_images` 已写入 5 张 Commons 网球参考图 | 通过 |
| 视觉测试结果入库 | MySQL 中 `vision_test_runs` 已写入 3 条真实测试结果 | 通过 |
| H1 全量可见性 | `H1` 用户已提升为 `admin`,可读取全部视觉测试记录;Playwright 真实站点检查通过 | 通过 |
## 已知非阻断警告
@@ -86,6 +90,7 @@
- `pnpm build` 仍有 Vite 大 chunk 警告;当前属于性能优化待办,不影响本次产物生成
- Playwright 运行依赖 mocked media/network,不等价于真机摄像头、真实弱网和真实 WebRTC 质量验收
- 当前上游视觉网关可能忽略 `LLM_VISION_MODEL` 并回退为文本模型;服务端已实现自动降级,任务不会因此直接失败
- 2026-03-15 的真实标准图测试中,正手 / 反手 / 发球三条记录均以 `fallback` 完成,说明当前上游视觉网关仍未稳定返回结构化视觉结果
## 当前未纳入自动验证的内容