- prediction/: FastAPI 7단계 분류 파이프라인 + 6개 탐지 알고리즘 - snpdb 궤적 조회 → 인메모리 캐시(13K척) → 분류 → kcgdb 저장 - APScheduler 5분 주기, Python 3.9 호환 - 버그 수정: @property last_bucket, SQL INTERVAL 바인딩, rollback, None 가드 - 보안: DB 비밀번호 하드코딩 제거 → env 환경변수 필수 - deploy/kcg-prediction.service: systemd 서비스 (redis-211, 포트 8001) - deploy.yml: prediction CI/CD 배포 단계 추가 (192.168.1.18:32023) - backend: PredictionProxyController (health/status/trigger 프록시) - backend: AppProperties predictionBaseUrl + AuthFilter 인증 예외 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
41 lines
968 B
Python
41 lines
968 B
Python
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# snpdb (궤적 데이터 소스)
|
|
SNPDB_HOST: str = '211.208.115.83'
|
|
SNPDB_PORT: int = 5432
|
|
SNPDB_NAME: str = 'snpdb'
|
|
SNPDB_USER: str = 'snp'
|
|
SNPDB_PASSWORD: str
|
|
|
|
# kcgdb (분석 결과 저장)
|
|
KCGDB_HOST: str = '211.208.115.83'
|
|
KCGDB_PORT: int = 5432
|
|
KCGDB_NAME: str = 'kcgdb'
|
|
KCGDB_SCHEMA: str = 'kcg'
|
|
KCGDB_USER: str = 'kcg_app'
|
|
KCGDB_PASSWORD: str
|
|
|
|
# 스케줄러
|
|
SCHEDULER_INTERVAL_MIN: int = 5
|
|
|
|
# 인메모리 캐시
|
|
CACHE_WINDOW_HOURS: int = 24
|
|
INITIAL_LOAD_HOURS: int = 24
|
|
STATIC_INFO_REFRESH_MIN: int = 60
|
|
PERMIT_REFRESH_MIN: int = 30
|
|
|
|
# 파이프라인
|
|
TRAJECTORY_HOURS: int = 6
|
|
MMSI_PREFIX: str = '412'
|
|
MIN_TRAJ_POINTS: int = 100
|
|
|
|
# 로깅
|
|
LOG_LEVEL: str = 'INFO'
|
|
|
|
model_config = {'env_file': '.env', 'env_file_encoding': 'utf-8', 'extra': 'ignore'}
|
|
|
|
|
|
settings = Settings()
|