Add voice analytics filters and metrics
This commit is contained in:
@@ -128,3 +128,158 @@ SMOKE_AUDIO=1 ./scripts/demo_smoke.sh
|
||||
限制:
|
||||
|
||||
- 本机浏览器自动化脚本默认寻找标准版 Chrome;当前电脑安装的是 Google Chrome Beta,所以本轮没有生成 CDP 截图。
|
||||
|
||||
## 2026-04-24 语音共创 Alpha 观测补强
|
||||
|
||||
- 今日优先级:先收束 Phase A Alpha 的可解释性,不进入 Phase B 实时化。
|
||||
- 后端 `VoiceTurnSummaryResponse` 已返回用户/助手音频时长,便于定位单轮录音质量与 TTS 产物状态。
|
||||
- 后端 `VoiceSessionAnalyticsResponse` 已新增用户语音总时长、平均时长、助手音频统计、转写 Provider 分布和低置信度确认率。
|
||||
- 用户端 Voice Studio 观测卡片已展示平均用户语音时长、转写来源分布和确认率。
|
||||
- `SMOKE_VOICE=1 ./scripts/demo_smoke.sh` 已新增语音时长与转写 Provider 分布断言。
|
||||
|
||||
验证命令:
|
||||
|
||||
```bash
|
||||
cd backend && .venv/bin/pytest tests/test_voice_sessions.py -q
|
||||
cd frontend && npm run build
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- `tests/test_voice_sessions.py` 通过,15 passed,保留 1 个 SQLAlchemy/SQLite `datetime.utcnow()` 上游 deprecation warning。
|
||||
- 用户端 `vue-tsc && vite build` 通过,保留 `baseline-browser-mapping` 数据偏旧提示。
|
||||
|
||||
## 2026-04-24 语音共创 Alpha 50 项执行池与 P1 观测扩展
|
||||
|
||||
- PRD 已新增 Phase A Alpha 50 项执行 Backlog,明确 P0/P1/P2、验收口径和今日执行策略。
|
||||
- 后端 voice analytics 已扩展输入构成、上传语音占比、助手语音覆盖率、ASR/TTS 成功率、平均转写/意图置信度、安全介入率和失败事件分布。
|
||||
- Voice Studio 已展示上传/文本构成、助手语音覆盖、ASR/TTS 成功率、平均置信度、用户/助手平均语音时长,并在单 turn 卡片展示用户/助手语音时长。
|
||||
- `SMOKE_VOICE=1` smoke 已新增输入构成与 ASR/TTS 成功率断言。
|
||||
- 技术方案与 demo checklist 已同步语音观测字段。
|
||||
|
||||
验证命令:
|
||||
|
||||
```bash
|
||||
cd backend && .venv/bin/pytest tests/test_voice_sessions.py -q
|
||||
cd backend && .venv/bin/ruff check app/schemas/voice_session_schemas.py app/services/voice_session_service.py tests/test_voice_sessions.py
|
||||
cd frontend && npm run build
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- `tests/test_voice_sessions.py` 通过,15 passed,保留 1 个 SQLAlchemy/SQLite `datetime.utcnow()` 上游 deprecation warning。
|
||||
- `ruff check` 通过。
|
||||
- 用户端 `vue-tsc && vite build` 通过,保留 `baseline-browser-mapping` 数据偏旧提示。
|
||||
|
||||
## 2026-04-24 语音共创 P2 样本与列表摘要补充
|
||||
|
||||
- Voice Studio 最近会话列表已增加轻量状态摘要:待确认、安全介入、最近意图或等待输入。
|
||||
- PRD 已补 10 条儿童表达样本和 2 版低置信度确认文案草案,用于后续 Alpha 人工验收。
|
||||
- 代码自审结论:本轮没有新增数据库迁移;新增字段均为响应层兼容扩展;前端使用空值兜底;smoke 断言只在 `SMOKE_VOICE=1` 路径生效,不影响默认演示。
|
||||
|
||||
复验命令:
|
||||
|
||||
```bash
|
||||
cd frontend && npm run build
|
||||
cd backend && .venv/bin/pytest tests/test_voice_sessions.py -q
|
||||
cd backend && .venv/bin/ruff check app/schemas/voice_session_schemas.py app/services/voice_session_service.py tests/test_voice_sessions.py
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 用户端 `vue-tsc && vite build` 通过。
|
||||
- `tests/test_voice_sessions.py` 通过,15 passed,保留 1 个 SQLAlchemy/SQLite `datetime.utcnow()` 上游 deprecation warning。
|
||||
- `ruff check` 通过。
|
||||
|
||||
## 2026-04-25 语音 Analytics Provider/Status 过滤开发
|
||||
|
||||
- 后端 `GET /api/voice-sessions/analytics` 新增 `provider` 与 `session_status` 查询参数。
|
||||
- analytics 响应新增当前筛选条件回显:`provider`、`session_status`。
|
||||
- Voice Studio 观测卡新增转写来源与会话状态筛选控件。
|
||||
- `SMOKE_VOICE=1` 已新增 provider/status 过滤断言。
|
||||
- 技术方案、demo checklist、PRD 执行状态已同步。
|
||||
|
||||
验证命令:
|
||||
|
||||
```bash
|
||||
cd backend && .venv/bin/pytest tests/test_voice_sessions.py -q
|
||||
cd backend && .venv/bin/ruff check app/api/voice_sessions.py app/schemas/voice_session_schemas.py app/services/voice_session_service.py tests/test_voice_sessions.py
|
||||
cd frontend && npm run build
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- `tests/test_voice_sessions.py` 通过,15 passed,保留 1 个 SQLAlchemy/SQLite `datetime.utcnow()` 上游 deprecation warning。
|
||||
- `ruff check` 通过。
|
||||
- 用户端 `vue-tsc && vite build` 通过,保留 `baseline-browser-mapping` 数据偏旧提示。
|
||||
|
||||
## 2026-04-25 Warning 与前端依赖安全收敛
|
||||
|
||||
- 后端移除 `datetime.utcnow()`:Provider admin models、cost tracker、provider metrics 已改为 timezone-aware UTC 时间。
|
||||
- `tests/test_voice_sessions.py` 不再输出 SQLAlchemy/SQLite `datetime.utcnow()` deprecation warning。
|
||||
- 前端更新 `baseline-browser-mapping`,`npm run build` 不再输出 Baseline 数据过期提示。
|
||||
- 执行非破坏性 `npm audit fix` 后,用户端生产依赖 `npm audit --omit=dev` 为 0 vulnerabilities。
|
||||
|
||||
验证命令:
|
||||
|
||||
```bash
|
||||
cd backend && .venv/bin/pytest tests/test_admin_providers.py tests/test_voice_sessions.py -q
|
||||
cd backend && .venv/bin/ruff check app/db/admin_models.py app/services/cost_tracker.py app/services/provider_metrics.py app/api/voice_sessions.py app/schemas/voice_session_schemas.py app/services/voice_session_service.py tests/test_voice_sessions.py
|
||||
cd frontend && npm audit --omit=dev
|
||||
cd frontend && npm run build
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- `tests/test_admin_providers.py tests/test_voice_sessions.py` 通过,17 passed。
|
||||
- `ruff check` 通过。
|
||||
- `npm audit --omit=dev` 返回 0 vulnerabilities。
|
||||
- 用户端 `vue-tsc && vite build` 通过。
|
||||
|
||||
## 2026-04-25 行尾噪音收敛与 Admin Analytics 校验
|
||||
|
||||
- 已撤回高噪音 CRLF / lockfile 变更,当前 diff 保留在语音 analytics、Voice Studio、测试、smoke、文档和低噪音 admin models 修复范围内。
|
||||
- 后端 admin provider analytics 的 `capability` 参数已收紧为 `text/image/tts/storybook/asr` 枚举,无效能力返回 `422`。
|
||||
- 语音 analytics 的 `session_status` 参数已收紧为明确会话状态枚举,无效状态返回 `422`。
|
||||
|
||||
验证命令:
|
||||
|
||||
```bash
|
||||
cd backend && .venv/bin/ruff check app/api/admin_providers.py app/api/voice_sessions.py app/db/admin_models.py app/schemas/voice_session_schemas.py app/services/voice_session_service.py tests/test_admin_providers.py tests/test_voice_sessions.py
|
||||
cd backend && .venv/bin/pytest tests/test_admin_providers.py tests/test_voice_sessions.py -q
|
||||
cd frontend && npm run build
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- `ruff check` 通过。
|
||||
- `tests/test_admin_providers.py tests/test_voice_sessions.py` 通过,17 passed。
|
||||
- 用户端 `vue-tsc && vite build` 通过。
|
||||
|
||||
## 2026-04-25 Docker Voice Smoke 回归闭环
|
||||
|
||||
- Docker 栈已用当前代码重建:backend、backend-admin、worker、celery-beat、frontend、frontend-admin 均可启动。
|
||||
- 修复 Celery task 注册不完整问题:worker 现在注册 generation workflow、generation maintenance、audio cache、memory、push 和 achievements 任务。
|
||||
- 修复 worker 冷启动 DB session factory 自锁:数据库锁改为可重入锁。
|
||||
- 修复 Celery async task 跨 event loop 复用 asyncpg 连接问题:任务结束时 dispose async engine。
|
||||
- `SMOKE_VOICE=1` smoke 对齐当前 intent/event 命名,并使用非空临时 demo audio 上传样本。
|
||||
|
||||
验证命令:
|
||||
|
||||
```bash
|
||||
cd backend && .venv/bin/python -m ruff check app/db/database.py app/core/celery_app.py app/tasks
|
||||
cd backend && .venv/bin/python -m pytest tests/test_admin_providers.py tests/test_voice_sessions.py -q
|
||||
cd frontend && npm run build
|
||||
cd admin-frontend && npm run build
|
||||
docker compose up -d --build
|
||||
SMOKE_VOICE=1 ./scripts/demo_smoke.sh
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- `ruff check` 通过。
|
||||
- `tests/test_admin_providers.py tests/test_voice_sessions.py` 通过,17 passed。
|
||||
- 用户端 `vue-tsc && vite build` 通过。
|
||||
- 管理端 `vue-tsc && vite build` 通过,仍有 `baseline-browser-mapping` 数据偏旧提示。
|
||||
- `docker compose up -d --build` 通过,当前本地服务可访问 `http://localhost:52080` 与 `http://localhost:52888`。
|
||||
- `SMOKE_VOICE=1 ./scripts/demo_smoke.sh` 完整通过,覆盖普通故事、语音共创文本 fallback、上传回合、voice analytics、provider/status 筛选、finalize、绘本、资产重试、provider analytics 与 ops summary。
|
||||
|
||||
Reference in New Issue
Block a user