사금향님이 만난 409 'both chronos & lgbm failed' 에러가 원인을 안 보여줘서
디버깅 어려웠음. 세 군데 보강:
1. ensemble.py: 두 모델 다 실패 시 chronos/lgbm 각각의 실제 에러 원문
(type:message) 을 RuntimeError 메시지에 포함. predict.py 가 409 detail
로 그대로 노출하므로 브라우저에서 바로 원인 확인 가능. LGBM 가 None
반환 (체크포인트 없음) 인 경우도 'model checkpoint not found' 로 명시.
2. /health/models 엔드포인트 추가:
- chronos.ping() — lazy load 시도 + 디바이스/모델명 반환
- LGBM_MODEL_DIR 의 *.pkl 개수와 샘플 8개 파일명 반환. cold start
(체크포인트 0개) 면 'no_checkpoints' 상태로 알림.
3. restart-ci.bat 추가 — restart.bat 에서 pause 빼고 종료 코드로만 알리는
SSH 비대화형 친화 버전. 일반 사용은 그대로 restart.bat.
58 lines
1.5 KiB
Batchfile
58 lines
1.5 KiB
Batchfile
@echo off
|
|
REM stock_chart_site - SSH/CI 친화 재시작 스크립트
|
|
REM
|
|
REM restart.bat 과의 차이: pause 가 없음. SSH 비대화형 (예: ssh user@host "restart-ci.bat")
|
|
REM 에서 멈추지 않고 끝까지 실행. 에러는 종료 코드로만 알린다.
|
|
REM
|
|
REM 일반 사용 시엔 restart.bat 을 쓰는게 출력 검토에 편하다.
|
|
|
|
setlocal enabledelayedexpansion
|
|
cd /d "%~dp0"
|
|
|
|
echo === stock_chart_site restart-ci ===
|
|
|
|
where docker >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo [ERROR] docker not found
|
|
exit /b 1
|
|
)
|
|
docker info >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo [ERROR] Docker Desktop not running
|
|
exit /b 1
|
|
)
|
|
|
|
set USE_GPU=0
|
|
where nvidia-smi >nul 2>&1
|
|
if not errorlevel 1 (
|
|
nvidia-smi >nul 2>&1
|
|
if not errorlevel 1 set USE_GPU=1
|
|
)
|
|
|
|
if "%USE_GPU%"=="1" (
|
|
echo [GPU] using GPU profile
|
|
set COMPOSE_FILES=-f docker-compose.yml -f docker-compose.gpu.yml
|
|
) else (
|
|
echo [CPU] using CPU profile
|
|
set COMPOSE_FILES=-f docker-compose.yml
|
|
)
|
|
|
|
for /f %%i in ('docker compose %COMPOSE_FILES% ps --status running --quiet backend web 2^>nul ^| find /v /c ""') do set RUN_COUNT=%%i
|
|
if "%RUN_COUNT%"=="0" (
|
|
echo [ERROR] backend/web not running. run build.bat first.
|
|
exit /b 1
|
|
)
|
|
|
|
echo === docker compose up -d --force-recreate --no-deps backend web ===
|
|
docker compose %COMPOSE_FILES% up -d --force-recreate --no-deps backend web
|
|
if errorlevel 1 (
|
|
echo [ERROR] restart failed
|
|
exit /b 1
|
|
)
|
|
|
|
echo === status ===
|
|
docker compose %COMPOSE_FILES% ps
|
|
|
|
endlocal
|
|
exit /b 0
|