- 写作输出合同增加 blocked 出口(仅 reason,写手纯写作负荷原则): oneOf paragraphs/blocked 二选一,双现或全缺由 schema 机械拒绝; LF/CR 换行语义移入合同 description(随装配进系统提示,模板减负) - 生成正文.md 输出段改为"输出与阻塞",阻塞出口说明 ≤2 行且注明 不得用于回避普通难度 - 生产消费:无工具写作步骤 blocked 分流——不登记方法消费、不产候选, 以 WRITING_FLOW_INVALID 明确失败呈现 reason(blocked 载荷已随 模型结构化交付留痕) - 评测消费:成对比较(逐例执行._比较材料)与语义检测(读取检测材料) 在读 paragraphs 前分流,blocked 单元明确失败不进比较/检测,杜绝 KeyError - 测试:契约四态(合法blocked/双现/全缺/越权字段);两阶段写手 blocked 集成用例(任务失败于无工具写作、无候选无消费);评测分流单测 证据:离线全量1155项通过;两阶段写手6项、回放资料封存12项、评测 收敛25项、受控模型调用15项数据库用例通过;模型任务备份恢复用例本体 通过(teardown 连接错误在 main 基线同样出现,属本机克隆库存量环境 问题,非本次回归)。合同哈希变更对跨版本存量任务恢复为明确失败 (失败关闭),与回放链路现行测试一致。
18 lines
888 B
Python
18 lines
888 B
Python
"""写手阻塞(blocked)交付在评测消费点的分流:不进成对比较、不做语义检测。"""
|
||
|
||
import pytest
|
||
|
||
from muse.效果评测.模型 import 评测错误
|
||
from muse.效果评测.语义检测 import 读取检测材料
|
||
from muse.效果评测.逐例执行 import _比较材料
|
||
|
||
|
||
@pytest.mark.case_id("NC-eval-blocked-writer-no-material")
|
||
def test_写手阻塞交付在比较与检测材料处明确失败():
|
||
阻塞写手 = {"output": {"blocked": {"reason": "死结"}}}
|
||
正常写手 = {"output": {"paragraphs": [{"text": "雨。"}]}}
|
||
with pytest.raises(评测错误, match="语义检测依赖的写手声明阻塞"):
|
||
读取检测材料(None, {"dependencies": ["u1"]}, 阻塞写手)
|
||
with pytest.raises(评测错误, match="成对比较的写手声明阻塞"):
|
||
_比较材料(None, {"dependencies": ["a", "b"]}, [正常写手, 阻塞写手])
|