feat: integrate production cockpit AI assistant
This commit is contained in:
@@ -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"),
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user