feat: QA 护栏 + fallback 路由(T15 架构审查整改收官,OV6)
- src/genesis/qa/guardrails.py: resolve_qa_model() 强制 QA 走 fallback 模型(防 DeepSeek 校验 DeepSeek 自校验盲区);QALoopController(max_rounds=3) 约束 「QA→Writer修正→重校验」循环边界防无限 - 集成测试验证 QA 调用实际落到 fallback 而非 primary(FakeLLMClient 记录 model) - design.md §7.4 补 QA 护栏说明(循环边界 + 独立校验模型) - TDD:257 passed / 100.00% 覆盖,17 项架构审查整改全部完成
This commit is contained in:
@@ -1023,6 +1023,16 @@ QA 输出:
|
||||
→ Writer 只修正错误章节(不重新生成全部)
|
||||
→ 重新 QA 校验
|
||||
|
||||
> **QA 护栏(T15 机制化,对应审查 OV6)**:
|
||||
> 1. **循环边界**:「QA 校验 → Writer 修正 → 重新校验」循环受 `QALoopController`
|
||||
> (`DEFAULT_MAX_QA_ROUNDS=3`)约束,超过上限必须停止并上报人工/降级处理,
|
||||
> 禁止无限重试(`src/genesis/qa/guardrails.py`)。
|
||||
> 2. **独立校验模型(防自校验盲区)**:QA 校验强制走 `resolve_qa_model()` 返回的
|
||||
> **fallback 模型**(如 qwen-max),不得与生成主模型(deepseek-chat)同源;
|
||||
> 否则「DeepSeek 生成 + DeepSeek 校验」会形成同族模型盲点,难以发现自身偏误。
|
||||
> 无 fallback 配置时返回 None,迫使调用方显式指定独立校验模型,而非静默回退主模型。
|
||||
> 实现调用示例:`engine.chat(session_id=..., prompt=..., model=resolve_qa_model(models))`。
|
||||
|
||||
### 7.5 黄金集与评分器(T13 机制化,OV4)
|
||||
|
||||
> OV4 裁定:成功标准须有量度 → 建立黄金集 + 评分器(已实现于 `src/genesis/eval/`)。
|
||||
|
||||
Reference in New Issue
Block a user