- 归档并收敛 R2 历史留痕至 docs/实现回顾/R2改造历史留痕.md,删除已退出生命周期的改造计划、旧文件处置及验证过程文档 - 现行测试用例身份收敛至 tests/用例清单.json(1358条扁平登记),适配 conftest、索引维护与测试执行验证 - 清理源码、配置、SQL迁移头、测试夹具及规则文档中的 Wxx 实施分期标签与过时过程描述 - 同步重新打包构建资源清单,通过全量离线测试、模块边界、类型检查与索引双向强核验
306 lines
7.5 KiB
JSON
306 lines
7.5 KiB
JSON
{
|
||
"schema_version": "muse-fixture-model-events-v1",
|
||
"来源": "合成样例;provider/model 均为占位符,不指向真实服务",
|
||
"合同": "docs/系统架构/新版设计/接口契约/任务工具与事件.md",
|
||
"语义": "terminal_state 取 completed/truncated/failed/no_completion_basis;usage_state 取 known/unknown",
|
||
"scenarios": [
|
||
{
|
||
"scenario_id": "model-normal-completion",
|
||
"说明": "分片输出→finish(stop)→回执含用量:构成有效完成",
|
||
"events": [
|
||
{
|
||
"type": "assistant/chunk",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"chunk": {
|
||
"type": "text",
|
||
"text": "夜色"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "assistant/chunk",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"chunk": {
|
||
"type": "text",
|
||
"text": "渐深。"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "assistant/chunk",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"chunk": {
|
||
"type": "finish",
|
||
"reason": {
|
||
"kind": "stop"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "assistant/message",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"message": {
|
||
"source": {
|
||
"provider": "synthetic",
|
||
"model": "fixture-model"
|
||
},
|
||
"content": [
|
||
{
|
||
"type": "text",
|
||
"text": "夜色渐深。"
|
||
}
|
||
]
|
||
},
|
||
"usage": {
|
||
"inputTokens": 100,
|
||
"outputTokens": 8,
|
||
"costUsd": 0.001
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"expected": {
|
||
"terminal_state": "completed",
|
||
"finish_reason": "stop",
|
||
"usage_state": "known",
|
||
"final_text": "夜色渐深。"
|
||
}
|
||
},
|
||
{
|
||
"scenario_id": "model-truncated-by-length",
|
||
"说明": "finish(length):明确终态=截断,不是成功完成",
|
||
"events": [
|
||
{
|
||
"type": "assistant/chunk",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"chunk": {
|
||
"type": "text",
|
||
"text": "长文未完"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "assistant/chunk",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"chunk": {
|
||
"type": "finish",
|
||
"reason": {
|
||
"kind": "length"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "assistant/message",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"message": {
|
||
"source": {
|
||
"provider": "synthetic",
|
||
"model": "fixture-model"
|
||
},
|
||
"content": [
|
||
{
|
||
"type": "text",
|
||
"text": "长文未完"
|
||
}
|
||
]
|
||
},
|
||
"usage": {
|
||
"inputTokens": 100,
|
||
"outputTokens": 4096
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"expected": {
|
||
"terminal_state": "truncated",
|
||
"finish_reason": "length",
|
||
"usage_state": "known"
|
||
}
|
||
},
|
||
{
|
||
"scenario_id": "model-stream-close-without-finish",
|
||
"说明": "流关闭但无完成信号:无有效完成依据,不得判成功",
|
||
"events": [
|
||
{
|
||
"type": "assistant/chunk",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"chunk": {
|
||
"type": "text",
|
||
"text": "半句"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "assistant/chunk",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"chunk": {
|
||
"type": "text",
|
||
"text": "话"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"expected": {
|
||
"terminal_state": "no_completion_basis",
|
||
"usage_state": "unknown",
|
||
"notes": "保留部分输出或失败,不得计为完成;文本片段不是完成事件"
|
||
}
|
||
},
|
||
{
|
||
"scenario_id": "model-midstream-error",
|
||
"说明": "分片后错误事件:终态=失败,错误可见",
|
||
"events": [
|
||
{
|
||
"type": "assistant/chunk",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"chunk": {
|
||
"type": "text",
|
||
"text": "开始"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "assistant/error",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"error": {
|
||
"code": "provider_unavailable",
|
||
"message": "合成错误:上游不可用"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"expected": {
|
||
"terminal_state": "failed",
|
||
"error_code": "provider_unavailable",
|
||
"usage_state": "unknown"
|
||
}
|
||
},
|
||
{
|
||
"scenario_id": "model-unknown-usage",
|
||
"说明": "finish(stop) 与回执均出现,但用量缺失:完成与用量未知分别表示",
|
||
"events": [
|
||
{
|
||
"type": "assistant/chunk",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"chunk": {
|
||
"type": "text",
|
||
"text": "完成句子。"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "assistant/chunk",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"chunk": {
|
||
"type": "finish",
|
||
"reason": {
|
||
"kind": "stop"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "assistant/message",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"message": {
|
||
"source": {
|
||
"provider": "synthetic",
|
||
"model": "fixture-model"
|
||
},
|
||
"content": [
|
||
{
|
||
"type": "text",
|
||
"text": "完成句子。"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"expected": {
|
||
"terminal_state": "completed",
|
||
"finish_reason": "stop",
|
||
"usage_state": "unknown",
|
||
"notes": "未知用量单独表示,不填 0、不猜测、不冒充已结算"
|
||
}
|
||
},
|
||
{
|
||
"scenario_id": "model-finish-after-message",
|
||
"说明": "回执先到、finish 信号后到(乱序容错反例):仍可判完成,但依据是两者齐备",
|
||
"events": [
|
||
{
|
||
"type": "assistant/message",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"message": {
|
||
"source": {
|
||
"provider": "synthetic",
|
||
"model": "fixture-model"
|
||
},
|
||
"content": [
|
||
{
|
||
"type": "text",
|
||
"text": "乱序。"
|
||
}
|
||
]
|
||
},
|
||
"usage": {
|
||
"inputTokens": 10,
|
||
"outputTokens": 2
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "assistant/chunk",
|
||
"data": {
|
||
"turn": 1,
|
||
"step": 1,
|
||
"chunk": {
|
||
"type": "finish",
|
||
"reason": {
|
||
"kind": "stop"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"expected": {
|
||
"terminal_state": "completed",
|
||
"finish_reason": "stop",
|
||
"usage_state": "known",
|
||
"final_text": "乱序。"
|
||
}
|
||
}
|
||
]
|
||
} |