feat: add video-split config knobs and reproducible script

This commit is contained in:
2026-07-15 12:54:25 -04:00
parent 43d7346526
commit 6a21d80313
6 changed files with 351 additions and 0 deletions
+25
View File
@@ -7,11 +7,36 @@ build_video_records / select_split。
from __future__ import annotations
import hashlib
import random
from dataclasses import dataclass, field
from loguru import logger
def diag_fingerprint(prompt_version: str, model: str, code_version: str) -> str:
"""由 (诊断 prompt 版本, 模型名, 代码 git 短 SHA) 合成诊断口径指纹。
诊断信号以 (question_id, baseline_run_id, diag_fingerprint) 为主键持久化,
指纹隔离不同诊断配置的信号——换 prompt 版本 / 换模型 / 换代码实现都会得到
新指纹,从而 `--force` 用新指纹重跑诊断时**不覆盖旧记录**(旧指纹行仍在),
保证不同口径的诊断结果可并存、可回溯、可比对。
参数:
prompt_version: 诊断 prompt 的版本标识(如 prompts/diagnose_*.md 的版本)。
model: 执行诊断的模型名(如 "deepseek-v4")。
code_version: 诊断代码的版本(约定为 git 短 SHA)。
返回:
16 位十六进制指纹(sha256 截断),对三分量任一变化敏感、对相同三元组确定。
实现细节:
三分量用 "|" 分隔后 sha256,取前 16 位;分隔符防止 ("ab","c") 与 ("a","bc")
碰撞成同一指纹。纯函数,相同输入永远同输出,可安全用于主键。
"""
return hashlib.sha256("|".join([prompt_version, model, code_version]).encode()).hexdigest()[:16]
_EVOLUTION_TARGET = {
"extraction_failure": "tool",
"search_failure": "skill",