Files
Cognitive_Agent/docs/testing/自然语言转CAN控制指令测试报告.md
2026-08-25 11:39:41 +08:00

5.6 KiB
Raw Permalink Blame History

自然语言转 CAN 控制指令测试报告

1. 测试结论

项目 结果
测试日期 2026-08-25
pytest 测试入口 2
生成式组合用例 1133
定向 CAN0/CAN1 组合用例 6
实际执行子用例 1139
通过 1139
失败 0
跳过 0
通过率 100%
执行耗时 35.42 s

**结论:**当前本地规则能够将本次覆盖的自然语言控制指令正确解析为 CAN0/CAN1 语义控制指令;跨通道组合中,副驾座椅指令保持在 CAN0,主驾座椅、空调、灯光、车窗、门锁和遮阳帘等指令保持在 CAN1。白名单外指令未生成 CAN 控制流。

2. 测试方式

  • 解析器:本地规则(provider=local)
  • 执行模式:dry_run
  • 硬件执行:关闭
  • 真实 CAN 报文下发:未进行
  • 测试入口:tests/integration/test_natural_can_command_combinations.py
  • 机器可执行用例:tests/fixtures/natural_can_command_combination_suite.json
  • 完整逐条用例:docs/testing/自然语言转CAN组合测试用例.csv

执行命令:

PYTHONPATH=src:domains/seat/src .venv/bin/python -m pytest -q tests/integration/test_natural_can_command_combinations.py

原始结果:

2 passed, 2 warnings, 1139 subtests passed in 35.42s

2 个警告均为 jsonschema.RefResolver 弃用提示,不影响本次解析结果。

3. 1133 条生成式用例分布

3.1 按组合类型

用例类型 数量 说明
atomic 177 单条原子指令
pairwise 300 两两组合
pairwise_separator_variant 300 两两组合的不同分隔方式
three_command 84 三指令组合
four_command 126 四指令组合
cross_can0_can1 120 CAN0/CAN1 跨通道组合
multi_command_scene 10 常用多指令场景
safety_rejection 16 白名单外和不安全输入拒绝
合计 1133

3.2 按 CAN 通道

预期通道 数量 说明
CAN0 13 副驾座椅单通道控制
CAN1 899 车身、空调、主驾座椅、灯光等控制
CAN0 + CAN1 205 副驾座椅与车身功能组合控制
none 16 安全拒绝,不应生成控制指令
合计 1133

4. 代表性解析结果

自然语言输入 通道 预期 CAN 语义控制指令/操作 结果
后排车门上锁 CAN1 door rear lock 通过
打开左前车窗 CAN1 window front-left open 通过
副驾驶座椅加热开到2档 CAN0 seat.set_heating(state=on, level=2) 通过
后排车门上锁,打开左前车窗,副驾驶座椅加热开到2档 CAN0 + CAN1 CAN1: door rear lock; CAN1: window front-left open; CAN0: seat.set_heating(state=on, level=2) 通过
开启木马模式并打开氛围灯 CAN0 + CAN1 CAN0: seat.start_dynamic_mode(mode_id=1); CAN1: light ambient on 通过
开启动态摇篮模式,空调24度,打开遮阳帘 CAN0 + CAN1 CAN0: seat.start_dynamic_mode(mode_id=2); CAN1: ac temp driver 24; CAN1: shade open 通过
副驾座椅前后调到20%、坐盆调到30%、靠背调到40%、腿托调到50%,空调风量3档,关闭全部车窗 CAN0 + CAN1 CAN0: 四轴绝对位置 20/30/40/50; CAN1: ac fan 3; CAN1: window all close 通过
副驾靠背向后移动15%,主驾温度设为25度,遮阳帘打开 CAN0 + CAN1 CAN0: 靠背相对后移 15%; CAN1: ac temp driver 25; CAN1: shade open 通过
主驾座椅通风4档 none 白名单外,不生成 CAN 指令 通过
主驾进入零重力模式 none 未验证能力,不生成 CAN 指令 通过

5. 6 条新增定向 CAN0/CAN1 用例

# 自然语言 CAN0 结果 CAN1 结果
1 把副驾座椅水平位置调到35%,空调温度设置为24度,打开氛围灯 水平绝对位置 35% ac temp driver 24; light ambient on
2 副驾坐盆向上调整10%,关闭后排车窗,空调风量2档 坐盆相对上调 10% window rear close; ac fan 2
3 开启木马模式并打开氛围灯 木马模式 light ambient on
4 开启动态摇篮模式,空调24度,打开遮阳帘 摇篮模式 ac temp driver 24; shade open
5 副驾座椅前后调到20%、坐盆调到30%、靠背调到40%、腿托调到50%,空调风量3档,关闭全部车窗 四轴绝对位置 ac fan 3; window all close
6 副驾靠背向后移动15%,主驾温度设为25度,遮阳帘打开 靠背相对后移 15% ac temp driver 25; shade open

以上 6 条用例全部通过。

6. 覆盖能力

  • CAN0:副驾座椅加热、通风、绝对位置、相对位置、木马模式和摇篮模式。
  • CAN1:门锁、车窗、空调、风口、主驾座椅、室内灯、阅读灯、氛围灯和遮阳帘。
  • 组合解析:两指令、三指令、四指令、场景化多指令以及 CAN0/CAN1 跨通道组合。
  • 位置语义:主驾、副驾、左前、右前、左后、右后、前排、后排。
  • 安全约束:越界档位、未验证能力和白名单外目标不生成 CAN 控制流。

7. 范围和限制

  1. 本报告验证的是“自然语言 → CAN 语义控制指令/操作”解析层。
  2. 本次使用 dry_run,未向真实 CAN0/CAN1 总线或 MQTT Broker 下发报文。
  3. 通过本报告不等于实车执行器、USB-CAN 适配器、MQTT 转发和 ECU 物理动作已完成端到端验证。
  4. 如需验证真实执行,应单独进行有线 CAN 和无线 MQTT 台架测试,并记录原始报文、状态回馈和物理动作。