feat: add video-split config knobs and reproducible script
This commit is contained in:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user