# Ark批量打标限流补跑诊断器 ## 诊断流程样例 ### 场景 Ark v31 批量打标 5,000 条人工客服原声。主跑 raw 写满 5,000 条,但 clean 后只有 3,915 条成功,剩余 1,085 条失败,怀疑是高并发限流、超时或解析错误。 ### 入口 ```bash python /Users/bytedance/Documents/job-bu/data-analysis-workspace/tools/ark_retry_diagnose.py diagnose \ --run-dir projects/<project>/runs/v31_manual_5000 \ --input input/manual_sessions_5000.csv \ --raw output/raw/ark_v31_raw.jsonl \ --clean output/clean/ark_v31_clean.csv \ --log logs/ark_v31_runner.log ``` ### 检查顺序 | 步骤 | 检查 | 通过信号 | 失败信号 | |---|---|---|---| | 1 | input session 去重 | 5,000 个唯一 session | 输入自身重复或 session_id 缺失 | | 2 | raw 覆盖率 | raw 覆盖全部 input session | raw 缺 session 或同一 session 多次成功 | | 3 | clean 状态 | clean 成功数等于 input 数 | clean 失败、解析为空、标签不在枚举 | | 4 | 错误归因 | error_type 可聚合到 rate_limit/timeout/schema/empty_response | 错误文本不可解析,无法判断是否可补跑 | | 5 | 补跑计划 | retry plan 只包含失败 session | 成功 session 被纳入补跑,存在覆盖风险 | ### 输出 ```text input_unique: 5000 raw_rows: 5000 clean_success: 3915 clean_failed: 1085 major_error_type: ark_rate_limit_or_timeout retry_plan: retry_plan_only_errors.jsonl safe_to_finalize: false safe_to_retry: true recommended_concurrency: 8 ``` ### 补跑 ```bash python scripts/batch_label_sessions_v31.py \ --retry-plan retry_plan_only_errors.jsonl \ --only-errors \ --concurrency 8 \ --append-raw \ --no-overwrite-success ``` ### 验收 补跑后执行: ```bash python /Users/bytedance/Documents/job-bu/data-analysis-workspace/tools/ark_retry_diagnose.py verify-retry \ --input input/manual_sessions_5000.csv \ --raw output/raw/ark_v31_raw.jsonl \ --clean output/clean/ark_v31_clean.csv ``` 只有当报告返回 `safe_to_finalize: true`,并且 `input_unique == clean_success == 5000`、`failed == 0`、`success_overwritten == 0` 时,才进入 CSV/HTML/Excel/审计表生成。