"""환경 설정""" from pydantic_settings import BaseSettings from functools import lru_cache from typing import List class Settings(BaseSettings): """환경 설정 클래스""" # 서버 설정 app_name: str = "AI Service (Python)" host: str = "0.0.0.0" port: int = 8087 # Claude API claude_api_key: str = "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" claude_model: str = "claude-sonnet-4-5-20250929" claude_max_tokens: int = 8192 # 4096 → 8192 증가 (더 많은 제안사항 생성 가능) claude_temperature: float = 0.7 # Redis redis_host: str = "20.249.177.114" redis_port: int = 6379 redis_password: str = "" redis_db: int = 4 # Azure Event Hub eventhub_connection_string: str = "Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" eventhub_name: str = "hgzero-eventhub-name" eventhub_consumer_group: str = "ai-transcript-group" # CORS cors_origins: List[str] = [ "http://localhost:8888", "http://localhost:8080", "http://localhost:3000", "http://127.0.0.1:8888", "http://127.0.0.1:8080", "http://127.0.0.1:3000", "http://localhost:*" # 모든 localhost 포트 허용 ] # 로깅 log_level: str = "INFO" # 분석 임계값 (실시간 응답을 위해 낮춤) min_segments_for_analysis: int = 2 # 2개 세그먼트 (약 30초, 빠른 피드백) text_retention_seconds: int = 300 # 5분 class Config: env_file = ".env" case_sensitive = False @lru_cache() def get_settings() -> Settings: """싱글톤 설정 인스턴스""" return Settings()