melting-tank-mlops는 실제 제조 공정 데이터를 기반으로 실시간 불량 발생 확률을 예측하고 시각화하는 엔드-투-엔드(E2E) MLOps 시스템입니다.
AI 모델 예측, 실시간 시뮬레이터, 대시보드, AWS 클라우드 배포까지 모두 자동화되어 있습니다.
- CSV 기반 공정 데이터 스트리밍
- 30초 간격 예측 API 호출 자동화
- LSTM 모델 기반 예측
- threshold 기반 불량/정상 판정
- 예측 결과 저장 및 통계 제공
/predict: 예측 API/dashboard/data: 실시간 데이터 제공/dashboard: Plotly.js 대시보드 렌더링
- 불량 발생 확률(%) 타임라인 그래프
- KPI 카드(마지막 예측값 / 최근 평균)
- KST 기준 시간 표시
- Docker 기반 컨테이너
- ALB(Application Load Balancer) 라우팅
- CloudWatch Logs 기반 실시간 로그 추적
- main 브랜치 push → 자동 Build & Deploy
- buildspec.yml 기반 도커 빌드 & ECR Push
CSV Simulator → FastAPI API → ECS Fargate → ALB → Dashboard
↑ ↓
LSTM Model Plotly.js Visualization
melting-tank-mlops/
├── app/
│ ├── main.py # FastAPI 진입점
│ ├── model.py # LSTM 모델 로딩
│ ├── storage.py # 예측 저장(KST 시간 적용)
│ ├── simulator.py # MES 시뮬레이터
│ ├── dashboard.py # 대시보드 라우팅
│ └── static/
│ └── dashboard.html # Plotly.js 시각화 페이지
│
├── data/
│ └── melting-sensor.csv # 시뮬레이션용 공정 데이터
│
├── Dockerfile
├── buildspec.yml
├── requirements.txt
└── README.md
docker build -t melting-tank-api .
docker run -p 8080:8080 melting-tank-api
- 실시간 불량 확률 그래프
- 임계값(Threshold) 표시
- 최근 평균 불량률
- 마지막 예측값 (정상/불량)
- ECR 이미지 Push
- ECS Fargate 서비스 1개 + Task 1개 운영
- ALB Listener 라우팅:
/dashboard/dashboard/data/predict
POST /predict
{
"prob_ng": 0.78,
"label": "NG",
"timestamp": "2025-11-20 13:48:00"
}youneedpython
This project is licensed under the MIT License.
