SmartHeal's picture
Upload 33 files
185c377 verified
raw
history blame
3.14 kB
import os
import logging
from pathlib import Path
class Config:
"""Configuration management for SmartHeal application"""
def __init__(self):
"""Initialize configuration with environment variables and defaults"""
# Database configuration
self.MYSQL_CONFIG = {
"host": os.getenv("MYSQL_HOST", "sg-nme-web545.main-hosting.eu"),
"user": os.getenv("MYSQL_USER", "u124249738_SmartHealApp"),
"password": os.getenv("MYSQL_PASSWORD", "I^4y1b12y"),
"database": os.getenv("MYSQL_DATABASE", "u124249738_SmartHealAppDB"),
"port": int(os.getenv("MYSQL_PORT", 3306))
}
# Application directories
self.UPLOADS_DIR = os.getenv("UPLOADS_DIR", "uploads")
self.MODELS_DIR = os.getenv("MODELS_DIR", "models")
# AI/ML configuration
self.HF_TOKEN = os.getenv("HF_TOKEN")
self.OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
# AI Model Configuration
# AI Model Configuration
self.YOLO_MODEL_PATH = os.getenv("YOLO_MODEL_PATH", "src/best.pt")
self.SEG_MODEL_PATH = os.getenv("SEG_MODEL_PATH", "src/segmentation_model.h5")
self.MEDGEMMA_MODEL = os.getenv("MEDGEMMA_MODEL", "google/medgemma-4b-it")
self.WOUND_CLASSIFICATION_MODEL = os.getenv("WOUND_CLASSIFICATION_MODEL", "Hemg/Wound-classification")
self.EMBEDDING_MODEL = os.getenv("EMBEDDING_MODEL", "sentence-transformers/all-MiniLM-L6-v2")
# AI Processing Configuration
self.PIXELS_PER_CM = int(os.getenv("PIXELS_PER_CM", "37"))
self.MAX_NEW_TOKENS = int(os.getenv("MAX_NEW_TOKENS", "512"))
self.DATASET_ID = os.getenv("DATASET_ID", "")
self.GUIDELINE_PDFS = [
os.path.join("src", "eHealth in Wound Care.pdf"),
os.path.join("src", "IWGDF Guideline.pdf"),
os.path.join("src", "evaluation.pdf")
]
# Application settings
self.DEBUG = os.getenv("DEBUG", "False").lower() == "true"
self.LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO")
# Create required directories
self._create_directories()
logging.info("✅ Configuration initialized")
def _create_directories(self):
"""Create required directories if they don't exist"""
directories = [self.UPLOADS_DIR, self.MODELS_DIR]
for directory in directories:
if not os.path.exists(directory):
os.makedirs(directory, exist_ok=True)
logging.info(f"Created directory: {directory}")
def get_mysql_config(self):
"""Get MySQL configuration dictionary"""
return self.MYSQL_CONFIG.copy()
def get_upload_path(self, filename):
"""Get full path for uploaded file"""
return os.path.join(self.UPLOADS_DIR, filename)
def get_model_path(self, model_name):
"""Get full path for model file"""
return os.path.join(self.MODELS_DIR, model_name)