MMCL/backend/17. 다중 색상 제어(Multi-Color) 기능 추가.txt
2026-09-04 11:24:42 +09:00

30 lines
1.9 KiB
Plaintext

# 다중 색상 제어(Multi-Color) 기능 추가
이제 사용자가 한 번의 자연어 명령으로 여러 개의 색상을 동시에 켜거나 끌 수 있습니다.
## 주요 변경 사항 요약
1. **복수 색상 추출 알고리즘 (`main.py`)**:
기존에는 LLM이 "빨간색" 단 하나만 찾도록 강제되어 있었으나, 이제 프롬프트를 개선하여 `["RED", "YELLOW"]` 와 같이 여러 색상을 **배열(Array)** 형태로 한 번에 뽑아내도록 지능을 높였습니다.
2. **다중 상태 연산 로직 추가**:
파이썬 서버는 LLM이 넘겨준 복수의 색상 리스트를 순회하며, 기존 상태는 그대로 둔 채로 명시된 모든 색상의 타겟값만 한 번에 변경합니다.
* `빨간색, 노란색 켜줘` -> RED=1, YELLOW=1, GREEN=(기존상태 유지)
* `초록색, 노란색 켜줘` -> RED=(기존상태 유지), YELLOW=1, GREEN=1
3. **로깅 및 응답 다변화**:
복수의 색상을 제어했을 경우, DB 로그 및 최종 응답 메시지에 `RED, YELLOW ON 명령이 정상적으로 적용되었습니다.` 와 같이 제어된 색상들이 콤마로 예쁘게 묶여서 출력되도록 디테일을 살렸습니다.
## 확인 및 테스트 방법
> [!CAUTION]
> 백엔드 코드가 변경되었으므로 반드시 우분투 서버에서 프로세스를 재시작해 주세요!
> `pkill -9 -f uvicorn ; cd ~/mmcl_backend ; nohup uvicorn main:app --host 0.0.0.0 --port 8000 > backend.log 2>&1 &`
1. **2가지 색상 동시 제어**:
* 입력: `{"message": "CNC 1호기 빨간색하고 노란색 켜줘"}`
* 기대 결과: 빨간불과 노란불만 동시에 켜지고 초록불은 기존 상태를 유지하는지 확인
2. **다중 색상 상태 조회 연계 테스트**:
* 입력: `{"message": "CNC 1호기 상태 알려줘"}`
* 1번 테스트 직후에 상태 조회를 했을 때 빨강/노랑은 켜짐, 초록은 꺼짐으로 정상 반영되는지 확인