diff --git a/ai-web-agent-console/config/hmm_demo_scenarios.json b/ai-web-agent-console/config/hmm_demo_scenarios.json index 4f032db..7e7149a 100644 --- a/ai-web-agent-console/config/hmm_demo_scenarios.json +++ b/ai-web-agent-console/config/hmm_demo_scenarios.json @@ -40,23 +40,37 @@ { "id": "FED-01", "enabled": true, - "category": "선사 실적 Federation", - "title": "팀원별 담당 선사 최신 실적", - "question": "E1001 팀장의 팀원별 담당 선사와 해당 선사의 최신 매출, 매출총이익, 정시 운항률, 위험 등급을 보여줘" + "category": "선사 실적", + "title": "우리 팀 담당 선사 최신 실적", + "question": "우리 팀원별 담당 선사와 각 선사의 최신 매출, 매출총이익, 정시 운항률, 위험 등급을 보여줘" }, { "id": "FED-02", "enabled": true, - "category": "선사 실적 Federation", - "title": "위험 선사와 담당자", - "question": "E1001 팀에서 최신 위험 등급이 RED인 선사를 담당하는 직원, 선사명, 매출, 정시 운항률과 클레임 발생률을 보여줘" + "category": "선사 실적", + "title": "주의가 필요한 선사", + "question": "우리 팀이 담당하는 선사 중 최신 위험 등급이 RED인 선사의 담당자, 선사명, 매출, 정시 운항률과 클레임 발생률을 보여줘" }, { "id": "FED-03", "enabled": true, - "category": "선사 실적 Federation", - "title": "담당 선사 월별 추이", - "question": "E1006 직원이 담당하는 선사의 월별 매출, 운송 물동량, 매출총이익과 위험 등급을 기준월 순서로 보여줘" + "category": "선사 실적", + "title": "내 담당 선사 월별 추이", + "question": "내가 담당하는 선사의 월별 매출, 운송 물동량, 매출총이익과 위험 등급을 기준월 순서로 보여줘" + }, + { + "id": "FED-04", + "enabled": true, + "category": "선사 실적 리포트", + "title": "우리 팀 선사 실적 리포트", + "question": "우리 팀원별 담당 선사의 최신 매출, 매출총이익, 정시 운항률과 위험 등급을 HMM 리포트로 보여줘" + }, + { + "id": "FED-05", + "enabled": true, + "category": "선사 실적 리포트", + "title": "내 담당 선사 실적 리포트", + "question": "내 담당 선사의 최신 매출, 매출총이익, 정시 운항률과 위험 등급을 HMM 리포트로 보여줘" } ] } diff --git a/ai-web-agent-console/tests/test_scenarios.py b/ai-web-agent-console/tests/test_scenarios.py index 8ac5d02..2d56dcb 100644 --- a/ai-web-agent-console/tests/test_scenarios.py +++ b/ai-web-agent-console/tests/test_scenarios.py @@ -107,14 +107,30 @@ class DemoScenarioConfigTest(unittest.TestCase): self.assertTrue(all(item.question.strip() for item in scenarios)) by_id = {item.scenario_id: item for item in scenarios} self.assertEqual( - {"FED-01", "FED-02", "FED-03"}, - {"FED-01", "FED-02", "FED-03"} & set(by_id), + {"FED-01", "FED-02", "FED-03", "FED-04", "FED-05"}, + {"FED-01", "FED-02", "FED-03", "FED-04", "FED-05"} & set(by_id), ) self.assertTrue( all("선사" in by_id[scenario_id].question for scenario_id in ( - "FED-01", "FED-02", "FED-03" + "FED-01", "FED-02", "FED-03", "FED-04", "FED-05" )) ) + carrier_scenarios = [ + item for item in scenarios if item.scenario_id.startswith("FED-") + ] + self.assertTrue( + all( + re.search(r"\bE\d{4,}\b", item.question, flags=re.IGNORECASE) is None + for item in carrier_scenarios + ) + ) + report_scenarios = [ + item for item in carrier_scenarios if "리포트로 보여줘" in item.question + ] + self.assertGreaterEqual(len(report_scenarios), 2) + self.assertTrue( + all(item.category == "선사 실적 리포트" for item in report_scenarios) + ) def test_hmm_mcp_allows_carrier_federation_tool(self) -> None: path = Path(__file__).parents[1] / "config" / "mcp_servers.json"