TEST_CASES TASK_MANAGEMENT - zero1ne-26/doc GitHub Wiki
ํ ์คํธ ์ผ์ด์ค โ ํ์คํฌ ๊ด๋ฆฌ (์ค๋ฐ์ดํฐ ๊ธฐ์ค)
์์ฑ์ผ 2026-09-12. ์ด์ ์๋ฒ์ ์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑํ ํ์คํฌ ๊ด๋ฆฌ(์ฅ์ยทํ์คํฌยท์ด๋ฒคํธยท์คํ ์ดยท๋๋ฐ์ด์ค) ํ ์คํธ ์ผ์ด์ค. ๋ฐ์ดํฐ๋ ์ฝ๋๊ฐ ์๋๋ผ ์ด์ ๋ธ๋ก์ปคยท๋ก๊ทธ์์ ์ง์ ์์งํ๋ค (์์ง ๋ฐฉ๋ฒ์ ยง0).
0. ๋ฐ์ดํฐ ์ถ์ฒ์ ํ๊ณ
| ์ถ์ฒ | ๋ด์ฉ | ๋น๊ณ |
|---|---|---|
MQTT retained orchestration/{sid}/dashboard 270์ธ์
|
์ฅ์ยทํ์คํฌยท์ ํ์งยท์ค๋น๋ฌผยท๋๋ฐ์ด์คยท์ํ ๋งคํ | ์ธ์ ๋ง๋ค ์ฅ์ 4๊ณณยทํ์คํฌ 3๊ฐ์ฉ ์ํ๋ง๋๋ฏ๋ก ์ ์ฒด ์นดํ๋ก๊ทธ์ ํฉ์งํฉ = 102 ํ์คํฌ |
orchestration/store/list ยท devices/list ยท ai-companion/list ยท user-meta-prompt/list |
์ํ 12 ยท ๋๋ฐ์ด์ค 16 ยท AI ๋๋ฐ์ 5 ยท ๋ฉํ ํ๋กฌํํธ 13 | ์๋ฒ๊ฐ retained ๋ฐํํ๋ ์ ์ฒด ๋ชฉ๋ก |
robot/spot-01/{waypoints,scenarios,estop,fault} |
SPOT ํ์ฌ ์ํ | 2026-09-12 01:30 UTC ๊ธฐ์ค |
Loki (/grafana/) ์ต๊ทผ 4์ผ ์๋ฒ ๋ก๊ทธ |
์ด๋ฒคํธ ๋ฐํ ์ค์ , ์์ฒญ ํ ํฝ | 9/8 ๋ฐฐํฌ ์ดํ๋ถ๋ง ์์ |
orchestration-server/sql/seed_planning.sql |
์ด๋ฒคํธ 24์ข ยท์ ํ์ง ์ ์ | ์ด์ DB์ ๋์ผ ID(EVT-21 ๋ฐํ ๋ก๊ทธ๋ก ๊ต์ฐจ ํ์ธ) |
์ง์ ํ์ธ ๋ชป ํ ๊ฒ (๋ฐฑ์คํผ์ค์์ ์ฌํ์ธ ํ์): ์ด๋ฒคํธ๋ณ is_activeยทcategory(normal/sudden) ์ค์ ๊ฐ, ๋์ฐฉ ์๋ํ ๊ท์น, ์ํ ์นดํ
๊ณ ๋ฆฌ, ์ฅ์๋ณ ์ฝํ
์ธ (has_children ๋ถ๊ธฐ) ์ค์ , ํ์คํฌ์ description_promptยทis_active. DB ์ง์ ์กฐํ๋ ์ ๊ทผ ์ ํ์ผ๋ก ๋ชป ํ๋ค.
1. ํ ์คํธ ๋ฐ์ดํฐ ์ค๋ ์ท
1.1 ์ฅ์
| ์ฅ์ | ์ญํ | CCTV | short_summary ์ (LLM ์์ฑ) |
|---|---|---|---|
| ์ง (์์, id โฆ993d40668bfe) | STEP1 ๊ณ ์ | cam_51, diorama_01 / content.type=cctv | ์ธ์ถ ์ค๋น์ค, ์ถ๊ทผ ์ค๋น์ค, ๋ฑ์ ์ค๋น์ค |
| ์ง (์ข ๋ฃ, id โฆbadea24d7812) | STEP4 ๊ณ ์ | cam_51, diorama_01 | ๊ท๊ฐ ํ ์ ๋ฆฌ์ค, ์ฅ๋ณธ ๋ฌผํ ์ ๋ฆฌ์ค |
| ๋งํธ | STEP2/3 ์ ํ ํ | cam_52, diorama_01 | ์ฅ๋ณด๋ ์ค |
| ๊ณต์ | STEP2/3 ์ ํ ํ | cam_52, diorama_01 | ์ด๋์ค, ์ด๋ํ๋ ์ค |
| ์ฐจ | STEP2/3 ์ ํ ํ | cam_51, diorama_01 | ์ด๋์ค, ์ฐจ๋ ์ ๊ฒ์ค |
์ง์ด ์์/์ข ๋ฃ ๋ ๊ฐ์ ๋ณ๋ ์ฅ์ ๋ ์ฝ๋๋ผ๋ ์ ์ ์ฃผ์(ํ ์คํธ์์ "์ง" ์ด๋ฆ๋ง์ผ๋ก ๋งค์นญํ๋ฉด ์ ๋จ). ํ ์คํธ ์ธ์ ์ฉ ๊ตฌํ ์ง ๋ ์ฝ๋(id โฆ5e0deea846b1, โฆf344140c0881, CCTV ์์)๋ 44์ธ์ ์ ๋จ์ ์๋ค.
1.2 ๊ด์ธก๋ ๊ฒฝ๋ก (PLANNING R01~R06์ ์ผ์น)
| ๊ฒฝ๋ก | ๊ด์ธก ์ธ์ ์ |
|---|---|
| ์ง โ ์ฐจ โ ๋งํธ โ ์ง | 117 |
| ์ง โ ๊ณต์ โ ๋งํธ โ ์ง | 97 |
| ์ง โ ์ฐจ โ ๊ณต์ โ ์ง | 85 |
| ์ง โ ๋งํธ โ ๊ณต์ โ ์ง | 62 |
| ์ง โ ๊ณต์ โ ์ฐจ โ ์ง | 44 |
| ์ง โ ๋งํธ โ ์ฐจ โ ์ง | 37 |
| ์ง โ ์ฐจ๋ โ ๊ณต์ โ ์ง | 7 |
1.3 ํ์คํฌ โ ์ง (STEP1ยทSTEP4 ๊ณต์ฉ ํ)
| ํ์คํฌ | ํ์ | ๊ธฐํID | ์์ ์๊ฐ | ์ฐ๊ณ ์ด๋ฒคํธ | ํน์ ํ๋ | ์ธ์ ์ |
|---|---|---|---|---|---|---|
| ๋ด์ผ ์ผ์ ์๋ฆผ | basic | 19:00 | 385 | |||
| ์์ด์ ์์ ํ๊ธฐ | detailed | 19:01 | 385 | |||
| ๋งํธ ์ฅ๋ด์จ ๋ฌผํ ์ ๋ฆฌ | basic | 19:02 | 385 | |||
| ์ธ์ถ ์ค๋น ๋ฌผํ ์ฒดํฌ | packing | 07:05 | ์ค๋น๋ฌผ: ์ฐ์ฐ(์ฌ๋กฏ3), ํ ๋ธ๋ฌ(์ฌ๋กฏ5) | 264 | ||
| ์ปจ๋์ ๊ธฐ๋ฐ ํ๋ฃจ ๋ธ๋ฆฌํ | DAY_BRIEFING_BY_CONDITION | HOME-04 | 07:01 | - | ์ ํ์ง: ์ ์ง; ๋๋ฐ์ด์ค: Diorama-CCTV#2 | 262 |
| ์์์ ์ฑ๊ฒจ์ฃผ๊ธฐ | basic | HOME-13 | 07:18 | - | 232 | |
| ์์ด ๋ฑ์ ์ค๋น๋ฌผ ์ฒดํฌ | packing | 07:10 | ์ ํ์ง: ์์ค์ฝํธํด์ค (๊ตฌ๋ ํ์: Spot ๋ํยท์์ค์ฝํธ 100pt) / ๋ด๊ฐ ์์์ ๊ฐ๊ธฐ; ์ค๋น๋ฌผ: ๋์๋ฝํต(์ฌ๋กฏ1), ์ ์น์๊ฐ๋ฐฉ(์ฌ๋กฏ4) | 152 | ||
| ์ถ๊ทผ ์ค๋น๋ฌผ ์ฒดํฌ | packing | 08:01 | ์ค๋น๋ฌผ: ์ฌ์์ฆ(์ฌ๋กฏ2), ํ ๋ธ๋ฌ(์ฌ๋กฏ5); ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด | 134 | ||
| ํ ๋ฐ๋ ๋ชจ๋ | basic | 08:00 | ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด; ์ฒจ๋ถ | 55 | ||
| ๋น ์ง ํ์ธ | basic | 09:00 | ์ ํ์ง: ์์์ ๊ฑท๊ธฐ; ๋๋ฐ์ด์ค: Space-CCTV#1 | 46 | ||
| ๊ฐ์/๋ฌผ๋ณ ์ค๋น | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด | 41 | |||
| ์ฌ๋ฒ ์ท ์ค๋น | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด | 17 | |||
| ์์ด ๊ฐ๋ฐฉ ์ฑ๊ธฐ๊ธฐ | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด | 16 | |||
| ์์ด์ ๊ณต์ ์ธ์ถ ์ค๋น | packing | ์ค๋น๋ฌผ: ์ฐ์ฐ(์ฌ๋กฏ3), ๋์๋ฝํต(์ฌ๋กฏ1); ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด | 14 | |||
| ์ธ์ถ ์ ์ง ์ํ ์ ๊ฒ | basic | ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด | 14 | |||
| ๊ฐ์/๋ฌผ๋ณ ์ค๋น | (์์ยท๊ตฌํ) | 11 | ||||
| ์ฌ๋ฒ ์ท ์ค๋น | (์์ยท๊ตฌํ) | 11 | ||||
| [TEST] LG ๊ฐ์ ์ ์ ์ผ๊ธฐ ํ ์คํธ | basic | 08:01 | 10 | |||
| [EPI-01] AI ํ๋ฃจ ์ฌ์ ํ๊ณ | (์์ยท๊ตฌํ) | EPI-01 | - | ๋๋ฐ์ด์ค: Physical AI Hub | 10 | |
| [EPI-02] ์ ํ๋์จ์ด ์ค์ ยท๊ธฐ์ต ์ด์ | (์์ยท๊ตฌํ) | EPI-02 | EVT-01 | ๋๋ฐ์ด์ค: Physical AI Hub | 10 | |
| ๋ฐ๋ ค๋๋ฌผ ์ด์ ์ํฉ ์๋ฆผ | (์์ยท๊ตฌํ) | HOME-07 | EVT-04 | ๋๋ฐ์ด์ค: ์ฒดํ ํ๋ธ๋ฆฟ | 8 | |
| ๋ฐ๋ ค๋๋ฌผ๊ณผ ํ๋ฃจ ํ๊ณ | (์์ยท๊ตฌํ) | HOME-14 | - | ๋๋ฐ์ด์ค: ๊ฐ์ ์ฉ ๋ก๋ด | 8 | |
| ์ํ ์์ง์ ์ ๋ | (์์ยท๊ตฌํ) | HOME-12 | - | ๋๋ฐ์ด์ค: ๊ฐ์ ์ฉ ๋ก๋ด | 8 | |
| ์์ด์ ๊ท๊ฐ ๋ง์ด | (์์ยท๊ตฌํ) | HOME-10 | - | ๋๋ฐ์ด์ค: ๊ฐ์ ์ฉ ๋ก๋ด | 7 | |
| [HOME-05] ๋ถ ๊บผ์ง ๊ฑฐ์ค ํ์ธ | (์์ยท๊ตฌํ) | HOME-05 | - | ๋๋ฐ์ด์ค: ๊ฐ์ ์ฉ ๋ก๋ด | 6 | |
| [HOME-06] ๊ฐ์ ๊ธฐ์ฌ ๋ฐฉ๋ฌธ ๋์ | (์์ยท๊ตฌํ) | HOME-06 | EVT-05 | ๋๋ฐ์ด์ค: ์ฒดํ ํ๋ธ๋ฆฟ | 6 | |
| [HOME-08] ๋์ฅ๊ณ ์ฌ๊ณ ํ์ธ | (์์ยท๊ตฌํ) | HOME-08 | EVT-06 | ๋๋ฐ์ด์ค: ์ฒดํ ํ๋ธ๋ฆฟ | 6 | |
| [HOME-09] ์ด์ฌ ํ ๋ก๋ด ๋์ฒญ์ | (์์ยท๊ตฌํ) | HOME-09 | EVT-07 | ๋๋ฐ์ด์ค: Physical AI Hub | 6 | |
| [HOME-11] ๊ตฌ๋งค๋ฌผํ ์ ๋ฆฌ ์๋ด | (์์ยท๊ตฌํ) | HOME-11 | - | ๋๋ฐ์ด์ค: ๊ฐ์ ์ฉ ๋ก๋ด | 6 | |
| [HOME-15] ๋ถ๋ชจ๋ ์ํ ํ์ธ ๋ฐ ๋์ | (์์ยท๊ตฌํ) | HOME-15 | EVT-03 | ๋๋ฐ์ด์ค: ์ฒดํ ํ๋ธ๋ฆฟ | 6 | |
| [HOME-16] ํ ๋ฐ๋ ๋ชจ๋ ์คํ | (์์ยท๊ตฌํ) | HOME-16 | EVT-05 | ๋๋ฐ์ด์ค: Physical AI Hub | 6 | |
| [HOME-17] Spot ์์ค์ฝํธ ์๋น์ค | (์์ยท๊ตฌํ) | HOME-17 | - | ๋๋ฐ์ด์ค: Spot ๋ก๋ด | 6 | |
| ์ค๋์ ๊ฐ์กฑ ์ผ์ ยท์ด๋ ๋ธ๋ฆฌํ | detailed | ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด | 5 | |||
| ๊ตฌ๋งค๋ฌผํ ์ ๋ฆฌ ์๋ด | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: CCTV | 4 | |||
| ์์ด์ ๊ท๊ฐ ๋ง์ด | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: CCTV | 4 | |||
| ์ํ ์์ง์ ์ ๋ | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด | 4 | |||
| ์์์ ์ฑ๊ฒจ์ฃผ๊ธฐ | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด | 4 | |||
| ๊ท๊ฐ ํ ๊ฐ์กฑ ์ํ ํ์ธ | basic | 1 |
1.4 ํ์คํฌ โ ๋งํธ
| ํ์คํฌ | ํ์ | ๊ธฐํID | ์์ ์๊ฐ | ์ฐ๊ณ ์ด๋ฒคํธ | ํน์ ํ๋ | ์ธ์ ์ |
|---|---|---|---|---|---|---|
| ์ค๋์ ๋ฉ๋ดยท์ฌ๋ฃ ์ ํ | basic | MART-06 | 10:18 | EVT-19 | 206 | |
| ๋ฐ๋ ค๋๋ฌผ ์ผ์ด ์ํ ์ถ์ฒ | basic | MART-08 | 18:15 | EVT-20 | 100 | |
| ํ์์ธ์ผ ์ํ ๋น๊ต | detailed | MART-04 | 10:10 | EVT-10 | 90 | |
| ๋ถ๋ชจ๋ ์ผ์ด ์ํ ์ถ์ฒ | basic | MART-10 | 10:55 | EVT-21 | 69 | |
| ์ง์ ํฝ์ ๋์ ์๋ด | basic | MART-02 | 10:30 | EVT-18 | 65 | |
| Spot ๋ฐํคํธ ๋ฒ๋ค ์๋ น | basic | MART-07 | 18:12 | EVT-19 | 65 | |
| Spot ํซ์ผ์ด ํคํธ ์๋ น | basic | MART-09 | 18:25 | EVT-20 | 55 | |
| ๋น ์ค๋ ๋ ๊ท๊ฐ ์ค๋น ์ํ ์ ํ | basic | MART-12 | 18:27 | EVT-08, EVT-22 | 50 | |
| Spot ๋์ฅ๊ณ ๋ณด์ถฉ ๋ฒ๋ค ์๋ น | basic | MART-03 | 07:48 | EVT-18 | 44 | |
| ๋์ฅ๊ณ ๋ถ์กฑ ์ฌ๋ฃ ํ์ธ | basic | MART-01 | EVT-06, EVT-18 | ๋๋ฐ์ด์ค: Physical AI Hub | 36 | |
| Spot ํ์์ธ์ผ ๋ฒ๋ค ์๋ น | basic | MART-05 | 18:00 | EVT-10 | 28 | |
| ๋น ์ง ํ์ธ | basic | ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด | 22 | |||
| ํํํฐ ๋ฉ๋ดยท์ํ ๊ตฌ์ฑ | basic | MART-14 | 10:25 | EVT-23 | 20 | |
| Spot ๋ถ๋ชจ๋ ์ผ์ด ํจํค์ง ์๋ น | basic | MART-11 | 18:20 | EVT-21 | 18 | |
| [MART-17] AUM ๋๋ก ๊ธด๊ธ๋ฐฐ์ก | basic | MART-17 | EVT-24 | ๋๋ฐ์ด์ค: Physical AI Hub | 15 | |
| [MART-16] ๋งํธ ์ฌ๊ณ ๋ถ์กฑ ํ์ธ | basic | MART-16 | EVT-24 | ๋๋ฐ์ด์ค: Physical AI Hub | 13 | |
| Spot ๊ท๊ฐ ์ค๋น ํคํธ ์๋ น | basic | MART-13 | 10:25 | EVT-08, EVT-22 | 10 | |
| [MART-15] Spot ํํฐ ๋ฐ๊ตฌ๋ ์๋ น | basic | MART-15 | EVT-23 | 7 | ||
| ๋์ฅ๊ณ ๋ณด์ถฉ ๋ฒ๋ค ์๋ น | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: spot | 3 | |||
| Spot ๋์ฅ๊ณ ๋ณด์ถฉ ๋ฒ๋ค ์๋ น | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: spot | 3 | |||
| ๋์ฅ๊ณ ๋ณด์ถฉ ๋ฒ๋ค ์๋ น | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: spot | 3 |
1.5 ํ์คํฌ โ ๊ณต์
| ํ์คํฌ | ํ์ | ๊ธฐํID | ์์ ์๊ฐ | ์ฐ๊ณ ์ด๋ฒคํธ | ํน์ ํ๋ | ์ธ์ ์ |
|---|---|---|---|---|---|---|
| ๋ง์ถคํ ์ด๋ ๋ฃจํด | basic | PARK-01 | 09:00 | EVT-09 | 138 | |
| ๋น์ ์์ธ ์ฝ์นญ | basic | PARK-03 | 09:08 | EVT-09 | 103 | |
| Spot ํ์ด์ค๋ฉ์ด์ปค | basic | PARK-02 | 18:46 | EVT-09 | 87 | |
| ํฌ๊ท๋๋ฌผ ๊ด์ฐฐ | basic | PARK-08 | 12:13 | EVT-14 | 71 | |
| Spot ๋ณด๋ฌผ ํํธ | basic | PARK-06 | 08:36 | EVT-13 | 58 | |
| ํฌ๊ท๋๋ฌผ ๋๊ฐ ๋ฑ๋ก | basic | PARK-09 | 10:08 | EVT-14 | 52 | |
| ํ๋ก๊น ์๊ฑฐ ์ธ์ฆ | basic | PARK-05 | 18:00 | EVT-11 | 45 | |
| ํ๋ก๊น ์ง์ ์๋ด | basic | PARK-04 | 09:16 | EVT-11 | 41 | |
| AR ํฌ๋ฆฌ์ฒ ํฌํ | basic | PARK-11 | 12:11 | EVT-15 | 38 | |
| Spot ํฌ๋ฆฌ์ฒ ํ์ ๋ํ | basic | PARK-10 | 08:13 | EVT-15 | ์ ํ์ง: [ํ ์คํธ] ์์์ ์ ํ์ง (๊ตฌ๋ ํ์: ์ฝํธ ์ปจ์์ด์ง 2000pt) / ์์์ ๋ฐ๋ผ๊ฐ๊ธฐ | 34 |
| AR ๋ณด๋ฌผ์์ ํ์ | basic | PARK-07 | 10:16 | EVT-13 | 24 | |
| ๋ธ๋๋ ๋ฆฌ์๋ ์ง์ ์๋ด | basic | PARK-12 | 09:16 | EVT-16 | 21 | |
| [TEST] SPOT ํ ์คํธ์ฉ์~~ | basic | 18:30 | ์ ํ์ง: ๊ทธ๋ฅ ํด ์ข!! / ๊ทธ๋ฅ ๊ธฐ๋ณธ์ผ๋ก ๊ฑท๊ธฐ; ๋๋ฐ์ด์ค: spot | 21 | ||
| ์ง ์ ํ๊ธฐ | basic | 09:00 | ์ ํ์ง: ๊ธฐ๋ณธ์ผ๋ก ์งํ; ๋๋ฐ์ด์ค: LGํจ๋ฆฌ์ผ์ด 360 | 19 | ||
| Spot ํฌ๊ท์์ ํ์ฌ ์๋ด | basic | PARK-14 | 12:33 | EVT-17 | 16 | |
| ๊ฐ์์ค๋ฌ์ด ๋น ๋์ | basic | PARK-16 | 09:09 | EVT-08 | 14 | |
| ๊ด๊ณ ์ฝํ ์ธ ์ฐธ์ฌยท๋ฆฌ์๋ ์๋ น | basic | PARK-13 | 08:16 | EVT-16 | 11 | |
| AR ์์ ์นด๋ ํ๋ | basic | PARK-15 | 09:31 | EVT-17 | 11 | |
| ํ์ด์ค๋ฉ์ด์ปค | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: spot | 3 | |||
| ํ๋ก๊น ์๊ฑฐ ์ธ์ฆ | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: CCTV | 3 | |||
| ํฌ๊ท๋๋ฌผ ๊ด์ฐฐ | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: spot | 3 | |||
| ์ผํํ๊ธฐ | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: ๋ฐ๋ ค๋ก๋ด | 3 |
1.6 ํ์คํฌ โ ์ฐจ
| ํ์คํฌ | ํ์ | ๊ธฐํID | ์์ ์๊ฐ | ์ฐ๊ณ ์ด๋ฒคํธ | ํน์ ํ๋ | ์ธ์ ์ |
|---|---|---|---|---|---|---|
| ์ด๋ ์ผ์ ๋ธ๋ฆฌํ | detailed | VEH-01 | 08:10 | - | 177 | |
| ์ฐจ๋ ์ํยท์ฃผํ ์ ๊ฒ | basic | VEH-03 | 09:06 | EVT-12 | 170 | |
| ์ฌํ์๋์ ๋ง์ถค ์ ์ฐจ ๊ฒฌ์ ์ด ์ค๋น๋์์ต๋๋ค | quote_briefing | 09:00 | ์ฐจ๋์ต์ 4๊ฐ; issue: ์ฌํ์ ๋ง์ถค ํํ ์๋ด | 80 | ||
| ๋์ฐฉ/๊ท๊ฐ ์ฐ๊ณ ๋ธ๋ฆฌํ | basic | ๋๋ฐ์ด์ค: ์ฐจ๋ | 69 | |||
| ์์ ์ถฉ์ | hydrogen_charging | ๋๋ฐ์ด์ค: ์ฐจ๋ | 58 | |||
| [VEH-06] ์ค๋งํธ ์ถฉ์ ยท์ฃผ์ฐจ ๊ณํ | basic | VEH-06 | - | ๋๋ฐ์ด์ค: ์์จ์ฃผํ ์ฐจ๋ ๋์คํ๋ ์ด | 45 | |
| ๊ฐ์กฑ๊ณผ ๋ ๋ ์ค๋น, ์ ์ฐจ๊ฐ ๊ธฐ๋ค๋ฆฝ๋๋ค | vehicle_ready | 08:36 | ๋๋ฐ์ด์ค: ์ฐจ๋; ๊ฐ์ธํ์ต์ 1๊ฐ; issue: ์ด์ ์ฐจ๋ ์ค์ ์ด ๊ทธ๋๋ก ์ด์ด์ง๋๋ค | 41 | ||
| ์ฐจ๋ ๊ด๋ฆฌ ์์ฝ | basic | ๋๋ฐ์ด์ค: ์ฐจ๋ | 33 | |||
| ์ถ์ฅ์ง ์ ๋ฌด ์ง์ | basic | ๋๋ฐ์ด์ค: ์ฐจ๋ | 28 | |||
| ์ฌํ์๋, ์ค๋ ์ถ์ฅ ์ผ์ ํ์ธํ์ธ์ | business_trip_briefing | 09:00 | issue: ์ถ์ฅ ํ์ ์ฒดํฌ์ฌํญ | 21 | ||
| [VEH-04] ์ ๋น ์์ฝยท๊ฒฝ๋ก ์ฐ๊ฒฐ | basic | VEH-04 | EVT-12 | ๋๋ฐ์ด์ค: ์์จ์ฃผํ ์ฐจ๋ ๋์คํ๋ ์ด | 14 | |
| [TEST] LG ๊ฐ์ ๊ณต๊ธฐ์ฒญ์ ๊ธฐ ์คํ | basic | 08:30 | 13 | |||
| ๋๋ฅผ ์ํ ์ ์ฐจ ์ถ๊ณ | READY_TO_CAR_DELIVERY | 10 | ||||
| ์์ค์ฝํธ | basic | ์ ํ์ง: ์์ค์ฝํธ ๋ํ! (๊ตฌ๋ ํ์: Spot ๋ํยท์์ค์ฝํธ 100pt) / ๊ทธ๋ฅ ๋๊ฐ ๊ฑธ์ด๊ฐ๊ธฐ | 5 | |||
| [VEH-02] ์์ด ํฝ์ ยท๋ณ์ ๊ฒฝ๋ก ๋ณ๊ฒฝ | (์์ยท๊ตฌํ) | VEH-02 | EVT-02 | ๋๋ฐ์ด์ค: ์์จ์ฃผํ ์ฐจ๋ ๋์คํ๋ ์ด | 4 | |
| [VEH-05] ์ฐจ๋ ์๋ธ์คํ ์ด๋ ์น์ธ | (์์ยท๊ตฌํ) | VEH-05 | - | ๋๋ฐ์ด์ค: ์์จ์ฃผํ ์ฐจ๋ ๋์คํ๋ ์ด | 4 | |
| ์ถ์ฅ์ง ์ด๋ | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: ์ฐจ๋ | 2 | |||
| ์ด์ ์ต์ ํ ์ฝ์นญ | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: ์ฐจ๋ | 2 | |||
| ์ ๋น ์์ฝยท๊ฒฝ๋ก ์ฐ๊ฒฐ | (์์ยท๊ตฌํ) | ๋๋ฐ์ด์ค: ์ฐจ๋ | 2 |
1.7 ์ด๋ฒคํธ 24์ข (seed_planning ๊ธฐ์ค, ์ ํ์ง ํฌํจ)
| ์ด๋ฒคํธ | ์ ํ์ง | ์ฐ๊ณ ํ์คํฌ(๊ธฐํID) |
|---|---|---|
| [EVT-01] ์ ํ๋์จ์ด ์ ํยท๊ธฐ์ต ์ด์ | ์ ํ๋์จ์ด์ ์ด์ ํ ๋ฐ์ดํฐ ๋ฒ์๋ฅผ ํ์ธ / ์น์ธ | ์ํ๋ก๊ทธ |
| [EVT-02] ์ด๋ฆฐ์ด์ง ์๋ฆผ | ๋์์๊ณผ ๋ณ๊ฒฝ ๊ฒฝ๋ก๋ฅผ ์ ํ / ์น์ธ | VEH-02 |
| [EVT-03] ๋ถ๋ชจ๋ ๋์ | ์ํ ํ์ธ / ์ฐ๋ฝ / ์๊ธ ๋์ ์น์ธ | โ |
| [EVT-04] ๋ฐ๋ ค๋๋ฌผ ์ด์ ๊ฐ์ง | ์ํ ํ์ธ / ๋์ ๋ฐฉ๋ฒ ์ ํ | โ |
| [EVT-05] ๊ฐ์ ์ผ์ด ์๋น์ค ๋ฐฉ๋ฌธ | ๋ฐฉ๋ฌธ์ ํ์ธ / ์ถ์ ๊ณผ ์์ ๋ฒ์ ์น์ธ | ํ ๋ฐ๋ ๋ชจ๋ |
| [EVT-06] ๋์ฅ๊ณ ์ฌ๊ณ ํ์ธ | ๋ณด์ถฉํ ํ๋ชฉ์ ํ์ธ / ์ ํ | MART-01 |
| [EVT-07] ์ด์ฌ ํ ํ ๋ฆฌ์ | ์ ๋ฆฌ ๋ฒ์์ ๊ตฌ๋งค / ์คํํ ์คํฌ ์ ํ | โ |
| [EVT-08] ๊ฐ์์ค๋ฌ์ด ๋น | ๋์์๊ณผ ๋ค์ ์ด๋์ ์ ํ | PARK-16, MART-12, MART-13 |
| [EVT-09] ๋ง์ถคํ ์ด๋ ์ฝ์นญ | ์ด๋ ์์ / ๋์ด๋ ์ ํ / ๋์ ์ํ | PARK-01ยท02ยท03 |
| [EVT-10] ํ์์ธ์ผ ์ฅ๋ณด๊ธฐ | ์ํ ์ถ๊ฐ ์ฌ๋ถ์ ์๋ น ๋ฐฉ์ ์ ํ | MART-04ยท05 |
| [EVT-11] ํ๋ก๊น ๋ฏธ์ | ์ง์ ์ด๋ / ์๊ฑฐ / ์ธ์ฆ | PARK-04ยท05 |
| [EVT-12] ์ฐจ๋ ์ ๋น | ์ ๊ฒ / ์์ฝ ์ฌ๋ถ ์ ํ | VEH-03ยท04 |
| [EVT-13] ๋ณด๋ฌผ์ฐพ๊ธฐ | ํํธ ํ์ธ / ์ด๋ / AR ๋ณด๋ฌผ ํ๋ | PARK-06ยท07 |
| [EVT-14] ํฌ๊ท๋๋ฌผ ๊ด์ฐฐ | ๊ด์ฐฐ ์ง์ ํ์ธ / ๋๊ฐ ๋ฑ๋ก | PARK-08ยท09 |
| [EVT-15] AR ํฌ๋ฆฌ์ฒ ํ์ | ํ์ / ์กฐ์ค / ํฌํ | PARK-10ยท11 |
| [EVT-16] ๋ธ๋๋ ๋ฆฌ์๋ ๋ฏธ์ | ์ฐธ์ฌ ์ฌ๋ถ ์ ํ / ์ฝํ ์ธ ์์ฒญ / ์๋ต | PARK-12ยท13 |
| [EVT-17] ํฌ๊ท์์ ํ์ฌ | ์ง์ ์ด๋ / ์ค์บ / ํ๋ | PARK-14ยท15 |
| [EVT-18] ๋์ฅ๊ณ ๋ณด์ถฉ ์ฅ๋ณด๊ธฐ | ๋ณด์ถฉ ํ๋ชฉ๊ณผ ์๋ น ๋ฐฉ์ ์ ํ | MART-01ยท02ยท03 |
| [EVT-19] ์ค๋์ ๋ฉ๋ด ์ฅ๋ณด๊ธฐ | ๋ฉ๋ด์ ์๋ น ๋ฐฉ์ ์ ํ | MART-06ยท07 |
| [EVT-20] ๋ฐ๋ ค๋๋ฌผ ์ผ์ด ์ฅ๋ณด๊ธฐ | ์ํ๊ณผ ์๋ น ๋ฐฉ์ ์ ํ | MART-08ยท09 |
| [EVT-21] ๋ถ๋ชจ๋ ์ผ์ด ์ฅ๋ณด๊ธฐ | ์ํ๊ณผ ์๋ น ๋ฐฉ์ ์ ํ | MART-10ยท11 |
| [EVT-22] ๋น ์ค๋ ๋ ๊ท๊ฐ ์ค๋น | ์ค๋น ํ๋ชฉ๊ณผ ์๋ น ๋ฐฉ์ ์ ํ | MART-12ยท13 |
| [EVT-23] ํํํฐ ์ฅ๋ณด๊ธฐ | ๋ฉ๋ด / ์ํ ์ธํธ์ ์๋ น ๋ฐฉ์ ์ ํ | MART-14ยท15 |
| [EVT-24] ๋งํธ ์ฌ๊ณ ๋ถ์กฑยท๋๋ก ๊ธด๊ธ๋ฐฐ์ก | ๋์ฒดํ / ๋๋ก ๋ฐฐ์ก ์ ํ | MART-16ยท17 |
1.8 ์คํ ์ด ์ํ 12์ข
(orchestration/store/list)
| ์ํ | ํฌ์ธํธ | ๊ธฐํID | ๋๋ฐ์ด์ค | ์ค๋ช |
|---|---|---|---|---|
| Spot ๋ํยท์์ค์ฝํธ | 100 | SVC-01 | spot | ๋ชฉ์ ์ง ๋ํ, ๊ณต์ ํ์ด์ค๋ฉ์ด์ปค |
| ์์ฌ ๊ท๊ฐ๊ธธ ๋ํ | 1000 | spot | ||
| ์ฝํธ ์ปจ์์ด์ง | 2000 | spot | ||
| ๊ฐ์กฑ ์์ฌ ์ผ์ด | 100 | SVC-03 | ๊ฐ์กฑ ์ผ์ ยท๊ท๊ฐยท์ผ์ด ์ํ ์ถ์ฒ ์๋ํ | |
| ๋ฐ๋ ค๋๋ฌผ ์ผ์ด | 100 | SVC-04 | ๋ง์ถค ์ฅ๋ณด๊ธฐ์ ํ๋ฃจ ํ๊ณ โ ์ด์ ์๋ฆผ์ ๊ธฐ๋ณธ ์ ๊ณต | |
| ํ ๋ฐ๋ ยท๋ก๋ด ํ์ผ์ด | 100 | SVC-05 | ๋ฐ๋ ค๋ก๋ด | ๋ถ์ฌ ์ค ํ ๋ฐ๋ , ์ฒญ์ยท์ ๋ฆฌ ์๋ํ โ ๋ฐฉ๋ฌธ ํ์ธ์ ๊ธฐ๋ณธ ์ ๊ณต |
| ์ฐ๋์ค ์ฝ์น | 100 | SVC-06 | ์์ธ ์ฝ์นญ, ์ด๋ยท์์์ ๋ฃจํด ๊ด๋ฆฌ | |
| Spot ์ฅ๋ณด๊ธฐ ๋ฌ๋ | 100 | SVC-07 | ๋ณด์ถฉยทํ์์ธ์ผยทํคํธ ์ํ ๋ฒ๋ค ์๋น | |
| AR ์ด๋๋ฒค์ฒ ํฉ | 100 | SVC-08 | ๋ณด๋ฌผยทํฌ๋ฆฌ์ฒยทํฌ๊ท์์ ํ์ | |
| ์์ฝยท๋ค์ด์ฒ ๋ฏธ์ | 100 | SVC-09 | ํ๋ก๊น ๊ณผ ํฌ๊ท๋๋ฌผ ๊ด์ฐฐยท๋๊ฐ | |
| ์ค๋งํธ ๋ชจ๋น๋ฆฌํฐ ์ผ์ด | 100 | SVC-10 | ์ ๋น ์์ฝ๊ณผ ์ถฉ์ ยท์ฃผ์ฐจ ๊ณํ ์ต์ ํ | |
| ์ง ์ปจ๋์ ์ฒดํฌ | 0 | spot | ์ด์ฌ๊ฐ๊ธฐ ์ ํน์ ๊ณต์ฌ ํ ๋ฑ ์ ๋๋ก ์๊ณต๋์ด์๋์ง ํ์ |
1.9 ๋๋ฐ์ด์ค 16์ข
(orchestration/devices/list)
| ๋๋ฐ์ด์ค | type | robot_id | cctv_key | ์ฅ์ ๋งคํ |
|---|---|---|---|---|
| LGํจ๋ฆฌ์ผ์ด 360 | device | O | ||
| Hub_์์จ์ฃผํ์ฐจ1 | device | |||
| Hub_๋๋ก ์คํ ์ด์ | device | O | ||
| Hub_AI tree | device | |||
| Hub_์์์ถฉ์ ์ | device | O | ||
| Hub_์ค๋งํธํฉํ ๋ฆฌ | device | O | ||
| Diorama-CCTV#4 | cctv | diorama_04 | ||
| Diorama-CCTV#3 | cctv | diorama_03 | ||
| Diorama-CCTV#2 | cctv | diorama_02 | ||
| Space-CCTV#2 | cctv | cam_52 | O | |
| Diorama-CCTV#1 | cctv | diorama_01 | O | |
| Space-CCTV#1 | cctv | cam_51 | O | |
| Space-CCTV#3 | cctv | cctv_obj_tracking | O | |
| ์ฐจ๋ | device | O | ||
| ๋ฐ๋ ค๋ก๋ด | robot | O | ||
| spot | spot | spot-01 | O |
1.10 AI ๋๋ฐ์ 5์ข
(orchestration/ai-companion/list)
| AI ๋๋ฐ์ | ์์ฝ | prompt ์๋ถ๋ถ |
|---|---|---|
| ์ฅ๋์ค๋ฌ์ด ์น๊ตฌ | ์์ ๋ถํฐ ์๊ณ ์ง๋ธ AI์น๊ตฌ | ๋๋ ์ค๋ ์๊ณ ์ง๋ธ ์น๊ตฌ์ฒ๋ผ ํธํ๊ณ ์ฅ๋์ค๋ฝ๊ฒ ๋ํํ๋ AI๋ค. ๊ฐ๋ฒผ์ด ๋๋ด, ํฐํคํ์นด, ์ ๋นํ ๋๋ฆผ์ ์โฆ |
| ์์ํ ์ฐ์ธ | ๋ญ๋ ์ง ์ ๋ฐ์์ฃผ๊ณ ์ดํดํด์ฃผ๋ ์์ํ ์ฐ์ธ | ๋๋ ๋ค์ ํ๊ณ ์ธ์ฌํ ์ฐ์ธ์ฒ๋ผ ๋ํํ๋ AI๋ค. ์ฌ์ฉ์์ ๊ฐ์ ๊ณผ ๋งํฌ ๋ณํ๋ฅผ ์์ฐ์ค๋ฝ๊ฒ ์ดํผ๊ณ , ๋ถ๋ด์ค๋ฝ์ง โฆ |
| ์ด๋ฆด์ ํค์ฐ๋ ๊ฐ์์ง | ์ง๊ธ์ ํ๋๋๋ผ์ ๊ฐ์ง๋ง ๋ด ์ด๋ฆด์ ๋ฒ ํ ๊ฐ์์ง | ๋๋ ๋ด๊ฐ ์ด๋ฆด ์ ํจ๊ป ์๋ ๊ฐ์์ง์ฒ๋ผ, ์ค๋๋ง์ ๋ค์ ๋ง๋ ๋๋ฅผ ๋ฐ๊ฐ๊ณ ์ต์ํ๊ฒ ๋ํ๋ AI๋ค. ๋ง์ ์โฆ |
| ํผ์นด์ธ | ์๋ชฐ๋ | ํฌ์ผ๋ชฌ์คํฐ์ ํผ์นด์ธ์ด๋ค ์ฐ๋ฆฌ๋ง์ ํ์ง ๋ชปํ๋ค ์ ๋ง ํฌ์ผ๋ชฌ์ ํผ์นด์ธ๋คโฆ |
| ๋๋ํ ๋น์ | ๋ง์น ๋น์์ฒ๋ผ ๋ด ์ผ๊ฑฐ์ ์ผํฌ์กฑ์ ์ฑ๊ฒจ์ค | ๋๋ ๋น ๋จ๋ฆฌ๋ ๊ฒ ์์ด ์ธ์ฌํ๊ฒ ์ฑ๊ธฐ๋ ๊ผผ๊ผผํ ๋น์ํ AI๋ค. ์ผ์ , ํด์ผ ํ ์ผ, ์ค์ํ ์กฐ๊ฑด๊ณผ ์์ธ์ฌํญ์โฆ |
๋ฉํ ํ๋กฌํํธ 13๋ฌธํญ(orchestration/user-meta-prompt/list, ์ ๋ถ objective):
ํ์คํฌ ํ์
๋ถํฌ: basic 51, (์์) 37, packing 4, detailed 4, business_trip_briefing 1, hydrogen_charging 1, DAY_BRIEFING_BY_CONDITION 1, vehicle_ready 1, quote_briefing 1, READY_TO_CAR_DELIVERY 1
2. ํ ์คํธ ์ผ์ด์ค
ํ๊ธฐ: ์ ์ = ์ฌ์ฉํ ์ค๋ฐ์ดํฐ, ์ ์ฐจ = ํ๋ธ๋ฆฟ/๋ฐฑ์คํผ์ค/MQTT ์กฐ์, ํ์ธ = ์ด๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋์ง. ์ธ์
ID๋ create-persona/response.session_id. ๋ก๊ทธ ํ์ธ์ /grafana/ ์ธ์
ํ์๋ผ์ธ ๋์๋ณด๋์ ์ธ์
ID๋ฅผ ๋ฃ์ด mqtt.request/mqtt.publish ์์๋ฅผ ๋ณธ๋ค.
A. ์ธ์ ์์ฑ๊ณผ ์ฌ์ ๊ตฌ์ฑ
| ID | ๋ชฉ์ | ์ ์ | ์ ์ฐจ | ๊ธฐ๋ ๊ฒฐ๊ณผ | ํ์ธ |
|---|---|---|---|---|---|
| A-01 | ์ ์ ๋ก๊ทธ์ธ ์ 4 STEP ์ฌ์ ์์ฑ | AI ๋๋ฐ์ "๋๋ํ ๋น์", ๋ฉํ ์๋ต "๋ฐ์ ์ง์ฅ์ธ" | orchestration/{deviceId}/create-persona ๋ฐํ |
dashboard retained์ ์ฅ์ 4๊ณณ, visit_order 1ยท4 = ์ง, 2ยท3์ ๋งํธ/๊ณต์/์ฐจ ์ค ์๋ก ๋ค๋ฅธ 2๊ณณ. ์ฅ์๋น ํ์คํฌ 3๊ฐ |
dashboard ํ์ด๋ก๋, ยง1.2 6๊ฒฝ๋ก ์ค ํ๋ |
| A-02 | 6๊ฐ ํ์ฉ ๊ฒฝ๋ก๋ง ๋์ค๋์ง | ์ธ์ 12๊ฐ ์ด์ ์์ฑ | A-01 ๋ฐ๋ณต | ์งโ์ฐจโ๋งํธโ์ง ๋ฑ ยง1.2์ 6์ข ๋ง ๊ด์ธก. ์งโ์ง ์ฐ์์ด๋ ๊ฐ์ ์ฅ์ 2ํ ์์ | dashboard ๋ชจ์ |
| A-03 | STEP1ยท4 ์ง์ด ์๋ก ๋ค๋ฅธ ์ฅ์ ID | A-01 | dashboard์ visit_order 1ยท4 id ๋น๊ต | ์์ ์ง โฆ993d40668bfe, ์ข ๋ฃ ์ง โฆbadea24d7812. ํ์คํฌ ํ๋ ๋ค๋ฆ(STEP1: ์ธ์ถ/์ถ๊ทผ/๋ฑ์ ์ค๋น, STEP4: ๋ด์ผ ์ผ์ ์๋ฆผยท์์ด์ ์์ ํ๊ธฐยท๋งํธ ์ฅ๋ด์จ ๋ฌผํ ์ ๋ฆฌ) | dashboard |
| A-04 | short_summary ์์ฑ | A-01 | ๋ก๊ทธ์ธ ์งํ์ 5์ด ํ dashboard ๋น๊ต | ๊ฐ ์ฅ์์ 10์ ์ด๋ด ์ํฉ ์์ฝ("์ธ์ถ ์ค๋น์ค" ๋ฑ). ๋น์ด ์์ผ๋ฉด ์คํจ | dashboard.locations[].short_summary |
| A-05 | ๋ก๊ทธ์ธ ๋ฐํ ์์ | A-01 | Loki ์ธ์ ํ์๋ผ์ธ | point(1000) โ me โ dashboard โ store/owned โ future-car/request(plan) โ create-persona/response ์. ๊ทธ ๋ค ai/summary source=intro |
Loki mqtt.publish |
| A-06 | ํ๋กํ ๋ฐ์ | ๋ฉํ ์๋ต "์์ด๋ฅผ ํค์์"+"์ํน ๋๋/๋ง" | create-persona ํ me ํ์ธ |
has_children=true, description์ ๋ ๋ฌธ์ฅ ํฌํจ. ์๋
์๋ ์ธ์
์ ์์ด ๋ฑ์ ์ค๋น๋ฌผ/์์ด์ ์์ ํ๊ธฐ ํ์คํฌ๊ฐ ์ฐ์ ๋ฐฐ์ ๋๋์ง |
me, dashboard |
| A-07 | ํ๋ฅด์๋ ์์/์๋ชป๋ ID | persona_id ๋น ๊ฐ | create-persona ๋ฐํ | create-persona/response {ok:false} ์ฆ์, ๋ค๋ฅธ ํ ํฝ ๋ฐํ ์์ |
response, Loki |
| A-08 | ๊ฐ์ ๋๋ฐ์ด์ค ์ค๋ณต ์์ฒญ ์ ๊ธ | ๊ฐ์ deviceId๋ก 1์ด ๋ด 2ํ | create-persona 2ํ | ๋ ๋ฒ์งธ๋ ๋ฌด์ ๋๋ ์คํจ ์๋ต, ์ธ์ 1๊ฐ๋ง ์์ฑ | Loki, ๋ฐฑ์คํผ์ค ์ธ์ ๋ชฉ๋ก |
B. ํ์คํฌ ์ํ ์ ์ด์ ํฌ์ธํธ
| ID | ๋ชฉ์ | ์ ์ | ์ ์ฐจ | ๊ธฐ๋ ๊ฒฐ๊ณผ | ํ์ธ |
|---|---|---|---|---|---|
| B-01 | ์์ โ ์๋ฃ | STEP1 "์์์ ์ฑ๊ฒจ์ฃผ๊ธฐ"(basic, 07:18) | task/start {task_id} โ task/complete {task_id} |
dashboard ์ฌ๋ฐํ: status pendingโin_progressโcompleted, completed_at ์ฑ์์ง. point +100(1000โ1100) |
dashboard, point |
| B-02 | ๊ฑด๋๋ฐ๊ธฐ | STEP1 "๋ด์ผ ์ผ์ ์๋ฆผ" | task/skip |
status=skipped(๊ด์ธก๊ฐ ์ค skip๋ ์์ โ ํ๊ธฐ ํต์ผ ํ์ธ), ํฌ์ธํธ ๋ณ๋ ์์ |
dashboard, point |
| B-03 | ์์ ์์ด ์๋ฃ | ์๋ฌด ํ์คํฌ | task/complete๋ง ๋ฐํ |
์๋ฒ ์ ์ฑ ๋๋ก ์๋ฃ ์ฒ๋ฆฌ ๋๋ ๊ฑฐ๋ถ. ์ด๋ ์ชฝ์ด๋ ์๋ต/๋ก๊ทธ ๋ช ํ | Loki mqtt.handled dur_ms |
| B-04 | ์๋ฃ๋ ํ์คํฌ ์ฌ์๋ฃ | B-01 ํ | task/complete ์ฌ๋ฐํ |
ํฌ์ธํธ ์ค๋ณต ์ง๊ธ ์์(1100 ์ ์ง) | point |
| B-05 | ๋ค๋ฅธ ์ธ์ ํ์คํฌ ID | ์ธ์ A์์ ์ธ์ B ํ์คํฌ ID | task/start |
๊ฑฐ๋ถ, ์ธ์ B dashboard ๋ณํ ์์ | ์์ชฝ dashboard |
| B-06 | ์ฅ์ 3๊ฐ ํ์คํฌ ๋ชจ๋ ์ข ๋ฃ ์ ์ด๋ ๊ฒ์ดํธ | STEP1 ํ์คํฌ 3๊ฐ ์๋ฃ/๊ฑด๋๋ | ์์ฐจ ์ฒ๋ฆฌ | ์ด๋ ์น์ธ ํ์ ์กฐ๊ฑด ์ถฉ์กฑ(ํ๋ธ๋ฆฟ), ์๋ฒ๋ STEP ์๋ฃ๋ฅผ ๋ณ๋ ๋ฐํํ์ง ์์์ ํ์ธ | ํ๋ธ๋ฆฟ |
| B-07 | ์ํ ๋ณ๊ฒฝ ์ ๋ด๋ ์ด์ | B-01 | ๊ฐ ์ ์ด ํ ai/summary ์์ |
source=task_status, task_id, status=started/completed/skipped, ๋ณธ๋ฌธ 2~3๋ฌธ์ฅ์ ๋ค ์ผ์ ์ธ๊ธ |
ai/summary |
| B-08 | ํ์คํฌ ๋ด๋ ์ด์ ๋ฆฌ์คํธ | B-01 | task/narration retained |
tasks[]์ ์ง๊ธ ์ฅ์ ํ์คํฌ ์ ๋ถ(์ฅ์ ๋์ฐฉ ์ ๊ต์ฒด) โ ๋ด๋ ์ด์ ์๊ธด ํญ๋ชฉ์ 4๋ฌธ์ฅยท์ต์ ๊ฐฑ์ ์ด ๋งจ ์, ๋๋จธ์ง๋ ์ ๋ชฉ๋ง+status | task/narration |
| B-09 | ํ์คํฌ ๋ฆฌํฌํธ | STEP4๊น์ง ์งํ | task/report/request |
task/report/response์ ์๋ฃ/๊ฑด๋๋/์งํ์ค/๋๊ธฐ ๋ถ๋ฅ, ๊ฐ์ ํฉ๊ณ = 12 |
response |
C. ํ์คํฌ ์ ํ์ง์ ๊ตฌ๋ ์ ๊ธ
| ID | ๋ชฉ์ | ์ ์ | ์ ์ฐจ | ๊ธฐ๋ ๊ฒฐ๊ณผ | ํ์ธ |
|---|---|---|---|---|---|
| C-01 | ๋ฌด๋ฃ ์ ํ์ง ์ ํ | ์ง "์์ด ๋ฑ์ ์ค๋น๋ฌผ ์ฒดํฌ" ์ ํ์ง "๋ด๊ฐ ์์์ ๊ฐ๊ธฐ" | task/option/select {task_id, option_id} |
์ ํ ์๋ต ok, dashboard ์ ํ ๋ฐ์ | response, dashboard |
| C-02 | ๊ตฌ๋ ํ์ ์ ํ์ง โ ๋ฏธ๋ณด์ | ๊ฐ์ ํ์คํฌ "์์ค์ฝํธํด์ค"(Spot ๋ํยท์์ค์ฝํธ 100pt), store/owned ๋น ๋ฐฐ์ด |
์ ํ ๋ฐํ | ๊ฑฐ๋ถ ์๋ต(์ํ ๋ฏธ๋ณด์ ), ์ต์
์ required_product.owned=false ์ ์ง |
response |
| C-03 | ๊ตฌ๋ ํ ์ ํ ํด๊ธ | C-02 โ store/purchase Spot ๋ํยท์์ค์ฝํธ |
๊ตฌ๋งค ํ dashboard ์ฌ์กฐํ โ ์ ํ | required_product.owned=true๋ก ์ฌ๋ฐํ, ์ ํ ์ฑ๊ณต. SPOT ์์ค์ฝํธ ๋ช
๋ น์ด robot/spot-01/command๋ก ๋๊ฐ(next_location ํด์: ์ด ์ฅ์ ๋ค์ visit_order) |
dashboard, Loki robot/ ๋ฐํ |
| C-04 | ๊ณ ๊ฐ ๊ตฌ๋ ์ ๊ธ | ๊ณต์ "Spot ํฌ๋ฆฌ์ฒ ํ์ ๋ํ" โ "[ํ ์คํธ] ์์์ ์ ํ์ง"(์ฝํธ ์ปจ์์ด์ง 2000pt) | ํฌ์ธํธ 1000 ์ํ์์ ๊ตฌ๋งค ์๋ | ํฌ์ธํธ ๋ถ์กฑ ์คํจ, ์ ํ์ง ์ ๊ธ ์ ์ง | point ์๋ต |
| C-05 | ์ ํ์ง 1๊ฐ๋ฟ์ธ ํ์คํฌ | ๊ณต์ "์ง ์ ํ๊ธฐ"(๊ธฐ๋ณธ์ผ๋ก ์งํ / LGํจ๋ฆฌ์ผ์ด 360) | ์ ํ | ์ ํ ์ฑ๊ณต + LG ๊ฐ์ ์๋ํ ๋ช ๋ น(HA) ๋ฐํ ๋ก๊ทธ | Loki, ์๋ํ ์คํ ๋ก๊ทธ |
| C-06 | ์ฐจ๋ ์ต์ ํ์คํฌ | ์ฐจ "์ฌํ์๋์ ๋ง์ถค ์ ์ฐจ ๊ฒฌ์ ์ด ์ค๋น๋์์ต๋๋ค"(quote_briefing, vehicle_options ๋ค์) | dashboard ํ์ธ | vehicle_options[]์ name/type(๊ธฐ๋ณธํยท๊ตฌ๋
ํ)/description, issue_title ์กด์ฌ |
dashboard |
| C-07 | ๊ฐ์ธํ ์ต์ ํ์คํฌ | ์ฐจ "๊ฐ์กฑ๊ณผ ๋ ๋ ์ค๋น, ์ ์ฐจ๊ฐ ๊ธฐ๋ค๋ฆฝ๋๋ค"(vehicle_ready) | dashboard ํ์ธ | personalization_options[]์ issue_* ํ๋ |
dashboard |
D. ์ค๋น๋ฌผ(packing) ํ์คํฌ์ CCTV
| ID | ๋ชฉ์ | ์ ์ | ์ ์ฐจ | ๊ธฐ๋ ๊ฒฐ๊ณผ | ํ์ธ |
|---|---|---|---|---|---|
| D-01 | ์ค๋น๋ฌผ ๋ชฉ๋ก ๋ด๋ ค๊ฐ | ์ง "์ธ์ถ ์ค๋น ๋ฌผํ ์ฒดํฌ"(์ฐ์ฐ ์ฌ๋กฏ3, ํ ๋ธ๋ฌ ์ฌ๋กฏ5) | dashboard | packing_items[] nameยทcctv_slot. Vision ๋ฏธ์์ ์ด๋ฉด cctv_state ์๋ต ๋๋ unknown, picked ์์/false |
dashboard |
| D-02 | ์ฑ๊น ๋ฐ์ | Vision cctv/item/state I3 in_zoneโout_of_zone |
๋ฐฑ์คํผ์ค CCTV ๊ด๋ฆฌ์์ ์ฐ์ฐ=์ฌ๋กฏ3 ๋งคํ ํ์ธ ํ ๋ฐํ | dashboard ์ฌ๋ฐํ, ์ฐ์ฐ picked=true, cctv_state=out_of_zone |
dashboard |
| D-03 | ๋ค์ ๋ด๋ ค๋๊ธฐ | D-02 ํ I3 out_of_zoneโin_zone | ๋ฐํ | picked=false๋ก ๋๋์๊ฐ(์ ๊ธ ์์). ํญ๋ชฉ์ ๋ชฉ๋ก์ ๋จ์ |
dashboard |
| D-04 | ์๋ชป๋ ๋ฌผ๊ฑด | ์ฌ๋กฏ2(์ฌ์์ฆ)๊ฐ ์ด ํ์คํฌ ๋ชฉ๋ก์ ์์ | I2 inโout | wrong_item ํธ๋ฆฌ๊ฑฐ ์๋ํ ๋ฐํ(์๋ค๋ฉด), ๋ฐ๋ ค๋ก๋ด say ๋ฌธ์ฅ์ ๋ฌผ๊ฑด ์ด๋ฆ ํฌํจ |
Loki, ์๋ํ ์คํ ๋ก๊ทธ |
| D-05 | ์ฌ๋ฌ ์ค๋น๋ฌผ ํ์คํฌ ์ฌ๋กฏ ๊ณต์ | "์ธ์ถ ์ค๋น ๋ฌผํ ์ฒดํฌ"์ "์์ด์ ๊ณต์ ์ธ์ถ ์ค๋น" ๋ชจ๋ ์ฐ์ฐ ์ฌ๋กฏ3 | ๋ ํ์คํฌ๊ฐ ๊ฐ์ ์ธ์ ์ ์์ ๋ I3 out | ๋ ํ์คํฌ ๋ชจ๋ picked ๊ฐฑ์ | dashboard |
| D-06 | ๋งคํ ์๋ ์ค๋น๋ฌผ | "์์ด ๋ฑ์ ์ค๋น๋ฌผ ์ฒดํฌ"์ ๋ฌผํต(์ฌ๋กฏ ์์) | dashboard | ๋ฌผํต ํญ๋ชฉ์ cctv_slot/picked ํ๋ ์์(ํ์ ๋ถ๊ฐ ํ์) | dashboard |
E. ์คํ ์ด์ ๋ณด์ ์ํ
| ID | ๋ชฉ์ | ์ ์ | ์ ์ฐจ | ๊ธฐ๋ ๊ฒฐ๊ณผ | ํ์ธ |
|---|---|---|---|---|---|
| E-01 | ์ํ ๋ชฉ๋ก | โ | orchestration/store/list ๊ตฌ๋
|
12์ํ, point_priceยทdisplay_orderยทdevices. "์ง ์ปจ๋์ ์ฒดํฌ" 0pt, "์์ฌ ๊ท๊ฐ๊ธธ ๋ํ" 1000pt, "์ฝํธ ์ปจ์์ด์ง" 2000pt ํ์ธ | store/list |
| E-02 | ์ ์ ๊ตฌ๋งค | ํฌ์ธํธ 1000, "๊ฐ์กฑ ์์ฌ ์ผ์ด"(100pt) | store/purchase {product_ids:[โฆ]} |
point {ok:true, point_balance:900} โ store/owned ์ฌ๋ฐํ: product_ids ํฌํจ + products[]์ title/point_price/is_active/purchased_at/devices |
point, store/owned |
| E-03 | ํฌ์ธํธ ๋ถ์กฑ | ํฌ์ธํธ 900, "์ฝํธ ์ปจ์์ด์ง" 2000pt | ๊ตฌ๋งค | point {ok:false, error:"ํฌ์ธํธ๊ฐ ๋ถ์กฑํฉ๋๋ค"}, owned ๋ณํ ์์ |
point |
| E-04 | ๋ฌด๋ฃ ์ํ | "์ง ์ปจ๋์ ์ฒดํฌ" 0pt | ๊ตฌ๋งค | ์ฑ๊ณต, ํฌ์ธํธ ๊ทธ๋๋ก, owned์ ์ถ๊ฐ | owned |
| E-05 | ์ค๋ณต ๊ตฌ๋งค | E-02 ์ํ ์ฌ๊ตฌ๋งค | ๊ตฌ๋งค | ์ ์ฑ ํ์ธ: ์ฌ์ฐจ๊ฐ ์ฌ๋ถ. owned์ product_ids๋ ์ค๋ณต ์์ด 1๊ฐ, products[].purchased_at์ ์ต์ด ์๊ฐ ์ ์ง | owned |
| E-06 | ๋์ ๊ตฌ๋งค ์ด์ค ์ฐจ๊ฐ ๋ฐฉ์ง | ๊ฐ์ ์ธ์ ์์ 100ms ๊ฐ๊ฒฉ 2ํ | ๊ตฌ๋งค 2ํ | ํ ๊ฑด์ "์ด๋ฏธ ์ฒ๋ฆฌ ์ค" ์ค๋ฅ, ํฌ์ธํธ๋ 1ํ๋ง ์ฐจ๊ฐ | point, Loki |
| E-07 | ์ฌ๋ฌ ์ํ ํ ๋ฒ์ | product_ids 3๊ฐ(ํฉ 300pt) | ๊ตฌ๋งค | ์์ก -300, owned์ 3๊ฐ | point, owned |
| E-08 | ๋นํ์ฑ ์ํ ๋ณด์ | ๊ด๋ฆฌ์๊ฐ ๊ตฌ๋งคํ ์ํ ๋นํ์ฑํ | store/list์ store/owned ๋น๊ต | list์์ ์ฌ๋ผ์ง๊ณ owned.products์ is_active=false๋ก ๋จ์ |
๋ ๋ค |
| E-09 | ๋๋ฐ์ด์ค ๋งคํ ์ํ | "Spot ๋ํยท์์ค์ฝํธ"(spot), "ํ ๋ฐ๋ ยท๋ก๋ด ํ์ผ์ด"(๋ฐ๋ ค๋ก๋ด) | store/list | devices[]์ id/name/image_url/icon_url | store/list |
F. ์ด๋ฒคํธ ๋งคํ๊ณผ ๋ฐํ
| ID | ๋ชฉ์ | ์ ์ | ์ ์ฐจ | ๊ธฐ๋ ๊ฒฐ๊ณผ | ํ์ธ |
|---|---|---|---|---|---|
| F-01 | ๋ก๊ทธ์ธ ์ ์ด๋ฒคํธ ๋งคํ | A-01 | ๋ฐฑ์คํผ์ค ์ธ์ ์์ธ(user_locations) | STEP2์ normal 1๊ฑด, STEP3์ sudden 1๊ฑด ๋งคํ, STEP1ยท4 ์์. ๋ฐํ์ ์์ง ์ ๋จ | ๋ฐฑ์คํผ์ค |
| F-02 | ๋์ฐฉ ์ ๋ฐํ ํ๋จ | STEP2 ๋งํธ ๋์ฐฉ(cctv/person/zone ๋๋ ์์น ํ
์คํธ) |
๋์ฐฉ | event_last_decision์ trigger=arrival ๊ธฐ๋ก. LLM์ด publish=true๋ฉด orchestration/{sid}/event 1ํ(retain ์์) |
๋ฐฑ์คํผ์ค, Loki |
| F-03 | ํ์คํฌ ํธ๋ฆฌ๊ฑฐ ์ฌํ๋จ | F-02์์ ๋ณด๋ฅ๋ ์ํ | ๋งํธ ํ์คํฌ task/start |
trigger=task_started๋ก ์ฌํ๋จ. ๋ณด๋ฅ 3ํ ์ด๊ณผ ์ ๊ฐ์ ๋ฐํ(forced=true) | ๋ฐฑ์คํผ์ค event_last_decision |
| F-04 | LLM ๋๊ณ ์ฆ์ ๋ฐํ | ์ฑ ์ค์ event_timing_llm_enabled=0 |
STEP3 ๋์ฐฉ | ๋์ฐฉ ์ฆ์ sudden ์ด๋ฒคํธ ๋ฐํ | event |
| F-05 | ์ด๋ฒคํธ ํ์ด๋ก๋ | [EVT-21] ๋ถ๋ชจ๋ ์ผ์ด ์ฅ๋ณด๊ธฐ ๋ฐํ(9/8 ๋ก๊ทธ์์ ํ์ธ๋จ) | ์์ | event_id, title, type=choice, category, options[] (label "์ํ๊ณผ ์๋ น ๋ฐฉ์ ์ ํ") | event |
| F-06 | ์ ํ์ง ์ ํ | F-05 | event/option/select {event_id, option_id} |
event/option/select/response ok, ํ์ ํ์คํฌ ์ฐ๊ฒฐ์ด ์์ผ๋ฉด dashboard ๋ณํ(MART-10ยท11) |
response, dashboard |
| F-07 | ํ๋ฆฌ๋ฏธ์ ์ต์ ์ด๋ฒคํธ | ์ต์ ์ required_product๊ฐ ๋ถ์ ์ด๋ฒคํธ(๋ฐฑ์คํผ์ค์์ ์ค์ ) | ๋ฏธ๋ณด์ ์ํ๋ก ์ ํ | ๊ฑฐ๋ถ. ๊ตฌ๋งค ํ ์ ํ ์ฑ๊ณต | response |
| F-08 | ์ฅ์ ์ด๋ ํ ๋ฏธ๋ฐํ ์ด๋ฒคํธ | STEP2์์ ์ด๋ฒคํธ ๋ชป ๋ฐ์ ์ฑ STEP3 ๋์ฐฉ | ์งํ | STEP2 ์ด๋ฒคํธ๋ ์์ ๋ฏธ๋ฐํ, STEP3 ์ด๋ฒคํธ๋ง ํ๋จ | ๋ฐฑ์คํผ์ค |
| F-09 | ์๋ ๋ฐํ | ๋ฐฑ์คํผ์ค ์ด๋ฒคํธ โ ๋ฐํ | POST /admin/events/:id/publish |
์ง์ ์ธ์ ์ ์ฆ์ event ๋์ฐฉ | event |
| F-10 | ๋๋ฐ 7์ข ์นดํ ๊ณ ๋ฆฌ | EVT-02ยท03ยท04ยท05ยท08ยท12ยท24 | ๋ฐฑ์คํผ์ค ์ด๋ฒคํธ ๋ชฉ๋ก | category=sudden์ผ๋ก ์ค์ ๋ผ ์๋์ง, ๋๋จธ์ง๋ normal | ๋ฐฑ์คํผ์ค |
G. ๋ด๋ ์ด์ ยทAI ์ฑํ
| ID | ๋ชฉ์ | ์ ์ | ์ ์ฐจ | ๊ธฐ๋ ๊ฒฐ๊ณผ | ํ์ธ |
|---|---|---|---|---|---|
| G-01 | intro ๋ธ๋ฆฌํ | ๊ฒฝ๋ก ์งโ๋งํธโ์ฐจโ์ง, ์ฐจ์ "์ฌํ์๋, ์ค๋ ์ถ์ฅ ์ผ์ ํ์ธํ์ธ์"(09:00) ๋ฐฐ์ ๋ ์ธ์ | ๋ก๊ทธ์ธ | ai/summary source=intro ๋ณธ๋ฌธ์ ๋ค ์ผ์ (์ถ์ฅ)์ ์ด์ ๋ก ๋งํธ ์ค๋น๋ฅผ ์ฐ๊ฒฐ. ํ์คํฌ ๊ฐ์ ๋์ด ์์ |
ai/summary |
| G-02 | ๋์ฐฉ ๋ด๋ ์ด์ | STEP2 ๋์ฐฉ | ์์น ๋ณ๊ฒฝ | source=arrival, ์ง์ ์ฅ์์ ๋ค์ ์ฅ์ ์ธ๊ธ |
ai/summary |
| G-03 | ์ฐจ๋ ์คํ ๋ด๋ ์ด์ | ์ฐจ STEP, ๋ฏธ๋์ฐจ route/state arrived |
์คํ ์งํ | source=car_step, step ํ๋, ์คํ
์๋ฏธ(์ด๋/UAM/์ถฉ์ /๋ค์ ์ด๋) ๋ฐ์ |
ai/summary |
| G-04 | ํ๋ฅด์๋ ๋งํฌ | "์ด๋ฆด์ ํค์ฐ๋ ๊ฐ์์ง" ์ธ์ | ai/request ํ
์คํธ |
๋ต๋ณ์ *๋ณํ* ํ๋ ๋ฌ์ฌ ์์(๊ณตํต ํ๋กฌํํธ ์ ์ฉ ํ์ธ), ๋งํฌ๋ ํ๋ฅด์๋ |
ai/response |
| G-05 | ์์ฝ ์์ฒญ | ai/summarize {context} |
๋ฐํ | ai/summary ํ๋ฌธ 2~4๋ฌธ์ฅ, source ์์, context_id ๋์ผ |
ai/summary |
| G-06 | ์ ์ ์นฉ | G-04 | ai/response ์งํ | ai/suggestions 2๊ฐ |
suggestions |
| G-07 | car ๋ชจ๋ ์ ๊ธ | ai/mode {mode:car} retained |
ai/request ๋ฐํ | ์ฑํ ๋์ STT๋ง, ์๋ต ์ ์ฑ ๋๋ก | Loki |
H. ๋ฏธ๋์ฐจ(์ฐจ ์ฅ์) 4 ์คํ
| ID | ๋ชฉ์ | ์ ์ | ์ ์ฐจ | ๊ธฐ๋ ๊ฒฐ๊ณผ | ํ์ธ |
|---|---|---|---|---|---|
| H-01 | ํ๋ ๋ฐํ | ์ฐจ๊ฐ STEP2/3์ธ ์ธ์ | ๋ก๊ทธ์ธ | future-car/request type=plan retained, stops 6๊ฐ(factory, charging_station, park, mart, drone, home), persona ํฌํจ |
request |
| H-02 | ํ์น | future-car/request {type:enter} |
๋ฐํ | future-car/response state phase=waiting, ai/mode car ttl 1800, ai/response "์ถ๋ฐ ํ ๊น์?" |
response, ai/* |
| H-03 | ์คํ ์งํ๊ณผ ํ์คํฌ | ์ฐจ basic ํ์คํฌ(์: "์ฐจ๋ ์ํยท์ฃผํ ์ ๊ฒ") | ๋ฐํ โ route โ step โ ๋ ๋ ์๋ฃ | task/start โ dashboard in_progress โ ๋ ๋ ์๋ฃ ์ task/complete โ completed, point +100 |
dashboard, point |
| H-04 | basic ์๋ ํ์ ์ ์ธ | ์ฐจ์ hydrogen_charging/quote_briefing/vehicle_ready ํ์คํฌ | ์คํ ์งํ | ๋ฏธ๋์ฐจ๊ฐ ์ํํ์ง ์์(ํ๋ธ๋ฆฟ ๋๋ณด๊ธฐ ๋ชจ๋ฌ์์ ์๋ฃ) | dashboard |
| H-05 | ํ์ฐจ | step4 arrived next=exit โ {type:exit} |
๋ฐํ | state done, ai/mode chat |
response, ai/mode |
| H-06 | ์๋ฒ ์ฌ์์ ์ retained state ์ฌ์ ๋ฌ | ์๋ฒ ์ฌ๋ฐฐํฌ | Loki | future-car/response idle state๊ฐ ์ธ์
๋ง๋ค mqtt.request๋ก 1ํ ์ฐํ, car_step ๋ด๋ ์ด์
์ ์ค๋ณต ๋ฐํ๋์ง ์์ |
Loki |
I. ๋ก๋ดยท๋๋ฐ์ด์ค ์ฐ๊ณ ํ์คํฌ
| ID | ๋ชฉ์ | ์ ์ | ์ ์ฐจ | ๊ธฐ๋ ๊ฒฐ๊ณผ | ํ์ธ |
|---|---|---|---|---|---|
| I-01 | SPOT ์๋๋ฆฌ์ค ์คํ | robot/spot-01/scenarios์ market_load(๋งํธ ์ ์ฌ) 1๊ฐ |
spot/command {action:run_scenario, scenario_id:market_load} |
spot/command/response ํ ๋ฑ๋ก, spot/ack ๋ฆด๋ ์ด |
response, ack |
| I-02 | SPOT waypoints ๋น์ด ์์ | ํ์ฌ waypoints:[] (map_0906_1028) |
navigate_to ์์ฒญ |
๊ฑฐ๋ถ ์ฌ์ ๋ช ํ("waypoint ์์") | response |
| I-03 | SPOT estop ์ํ | robot/spot-01/estop active=true(9/6 ์ดํ ์ ์ง) |
๋ช ๋ น ์์ฒญ | ๊ฑฐ๋ถ ๋๋ ํ ๋ณด๋ฅ, orchestration/spot/spot-01/estop ๋ฆด๋ ์ด |
response |
| I-04 | SPOT fault | fault BATTERY_LOW 15% |
๋ช ๋ น ์์ฒญ | ์ ์ฑ ํ์ธ(๊ฑฐ๋ถ/๊ฒฝ๊ณ ), ๋ฐฑ์คํผ์ค SPOT ํ ์คํธ ํ๋ฉด์ ํ์ | ๋ฐฑ์คํผ์ค |
| I-05 | ๋ฐ๋ ค๋ก๋ด ํ์คํฌ | ์ง "ํ ๋ฐ๋ ๋ชจ๋"(๋๋ฐ์ด์ค ๋ฐ๋ ค๋ก๋ด, ์ฒจ๋ถ ์์) | task/start | ๋์ฐฉ ์๋ํ ๊ท์น ์์ผ๋ฉด robot/REX/command ๋ฐํ |
Loki |
| I-06 | LG ๊ฐ์ ํ์คํฌ | ์ฐจ "[TEST] LG ๊ฐ์ ๊ณต๊ธฐ์ฒญ์ ๊ธฐ ์คํ"(lg_entity/lg_option ๋ฉํ) | task/start | HA ํธ์ถ ๋ก๊ทธ, ์คํจ ์ ํ์คํฌ ์ํ๋ ์ ์ง | Loki |
| I-07 | Hub ํ์คํฌ | ๋งํธ "[MART-17] AUM ๋๋ก ๊ธด๊ธ๋ฐฐ์ก"(Physical AI Hub) | ์ ํยท์์ | diorama/{device}/request ๋ฐํ ์ฌ๋ถ |
Loki |
| I-08 | ํ์คํฌ device ํ๋ | "๋น ์ง ํ์ธ"(Space-CCTV#1), "์ปจ๋์ ๊ธฐ๋ฐ ํ๋ฃจ ๋ธ๋ฆฌํ"(Diorama-CCTV#2) | dashboard | device{id,name}์ด devices/list์ ์ผ์น |
๋ ๋น๊ต |
J. ๋ฐฑ์คํผ์ค ํ์คํฌ ๊ด๋ฆฌ โ ๋ฐํ ๋ฐ์
| ID | ๋ชฉ์ | ์ ์ | ์ ์ฐจ | ๊ธฐ๋ ๊ฒฐ๊ณผ | ํ์ธ |
|---|---|---|---|---|---|
| J-01 | ํ์คํฌ ์์ฑ | ๋งํธ์ basic ํ์คํฌ ์ ๊ท | ๋ฐฑ์คํผ์ค ์ ์ฅ | ์ดํ ์ ์ธ์ ์์ ํ๋ณด๋ก ๋ฑ์ฅ. ๊ธฐ์กด ์ธ์ dashboard๋ ๋ณํ ์์(์ธ์ ์๋ฉ 1ํ) | ์ ์ธ์ dashboard |
| J-02 | ํ์คํฌ ์์ (์ ๋ชฉยท์ค๋ช ) | ๊ธฐ์กด ํ์คํฌ | ์์ | ํ์ฑ ์ธ์ dashboard ์ฌ๋ฐํ ์ฌ๋ถ ์ ์ฑ ํ์ธ, description_prompt ๋ณ๊ฒฝ์ ๋ค์ LLM ์์ฑ๋ถํฐ | dashboard |
| J-03 | ์ค๋น๋ฌผ ํธ์ง | packing ํ์คํฌ ํญ๋ชฉ ์ถ๊ฐ | ์ ์ฅ | packing_items_json ๋ฐ์, CCTV ๋งคํ ์ด๋ฆ๊ณผ ์ผ์นํด์ผ ์ฌ๋กฏ ๋ถ์ | dashboard |
| J-04 | ์ ํ์ง์ ์ํ ์ฐ๊ฒฐ | ์ต์ required_product ์ค์ | ์ ์ฅ | dashboard ์ต์ ์ required_product{title,point_price,owned} | dashboard |
| J-05 | ํ์คํฌ ๋นํ์ฑ/์ญ์ | ์ธ์ ์ด ์ฐ๊ณ ์๋ ํ์คํฌ | ๋นํ์ฑ | ์ ์ธ์ ์์ ์ ์ธ, ๊ธฐ์กด ์ธ์ ์ํ ์ ์ด๋ ๊ณ์ ๊ฐ๋ฅํด์ผ ํจ(๋๋ ์ ์ฑ ๋ช ์) | dashboard |
| J-06 | ์ํ ๋ณ๊ฒฝ ์ฆ์ ๋ฐ์ | ๊ฐ๊ฒฉ ์์ | ์ ์ฅ | store/list ์ฆ์ ์ฌ๋ฐํ |
store/list |
| J-07 | ๋๋ฐ์ด์ค ๋ณ๊ฒฝ | ๋๋ฐ์ด์ค ๋นํ์ฑ | ์ ์ฅ | devices/list ์ฌ๋ฐํ, ํ์ฑ๋ง ํฌํจ |
devices/list |
| J-08 | ์ฑ ์ค์ ํ๋กฌํํธ | journey_narrative_prompt ์์ |
์ ์ฅ ํ ํ์คํฌ ์ ์ด | ๋ค์ ๋ด๋ ์ด์ ๋ถํฐ ๋ฐ์(์ฌ์์ ๋ถํ์) | ai/summary |
| J-09 | ์ด๋ฒคํธ ์ ํ์ง ํธ์ง | EVT-08 ์ต์ ์ถ๊ฐ | ์ ์ฅ | ๋ค์ ๋ฐํ ํ์ด๋ก๋ options์ ๋ฐ์ | event |
| J-10 | ์์น ํ ์คํธ | ์ฌ์ฉ์ ์์ธ "์์น ํ ์คํธ" ํญ | ์ฅ์ ์ ํ | ์ค์ ๋์ฐฉ๊ณผ ๋์ผํ๊ฒ ์ด๋ฒคํธ ํ๋จยท์๋ํยทarrival ๋ด๋ ์ด์ ๋ฐํ | Loki |
K. ๊ด์ธกยท๋ก๊ทธ
| ID | ๋ชฉ์ | ์ ์ | ์ ์ฐจ | ๊ธฐ๋ ๊ฒฐ๊ณผ | ํ์ธ |
|---|---|---|---|---|---|
| K-01 | ์ธ์ ํ์๋ผ์ธ | ์์ ์ธ์ | Grafana ์ธ์ ํ์๋ผ์ธ์ ์ธ์ ID ์ ๋ ฅ | requestโhandledโpublish๊ฐ ์๊ฐ์, dur_ms ์กด์ฌ | /grafana/ |
| K-02 | ๊ณ ๋น๋ ํ ํฝ ์ ์ธ | Vision ์ฐ๊ฒฐ | ๋ก๊ทธ ๊ฒ์ | cctv/, vision/, /position, /state๋ ํ์๋ผ์ธ์ ์์ |
/grafana/ |
| K-03 | ํ์ด๋ก๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ | dashboard ๋ฐํ | ๋ก๊ทธ ํผ์น๊ธฐ | payload 600์์์ "โฆ"๋ก ์๋ฆผ, JSON ํ๋ ํ์ฑ๋จ | /grafana/ |
3. ํ ์คํธ ์ ์ ๋ฆฌ ๊ถ๊ณ (๋ฐ์ดํฐ ํ์ง)
์์ง ๋ฐ์ดํฐ์์ ๋ณด์ธ ํญ๋ชฉ. ๊ทธ๋๋ก ๋๋ฉด TC ํ์ ์ด ํ๋ ค์ง๋ค.
- ํ์ ์๋ ๊ตฌํ ํ์คํฌ 37๊ฐ(์: ๊ณต์ "ํ์ด์ค๋ฉ์ด์ปค", ๋งํธ "๋์ฅ๊ณ ๋ณด์ถฉ ๋ฒ๋ค ์๋ น" ์ค๋ณต 3๊ฑด, ์ง "๊ฐ์/๋ฌผ๋ณ ์ค๋น"). 3~41์ธ์ ์ ๋จ์ ์์. ๋นํ์ฑ ์ฒ๋ฆฌ ๊ถ๊ณ .
- ํ ์คํธ ์์ฌ: "[TEST] SPOT ํ ์คํธ์ฉ์~~"(์ค๋ช "ํํํํโฆ"), "[TEST] LG ๊ฐ์ ๊ณต๊ธฐ์ฒญ์ ๊ธฐ ์คํ", ์ ํ์ง "[ํ ์คํธ] ์์์ ์ ํ์ง", "๊ทธ๋ฅ ํด ์ข!!", AI ๋๋ฐ์ "ํผ์นด์ธ"(summary "์๋ชฐ๋"), ๋ฉํ ํ๋กฌํํธ "[TEST] ์ฐจ ๋๋ฌด ์ข์ํด", ์ํ "์์ฌ ๊ท๊ฐ๊ธธ ๋ํ"(1000pt, ์ค๋ช ์์)ยท"์ฝํธ ์ปจ์์ด์ง"(2000pt).
- ํ์คํฌ 17๊ฐ ๋ฌ๋ฆฐ ์ฅ์ 11์ธ์ , 16๊ฐ 3์ธ์ โ ํ ์คํธ ์ธ์ . ๋ง๋ฃ ์ฒ๋ฆฌ ๊ถ๊ณ .
- packing ํ์คํฌ ์ ๋ถ
cctv_state: unknownโ Visioncctv/item/state๊ฐ ์ต๊ทผ ์ ๋ค์ด์ค๊ณ ์์. D-02~D-05๋ Vision ๊ฐ๋ ํ์๋ง ์ ํจ. - SPOT: estop active(9/6 06:53 ์ดํ ํด์ ๊ธฐ๋ก ์์), fault BATTERY_LOW 15%, waypoints ๋น์ด ์์. I-01~I-04๋ ๋ก๋ดํ ํ์ธ ํ.
- ์ํ๊ฐ ํ๊ธฐ ๋ถ์ผ์น: ๊ด์ธก๋ status์
skipped๋์skip2๊ฑด. B-02์์ ํ์ค๊ฐ ํ์ ํ์. - ์ฐจ STEP ํ์คํฌ์ scheduled_time ๋๋ถ๋ถ ๋น์ด ์์ โ ๋ด๋ ์ด์
(G-01)์ด "์คํ ์ถ์ฅ" ๊ฐ์ ์๊ฐ ํํ์ ์ฐ๋ ค๋ฉด
scheduled_time์ ๋ ฅ ํ์(ํ์ฌ "์ฌํ์๋, ์ค๋ ์ถ์ฅ ์ผ์ ํ์ธํ์ธ์" 09:00๋ง ์์). - ์ง ์์/์ข ๋ฃ ์ฅ์๊ฐ ๋ณ๋ ๋ ์ฝ๋์ด๋ฏ๋ก ๋ฐฑ์คํผ์ค ํํฐยทTC ์ ์ ์ ID๋ก ์ง์ ํ ๊ฒ.
4. ์์ง ๋ฐฉ๋ฒ (์ฌํ์ฉ)
# retained ๋ชฉ๋ก (FE_MQTT_* ์๊ฒฉ์ฆ๋ช
, devops CONFIG ๋ณ์)
mosquitto_sub -h machine.tail69930a.ts.net -p 1883 -u $U -P $P -t 'orchestration/+/dashboard' -W 10 -F '%t\t%p'
mosquitto_sub โฆ -t orchestration/store/list -t orchestration/devices/list -t orchestration/ai-companion/list -t orchestration/user-meta-prompt/list -C 4
mosquitto_sub โฆ -t 'robot/spot-01/+' -W 6
# ์ด๋ฒคํธ ๋ฐํ ์ค์ (Loki, OCI VM์์)
curl -G http://localhost:8090/grafana/api/datasources/proxy/uid/loki/loki/api/v1/query_range \
--data-urlencode 'query={container="orchestration-server"} | json | msg="mqtt.publish" | topic=~".*/event$"'