306 lines
7.6 KiB
JSON
306 lines
7.6 KiB
JSON
{
|
||
"schema_version": "muse-fixture-model-events-v1",
|
||
"来源": "合成样例(W01 首批保护夹具);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": "乱序。"
|
||
}
|
||
}
|
||
]
|
||
} |