kcg-monitoring/prediction/config.py
htlee 2534c9dbca fix: time_bucket 수집 안전 윈도우 도입 — incremental fetch 데이터 누락 방지
snpdb 5분 버킷 데이터가 적재 완료까지 ~12분 소요되는데,
기존 fetch_incremental이 상한 없이 미완성 버킷을 수집하여
_last_bucket이 조기 전진 → 뒤늦게 완성된 행 영구 누락.

- time_bucket.py 신규: safe_bucket(12분 지연) + backfill(3 bucket)
- snpdb.py: fetch_all_tracks/fetch_incremental에 safe 상한 + 백필 하한
- vessel_store.py: merge_incremental sort+keep='last', evict_stale time_bucket 우선
- config.py: SNPDB_SAFE_DELAY_MIN=12, SNPDB_BACKFILL_BUCKETS=3

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 15:11:20 +09:00

53 lines
1.3 KiB
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
SNPDB_SAFE_DELAY_MIN: int = 12
SNPDB_BACKFILL_BUCKETS: int = 3
# 파이프라인
TRAJECTORY_HOURS: int = 6
MMSI_PREFIX: str = '412'
MIN_TRAJ_POINTS: int = 100
# Ollama (LLM)
OLLAMA_BASE_URL: str = 'http://localhost:11434'
OLLAMA_MODEL: str = 'qwen3:14b' # CPU-only: 14b 권장, GPU 있으면 32b
OLLAMA_TIMEOUT_SEC: int = 300
# Redis
REDIS_HOST: str = 'localhost'
REDIS_PORT: int = 6379
REDIS_PASSWORD: str = ''
# 로깅
LOG_LEVEL: str = 'INFO'
model_config = {'env_file': '.env', 'env_file_encoding': 'utf-8', 'extra': 'ignore'}
settings = Settings()