- Ollama Docker(14b/32b) + Redis 컨텍스트 캐싱 + 대화 히스토리 - Python SSE 채팅 엔드포인트 + 사전 쿼리 + Tool Calling - 도메인 지식(해양법/어업협정/알고리즘) + DB 스키마 가이드 - Frontend SSE 스트리밍 + 타이머 + thinking 접기 + 확장 UI
51 lines
1.2 KiB
Python
51 lines
1.2 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
|
|
|
|
# 파이프라인
|
|
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()
|