fix: keep cross_segment rule single-dimension, guard no-absent-events

This commit is contained in:
2026-07-14 14:31:30 -04:00
parent 58278c6de4
commit b1f15ddb3a
2 changed files with 2 additions and 3 deletions
@@ -180,7 +180,7 @@ _CROSS_SEGMENT_ENTITY_TRACKING = SubPattern(
], ],
distractor_rules=( distractor_rules=(
"干扰项须是视频中【另一真实实体】在相应片段真实做过的动作," "干扰项须是视频中【另一真实实体】在相应片段真实做过的动作,"
"仅在【动作主体】这一单一维度上与正解不同;或构造只覆盖部分片段的真实子集" "仅在【动作主体】这一单一维度上与正解不同。"
"严禁编造任何实体未做过的缺席动作。" "严禁编造任何实体未做过的缺席动作。"
), ),
) )
@@ -2,14 +2,13 @@
from app.question_gen.strategy_action_recognition import AR_SUB_PATTERNS from app.question_gen.strategy_action_recognition import AR_SUB_PATTERNS
_REQUIRED = ["真实", "单一维度"] # 每个 distractor_rules 都需强调 grounded + 单维
def test_all_sub_patterns_enforce_single_dimension_counterfactual(): def test_all_sub_patterns_enforce_single_dimension_counterfactual():
for sp in AR_SUB_PATTERNS: for sp in AR_SUB_PATTERNS:
rules = sp.distractor_rules rules = sp.distractor_rules
assert "真实" in rules, sp.name # 干扰项须真实发生 assert "真实" in rules, sp.name # 干扰项须真实发生
assert ("单一维度" in rules or "只在" in rules or "仅在" in rules), sp.name assert ("单一维度" in rules or "只在" in rules or "仅在" in rules), sp.name
assert ("缺席" in rules or "未出现" in rules or "凭空" in rules), sp.name
def test_sub_pattern_count_unchanged(): def test_sub_pattern_count_unchanged():