更新数据导入脚本、前端仪表盘和测试指南
- import_hk_songs.py: 优化数据导入逻辑(+157行) - serve_l2_dashboard.py: 增强仪表盘服务功能(+231行) - l2_review_dashboard.html: 前端页面微调 - 测试流程指南.md: 补充测试文档
Showing
4 changed files
with
103 additions
and
0 deletions
This diff is collapsed.
Click to expand it.
| ... | @@ -947,6 +947,7 @@ | ... | @@ -947,6 +947,7 @@ |
| 947 | const params = new URLSearchParams({ | 947 | const params = new URLSearchParams({ |
| 948 | path: dataPath(), | 948 | path: dataPath(), |
| 949 | top_k: state.topK, | 949 | top_k: state.topK, |
| 950 | mode: state.mode, | ||
| 950 | q: els.searchInput.value.trim(), | 951 | q: els.searchInput.value.trim(), |
| 951 | page: String(state.page), | 952 | page: String(state.page), |
| 952 | page_size: String(state.pageSize) | 953 | page_size: String(state.pageSize) | ... | ... |
This diff is collapsed.
Click to expand it.
| ... | @@ -2,6 +2,108 @@ | ... | @@ -2,6 +2,108 @@ |
| 2 | 2 | ||
| 3 | 本文档说明如何运行 L2 歌词召回测试、查看测试产物,并启动前端页面做人工复核。 | 3 | 本文档说明如何运行 L2 歌词召回测试、查看测试产物,并启动前端页面做人工复核。 |
| 4 | 4 | ||
| 5 | ## 0. 当前导入流程 2000 条 smoke 测试 | ||
| 6 | |||
| 7 | 先确认 `.env` 中有: | ||
| 8 | |||
| 9 | ```text | ||
| 10 | TARGET_TABLE_NAME_TMP=hk_songs_import_staging | ||
| 11 | ``` | ||
| 12 | |||
| 13 | 第一次跑前,在目标库执行暂存表建表 SQL: | ||
| 14 | |||
| 15 | ```bash | ||
| 16 | create_hk_songs_import_staging.sql | ||
| 17 | ``` | ||
| 18 | |||
| 19 | 目标库已清空时,先跑第一阶段导入。这个阶段会边去重边导入: | ||
| 20 | |||
| 21 | - 判定为 `new` 的记录会按批次写入目标库。 | ||
| 22 | - 判定为 `merge` 的记录不会插入新行,会写入暂存表和审核/记录清单。 | ||
| 23 | - 判定为 `review` 的记录不会插入目标库,会进入暂存表等待业务人工审核。 | ||
| 24 | - 所有 `new / merge / review` 结果都会写入 `TARGET_TABLE_NAME_TMP`。 | ||
| 25 | - 输出 `output/reports/review_decisions_*.csv`,供复核页面展示 `new / merge / review` 全量结果。 | ||
| 26 | |||
| 27 | ### 0.1 第一阶段:跑 2000 条导入 smoke | ||
| 28 | |||
| 29 | ```bash | ||
| 30 | uv run python import_hk_songs.py \ | ||
| 31 | --limit 2000 \ | ||
| 32 | --offset 0 \ | ||
| 33 | --batch-size 500 \ | ||
| 34 | --workers 8 \ | ||
| 35 | --load-existing-lyrics \ | ||
| 36 | --l2-recall topk \ | ||
| 37 | --l2-recall-top-k 20 | ||
| 38 | ``` | ||
| 39 | |||
| 40 | 如果想先不上传 OSS、只验证数据库写入和去重流程,可以加: | ||
| 41 | |||
| 42 | ```bash | ||
| 43 | --skip-oss | ||
| 44 | ``` | ||
| 45 | |||
| 46 | ### 0.2 启动人工审核页面 | ||
| 47 | |||
| 48 | ```bash | ||
| 49 | uv run python serve_l2_dashboard.py --host 127.0.0.1 --port 8765 | ||
| 50 | ``` | ||
| 51 | |||
| 52 | 打开: | ||
| 53 | |||
| 54 | ```text | ||
| 55 | http://127.0.0.1:8765 | ||
| 56 | ``` | ||
| 57 | |||
| 58 | 页面会自动扫描 `output/reports/review_decisions_*.csv`。业务人员在页面里查看: | ||
| 59 | |||
| 60 | - 已经入库的 `new` 数据。 | ||
| 61 | - 判定重复的 `merge` 样本。 | ||
| 62 | - 需要人工审核的 `review` 样本。 | ||
| 63 | |||
| 64 | 对 `review` 样本,业务人员标注: | ||
| 65 | |||
| 66 | - `确认重复`:不入库。 | ||
| 67 | - `确认不重复`:第二阶段入库。 | ||
| 68 | - `待确认`:暂不入库。 | ||
| 69 | |||
| 70 | ### 0.3 第二阶段:页面按钮入库审核通过项 | ||
| 71 | |||
| 72 | 业务人员完成所有 `review` 样本审核后,在页面点击: | ||
| 73 | |||
| 74 | ```text | ||
| 75 | 入库审核通过 | ||
| 76 | ``` | ||
| 77 | |||
| 78 | 服务端会自动生成: | ||
| 79 | |||
| 80 | ```text | ||
| 81 | output/reports/review_import_approved_YYYYMMDD_HHMMSS.csv | ||
| 82 | ``` | ||
| 83 | |||
| 84 | 并自动执行第二阶段导入: | ||
| 85 | |||
| 86 | ```bash | ||
| 87 | uv run python import_hk_songs.py \ | ||
| 88 | --review-result-csv output/reports/review_import_approved_YYYYMMDD_HHMMSS.csv \ | ||
| 89 | --load-existing-lyrics | ||
| 90 | ``` | ||
| 91 | |||
| 92 | 如果需要手动执行第二阶段,也可以使用上面的命令,把文件名替换成页面生成的实际 CSV。 | ||
| 93 | |||
| 94 | ### 0.4 smoke 后检查 | ||
| 95 | |||
| 96 | 第一阶段完成后,重点看日志里的: | ||
| 97 | |||
| 98 | ```text | ||
| 99 | 插入: <new 入库数量> | ||
| 100 | L2合并命中=<merge 数量> | ||
| 101 | L2待审=<review 数量> | ||
| 102 | 人工审核清单: output/reports/review_decisions_*.csv | ||
| 103 | ``` | ||
| 104 | |||
| 105 | 第二阶段完成后,确认日志里的 `插入` 数量等于本次人工审核确认入库数量。 | ||
| 106 | |||
| 5 | ## 1. 运行 L2 测试脚本 | 107 | ## 1. 运行 L2 测试脚本 |
| 6 | 108 | ||
| 7 | 在项目根目录执行: | 109 | 在项目根目录执行: | ... | ... |
-
Please register or sign in to post a comment