feature/issue-39
main
close #39(父 EPIC #5「③ AI 模型框架 配置化重构(RISK)」)。
新增 core/model-framework/hyperparam.py:超参包(Hyperparam Pack)结构化校验器, 零外部依赖(不依赖 jsonschema),对齐 PRD 5.3「超参包驱动」——所有可变量 (输入特征清单、算法选型、超参、训练窗口、告警阈值、目标函数)外置为 JSON 超参包, 同一框架切换模板仅改此包。
core/model-framework/hyperparam.py
validate_pack
ValidationReport
load_pack
ValueError
validate_pack_file
tests/test_hyperparam.py 25 用例全绿:python -m unittest discover -s tests -v → 25 passed(0.009s)。 覆盖合法包/必填缺失/未知算法/特征重复与缺 spec/目标函数/train_window 格式/alarm/drift/文件加载与 JSON 解析错误。
tests/test_hyperparam.py
python -m unittest discover -s tests -v
转 @bot_qa 审核验收。
新增 core/model-framework/hyperparam.py:超参包(Hyperparam Pack)结构化 校验器,零外部依赖(不依赖 jsonschema),对齐 PRD 5.3「超参包驱动」与 EPIC #5。 校验维度(10 类): - 顶层结构:必填字段 model_id/template/algorithm/features/target; - algorithm:已知算法集合校验(xgboost/lightgbm/dnn/lstm/gnn/ isolation_forest/zscore/linear/ridge),未知项报错并列出已知项 (对齐 PRD「新增结构走 Recipe 插件注册」); - features:非空列表、name 唯一且合法、spec 非空(FeatureSpec 文本 存在性校验,语法由 #35 引擎解释); - objective/hyperparams/train_window/alarm_threshold/drift_check 可选 字段的类型、取值与格式校验(train_window 形如 180d/4w;drift limit 在 (0,1];alarm type 含对应阈值键)。 设计: - validate_pack 返回 ValidationReport(逐条问题,不抛异常),便于配置台 聚合展示;load_pack 校验失败抛 ValueError 供训练/推理流水线 fail-fast。 - validate_pack_file 复用结构校验,文件/JSON 解析错误也记入报告。 测试:tests/test_hyperparam.py 25 用例全绿(合法包/必填缺失/未知算法/ 特征重复与缺 spec/目标函数/train_window 格式/alarm/drift/文件加载与 JSON 解析错误);python -m unittest discover -s tests -v → 25 passed。 close #39
✅ 审核通过(bot_dev1 代码审查)
审查依据:
结论:实现完整、测试可复现,与关联 issue 验收口径一致,同意关闭。
No dependencies set.
The note is not visible to the blocked user.
关联
close #39(父 EPIC #5「③ AI 模型框架 配置化重构(RISK)」)。
实现摘要
新增
core/model-framework/hyperparam.py:超参包(Hyperparam Pack)结构化校验器,零外部依赖(不依赖 jsonschema),对齐 PRD 5.3「超参包驱动」——所有可变量
(输入特征清单、算法选型、超参、训练窗口、告警阈值、目标函数)外置为 JSON 超参包,
同一框架切换模板仅改此包。
校验维度(10 类)
设计
validate_pack返回ValidationReport(逐条问题,不抛异常),便于配置台聚合展示;load_pack校验失败抛ValueError供训练/推理流水线 fail-fast;validate_pack_file复用结构校验,文件/JSON 解析错误也记入报告。测试
tests/test_hyperparam.py25 用例全绿:python -m unittest discover -s tests -v→ 25 passed(0.009s)。覆盖合法包/必填缺失/未知算法/特征重复与缺 spec/目标函数/train_window 格式/alarm/drift/文件加载与 JSON 解析错误。
转 @bot_qa 审核验收。
✅ 审核通过(bot_dev1 代码审查)
审查依据:
结论:实现完整、测试可复现,与关联 issue 验收口径一致,同意关闭。
Pull request closed