fix: run_gates must use current_tree after video resample
This commit is contained in:
@@ -468,7 +468,7 @@ async def _process_one_slot(
|
|||||||
try:
|
try:
|
||||||
report = await run_gates(
|
report = await run_gates(
|
||||||
candidate=candidate,
|
candidate=candidate,
|
||||||
tree=tree,
|
tree=current_tree,
|
||||||
llm=llm,
|
llm=llm,
|
||||||
leak_probe_template=strategy.leak_probe_template,
|
leak_probe_template=strategy.leak_probe_template,
|
||||||
postprocess=pp,
|
postprocess=pp,
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
"""守卫 gate tree 错配 bug:run_gates 必须用 current_tree(换视频后的当前树)。"""
|
||||||
|
|
||||||
|
import ast
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
_PIPELINE = Path(__file__).resolve().parents[2] / "app" / "question_gen" / "pipeline_v2.py"
|
||||||
|
|
||||||
|
|
||||||
|
def _find_run_gates_tree_arg() -> str:
|
||||||
|
"""解析 pipeline_v2.py,返回 run_gates 调用中 tree= 关键字实参的变量名。"""
|
||||||
|
tree_src = ast.parse(_PIPELINE.read_text(encoding="utf-8"))
|
||||||
|
for node in ast.walk(tree_src):
|
||||||
|
if isinstance(node, ast.Call):
|
||||||
|
func = node.func
|
||||||
|
name = getattr(func, "id", None) or getattr(func, "attr", None)
|
||||||
|
if name == "run_gates":
|
||||||
|
for kw in node.keywords:
|
||||||
|
if kw.arg == "tree":
|
||||||
|
assert isinstance(kw.value, ast.Name)
|
||||||
|
return kw.value.id
|
||||||
|
raise AssertionError("未找到 run_gates 的 tree= 关键字实参")
|
||||||
|
|
||||||
|
|
||||||
|
def test_run_gates_uses_current_tree():
|
||||||
|
assert _find_run_gates_tree_arg() == "current_tree"
|
||||||
Reference in New Issue
Block a user