feat(scenarios): 增强场景摘要与题型展示
This commit is contained in:
@@ -36,9 +36,23 @@ def _get_nested(config: dict, path: tuple[str, ...]):
|
||||
|
||||
|
||||
def validate_scenario(config: dict) -> dict:
|
||||
# 只校验真正影响运行闭环的必填字段;
|
||||
# 页面展示类字段如 applicable_questions 允许缺失,并在归一化阶段补默认值。
|
||||
for field_path in REQUIRED_FIELDS:
|
||||
_get_nested(config, field_path)
|
||||
return config
|
||||
return normalize_scenario(config)
|
||||
|
||||
|
||||
def normalize_scenario(config: dict) -> dict:
|
||||
"""补齐页面和其他模块常用的派生字段,减少模板中的条件判断。"""
|
||||
normalized = dict(config)
|
||||
normalized["applicable_questions"] = list(config.get("applicable_questions") or [])
|
||||
normalized["rag"] = dict(config.get("rag", {}))
|
||||
normalized["rag"]["enabled"] = bool(normalized["rag"].get("enabled"))
|
||||
normalized["tools"] = list(config.get("tools") or [])
|
||||
normalized["tool_count"] = len(normalized["tools"])
|
||||
normalized["is_enabled"] = True
|
||||
return normalized
|
||||
|
||||
|
||||
def _scenario_files() -> list[Path]:
|
||||
@@ -49,6 +63,7 @@ def _scenario_files() -> list[Path]:
|
||||
|
||||
|
||||
def list_scenarios() -> list[dict]:
|
||||
# 首页每次读取最新 YAML,便于复试现场快速改题。
|
||||
scenarios = []
|
||||
for path in _scenario_files():
|
||||
with path.open("r", encoding="utf-8") as file:
|
||||
|
||||
Reference in New Issue
Block a user