codenuk_backend_mine/services/architecture-designer/config/settings.py

55 lines
2.0 KiB
Python

# CONFIGURATION SETTINGS - Architecture Designer v2
import os
from typing import Optional
from loguru import logger
class Settings:
"""Configuration settings for Architecture Designer"""
def __init__(self):
# API Configuration
self.api_host: str = os.getenv("API_HOST", "0.0.0.0")
self.api_port: int = int(os.getenv("API_PORT", "8003"))
self.debug: bool = os.getenv("DEBUG", "false").lower() == "true"
# Claude AI Configuration
self.claude_api_key: Optional[str] = os.getenv("ANTHROPIC_API_KEY")
self.claude_model: str = os.getenv("CLAUDE_MODEL", "claude-3-sonnet-20240229")
self.claude_max_tokens: int = int(os.getenv("CLAUDE_MAX_TOKENS", "4000"))
# Service Configuration
self.service_name: str = "architecture-designer-v2"
self.service_version: str = "2.0.0"
# Logging Configuration
self.log_level: str = os.getenv("LOG_LEVEL", "INFO")
# Validate settings
self._validate_settings()
logger.info("⚙️ Settings initialized successfully")
if not self.claude_api_key:
logger.warning("🔑 ANTHROPIC_API_KEY not set - Claude AI features will be limited")
def _validate_settings(self):
"""Validate configuration settings"""
if self.api_port < 1 or self.api_port > 65535:
raise ValueError("API_PORT must be between 1 and 65535")
if self.claude_max_tokens < 100 or self.claude_max_tokens > 8000:
logger.warning("CLAUDE_MAX_TOKENS should be between 100 and 8000")
@property
def is_claude_available(self) -> bool:
"""Check if Claude AI is available"""
return bool(self.claude_api_key)
def get_claude_config(self) -> dict:
"""Get Claude AI configuration"""
return {
"api_key": self.claude_api_key,
"model": self.claude_model,
"max_tokens": self.claude_max_tokens
}