163 lines
7.4 KiB
JSON
163 lines
7.4 KiB
JSON
{
|
||
"version": "2026-07-26",
|
||
"description": "LangGraph 迁移的脱敏黄金场景。占位符不是可用个人信息。",
|
||
"scenarios": [
|
||
{
|
||
"case_id": "single_vehicle_happy_path",
|
||
"category": "end_to_end",
|
||
"initial_stage": "1001",
|
||
"turns": [
|
||
{"event": "session_started", "input": "【继续办理】", "expected_stage": "1002"},
|
||
{"event": "user_message", "input": "车辆倒车时碰到了固定物体", "expected_stage": "1002", "expected_patch": {"sgyy": "倒车碰到固定物体"}},
|
||
{"event": "user_message", "input": "没有人员受伤", "expected_stage": "1002", "expected_patch": {"ywrysw": false}},
|
||
{"event": "user_message", "input": "没有非机动车", "expected_stage": "1002", "expected_patch": {"ywfjdc": false}},
|
||
{"event": "user_message", "input": "事故时间是十分钟前", "expected_stage": "1002"},
|
||
{"event": "user_message", "input": "我还在现场", "expected_stage": "1002", "expected_patch": {"sfsgxc": true}},
|
||
{"event": "user_message", "input": "只有一辆机动车", "expected_stage": "2000", "expected_patch": {"jdcsl": 1}},
|
||
{"event": "photo_completed", "input": "【拍摄完成】", "expected_stage": "2001"},
|
||
{"event": "photo_completed", "input": "【拍摄完成】", "expected_stage": "2002"},
|
||
{"event": "photo_completed", "input": "【拍摄完成】", "expected_stage": "2003"},
|
||
{"event": "photo_completed", "input": "【拍摄完成】", "expected_stage": "2004"},
|
||
{"event": "user_message", "input": "车牌正确", "expected_stage": "2005"},
|
||
{"event": "user_message", "input": "车损在车辆前方", "expected_stage": "3001", "expected_patch": {"csbw1": "前方"}}
|
||
],
|
||
"expected_handoff_reason": null
|
||
},
|
||
{
|
||
"case_id": "double_vehicle_happy_path",
|
||
"category": "end_to_end",
|
||
"initial_stage": "1002",
|
||
"turns": [
|
||
{"event": "user_message", "input": "两辆机动车发生追尾,没有人受伤,也没有非机动车", "expected_stage": "1002", "expected_patch": {"jdcsl": 2, "ywrysw": false, "ywfjdc": false, "sgyy": "追尾"}},
|
||
{"event": "user_message", "input": "时间正确,我还在现场", "expected_stage": "2010", "expected_patch": {"sfsgxc": true}},
|
||
{"event": "photo_completed", "input": "【拍摄完成】", "expected_stage": "2011"},
|
||
{"event": "photo_completed", "input": "【拍摄完成】", "expected_stage": "2012"},
|
||
{"event": "photo_completed", "input": "【拍摄完成】", "expected_stage": "2013"},
|
||
{"event": "photo_completed", "input": "【拍摄完成】", "expected_stage": "2014"},
|
||
{"event": "photo_completed", "input": "【拍摄完成】", "expected_stage": "2015"},
|
||
{"event": "photo_completed", "input": "【拍摄完成】", "expected_stage": "2016"},
|
||
{"event": "user_message", "input": "车牌正确", "expected_stage": "3002"}
|
||
],
|
||
"expected_handoff_reason": null
|
||
},
|
||
{
|
||
"case_id": "explicit_handoff_global",
|
||
"category": "handoff",
|
||
"initial_stage": "2002",
|
||
"turns": [
|
||
{"event": "user_message", "input": "请帮我转人工", "expected_stage": "0001"}
|
||
],
|
||
"expected_handoff_reason": "user_requested"
|
||
},
|
||
{
|
||
"case_id": "injury_handoff",
|
||
"category": "safety",
|
||
"initial_stage": "1002",
|
||
"turns": [
|
||
{"event": "user_message", "input": "有人倒地并且不舒服", "expected_stage": "0003", "expected_patch": {"ywrysw": true}}
|
||
],
|
||
"expected_handoff_reason": "injury_or_complex"
|
||
},
|
||
{
|
||
"case_id": "injury_negation_does_not_handoff",
|
||
"category": "safety",
|
||
"initial_stage": "1002",
|
||
"turns": [
|
||
{"event": "user_message", "input": "不是人受伤,是车受损,人没事", "expected_stage": "1002", "expected_patch": {"ywrysw": false}}
|
||
],
|
||
"expected_handoff_reason": null
|
||
},
|
||
{
|
||
"case_id": "three_vehicle_complex_handoff",
|
||
"category": "safety",
|
||
"initial_stage": "1002",
|
||
"turns": [
|
||
{"event": "user_message", "input": "一共涉及三辆机动车", "expected_stage": "0003", "expected_patch": {"jdcsl": 3}}
|
||
],
|
||
"expected_handoff_reason": "complex_accident"
|
||
},
|
||
{
|
||
"case_id": "photo_failure_single",
|
||
"category": "deterministic_event",
|
||
"initial_stage": "2001",
|
||
"turns": [
|
||
{"event": "photo_recognition_failed", "input": "【客户端连续3次拍摄识别失败:图片过于模糊】", "expected_stage": "0005"}
|
||
],
|
||
"expected_handoff_reason": "photo_recognition_failed"
|
||
},
|
||
{
|
||
"case_id": "photo_failure_double_confirmation",
|
||
"category": "deterministic_event",
|
||
"initial_stage": "2016",
|
||
"turns": [
|
||
{"event": "photo_recognition_failed", "input": "【客户端连续3次拍摄识别失败:未识别到完整车牌】", "expected_stage": "0005"}
|
||
],
|
||
"expected_handoff_reason": "photo_recognition_failed"
|
||
},
|
||
{
|
||
"case_id": "two_consecutive_no_responses",
|
||
"category": "deterministic_event",
|
||
"initial_stage": "1002",
|
||
"turns": [
|
||
{"event": "no_response", "input": "【用户无回复】", "expected_stage": "1002", "expected_no_response_count": 1},
|
||
{"event": "no_response", "input": "【用户无回复】", "expected_stage": "0004", "expected_no_response_count": 2}
|
||
],
|
||
"expected_handoff_reason": "no_response"
|
||
},
|
||
{
|
||
"case_id": "photo_step_cannot_skip",
|
||
"category": "transition_guard",
|
||
"initial_stage": "2011",
|
||
"turns": [
|
||
{"event": "user_message", "input": "后面的照片我都拍好了", "expected_stage": "2011"},
|
||
{"event": "photo_completed", "input": "【拍摄完成】", "expected_stage": "2012"}
|
||
],
|
||
"expected_handoff_reason": null
|
||
},
|
||
{
|
||
"case_id": "external_update_then_chat",
|
||
"category": "state_consistency",
|
||
"initial_stage": "1002",
|
||
"initial_form": {"hphm1": "<PLATE_1>"},
|
||
"turns": [
|
||
{"event": "set_info", "input": {"key": "hphm1", "value": "<PLATE_CORRECTED>"}, "expected_stage": "1002", "expected_patch": {"hphm1": "<PLATE_CORRECTED>"}},
|
||
{"event": "user_message", "input": "请继续办理", "expected_stage": "1002", "expected_state_contains": {"hphm1": "<PLATE_CORRECTED>"}}
|
||
],
|
||
"expected_handoff_reason": null
|
||
},
|
||
{
|
||
"case_id": "invalid_external_internal_field",
|
||
"category": "state_consistency",
|
||
"initial_stage": "1002",
|
||
"turns": [
|
||
{"event": "set_info", "input": {"key": "stage_code", "value": "0000"}, "expected_error": "INVALID_FIELD", "expected_stage": "1002"}
|
||
],
|
||
"expected_handoff_reason": null
|
||
},
|
||
{
|
||
"case_id": "prefix_split_across_chunks",
|
||
"category": "prefix_parser",
|
||
"initial_stage": "1002",
|
||
"stream_chunks": ["<sta", "te>1002", "</sta", "te>请描述事故经过"],
|
||
"expected_stage": "1002",
|
||
"expected_text": "请描述事故经过"
|
||
},
|
||
{
|
||
"case_id": "prefix_unknown_code",
|
||
"category": "prefix_parser",
|
||
"initial_stage": "1002",
|
||
"model_output": "<state>9999</state>继续处理",
|
||
"expected_error": "UNKNOWN_STAGE_CODE",
|
||
"expected_stage": "1002"
|
||
},
|
||
{
|
||
"case_id": "prefix_illegal_photo_jump",
|
||
"category": "prefix_parser",
|
||
"initial_stage": "2000",
|
||
"model_output": "<state>2004</state>请确认车牌",
|
||
"expected_error": "ILLEGAL_STAGE_TRANSITION",
|
||
"expected_stage": "2000"
|
||
}
|
||
]
|
||
}
|