feat: integrate production cockpit AI assistant

This commit is contained in:
vee
2026-09-08 17:46:07 +08:00
parent 5e228e12ae
commit 93103c2579
66 changed files with 11046 additions and 374 deletions
@@ -8,13 +8,14 @@ from unittest.mock import MagicMock, patch
import pytest
from cognitive_agent.application.assistant_capabilities import AssistantCapabilityCatalog
from cognitive_agent.application.codex_assistant import CodexAssistantService
from cognitive_agent.application.mode_profile import ModeProfileRegistry
from cognitive_agent.application.mode_profile_intent import (
is_mode_profile_query,
parse_mode_profile_detail_query,
parse_mode_profile_update,
)
from cognitive_agent.application.assistant_capabilities import AssistantCapabilityCatalog
from cognitive_agent.application.mode_profile import ModeProfileRegistry
from cognitive_agent.application.native_can_runtime import NativeCanCompileError
from cognitive_agent.application.seat_service import (
REPOSITORY_ROOT,
@@ -830,6 +831,91 @@ def test_device_property_mode_is_not_a_named_mode_profile_update(
assert SeatDemoService._parse_mode_profile_update(message) is None
@pytest.mark.parametrize(
"message",
(
"空调出风模式设置为吹面和吹脚,主驾空调温度设置为24度",
"空调出风模式设置为吹面和吹脚;副驾空调温度设置为24度",
"空调出风模式设置为吹面和吹脚,空调设置为自动控制",
"空调出风模式设置为吹面和吹脚,主驾座椅按摩模式设置为放松",
"主驾座椅按摩模式设置为放松,按摩强度设置为中等",
"把空调出风模式的出风方向设置为吹面和吹脚",
"调整主驾座椅按摩模式的强度为中等",
"副驾座椅零重力模式的状态设为开启",
"空调出风模式有哪些选项?",
"主驾座椅按摩模式是什么?",
),
)
def test_device_property_mode_commands_and_questions_are_not_saved_mode_queries(
message: str,
) -> None:
assert parse_mode_profile_detail_query(message) is None
assert not is_mode_profile_query(message)
assert parse_mode_profile_update(message) is None
@pytest.mark.parametrize(
"message",
(
"空调出风模式设置为吹面和吹脚,副驾空调温度设置为24度",
"主驾座椅按摩模式设置为放松,氛围灯亮度设置为3档",
),
)
def test_device_property_mode_combinations_continue_to_execute_as_vehicle_control(
vehicle_service: SeatDemoService,
message: str,
) -> None:
result = vehicle_service.process(
message,
provider="local",
conversation_id="conv-device-property-mode-control",
execution_mode="dry_run",
vehicle_id="denza_n7",
)
assert result["status"] == "succeeded"
assert result.get("orchestration_route") != "mode_profile_query"
assert not SeatDemoService.is_mode_profile_configuration_request(message)
def test_quoted_device_property_name_can_explicitly_address_a_saved_mode() -> None:
assert parse_mode_profile_detail_query("查看“空调出风模式”的配置") == (
"空调出风模式"
)
assert parse_mode_profile_update(
"把“空调出风模式”的温度调整到25度"
) == ("空调出风模式", "温度调整到25度")
@pytest.mark.parametrize(
"message",
(
"办公模式的设备?",
"办公模式配置?",
"办公模式下的动作?",
),
)
def test_terminal_question_mark_keeps_short_saved_mode_detail_queries_read_only(
message: str,
) -> None:
assert parse_mode_profile_detail_query(message) == "办公模式"
assert is_mode_profile_query(message)
@pytest.mark.parametrize(
"message",
(
"办公模式的设备。",
"办公模式配置。",
"空调出风模式设置为吹面和吹脚,温度设置为24度",
),
)
def test_plain_mode_nouns_without_a_read_cue_are_not_detail_queries(
message: str,
) -> None:
assert parse_mode_profile_detail_query(message) is None
@pytest.mark.parametrize(
("message", "expected"),
(