Brent 원유 가격 예측 모델의 성능을 실시간으로 모니터링하는 AIOps 파이프라인입니다. LSTM 모델로 유가를 예측하고, 성능 저하가 감지되면 LLM 분석 리포트 생성 및 자동 재학습을 트리거합니다.
- 실시간 모니터링: CSV 업로드 시 LSTM 모델로 유가 예측 및 RMSE 측정
- 자동 경보: RMSE가 임계치 초과 시 성능 저하 감지 및 경고
- LLM 분석 리포트: OpenAI GPT-4o-mini 기반 성능 저하 원인 분석 및 재학습 권고 보고서 자동 생성
- 모델 재학습: Early Stopping 적용 LSTM 재학습 파이프라인 (MLflow 실험 추적)
- 대시보드: 실제값 vs 예측값 시계열 차트, 오차 분석, 모델 라이프사이클 현황
- 24시간 자동 모니터링: APScheduler 기반 백그라운드 성능 체크
| 영역 | 기술 |
|---|---|
| Backend | FastAPI, PyTorch, MLflow, APScheduler |
| ML | LSTM (PyTorch), MinMaxScaler, RMSE 기반 드리프트 감지 |
| LLM | OpenAI GPT-4o-mini |
| Frontend | Vanilla JS, Canvas API |
| 데이터 | Kaggle Brent Oil Prices 데이터셋 (Date, Price 컬럼) |
aiops/
├── backend/
│ ├── main.py # FastAPI 서버, API 엔드포인트, 스케줄러
│ ├── model.py # BrentLSTM 모델 정의, 예측 및 시각화
│ ├── trainer.py # 모델 재학습 파이프라인 (MLflow 통합)
│ ├── llm_service.py # OpenAI API 연동 LLM 리포트 생성
│ ├── init_model.py # 초기 모델 가중치 생성
│ └── requirements.txt
├── frontend/
│ ├── index.html # 대시보드 UI
│ ├── main.js # 스트리밍, 차트, 이벤트 처리
│ └── style.css
└── sample_data/
└── upload_after_2020.csv # 테스트용 샘플 데이터
cd backend
pip install -r requirements.txtcp backend/.env.example backend/.env
# .env 파일에 OpenAI API 키 입력cd backend
python init_model.pycd backend
uvicorn main:app --reload브라우저에서 http://localhost:8000 접속 후 sample_data/upload_after_2020.csv를 업로드하여 테스트할 수 있습니다.
| Method | Endpoint | 설명 |
|---|---|---|
POST |
/api/upload |
CSV 업로드 → 예측 → RMSE 측정 |
POST |
/api/retrain |
모델 재학습 트리거 |
GET |
/api/status |
시스템 및 모니터링 상태 조회 |
GET |
/api/visualization |
예측 시각화 이미지 반환 |
GET |
/api/initial-performance |
초기 모델 성능 조회 |
GET |
/api/monitoring/run |
즉시 모니터링 실행 |
POST |
/api/monitoring/toggle |
자동 모니터링 활성화/비활성화 |
업로드할 CSV 파일은 아래 형식을 따라야 합니다:
Date,Price
2020-01-02,68.91
2020-01-03,68.44
...