mathaisjustin's picture
Deploy Fish Disease Detection AI
fbbdeab
"""
Configuration file for Fish Disease Detection System
Secure deployment with environment variables
"""
import os
import torch
# ==================== DISEASE CLASSES ====================
CLASSES = [
'Aeromoniasis',
'Bacterial_gill_disease',
'Bacterial_red_disease',
'EUS',
'Healthy_Fish',
'Parasitic_diseases',
'Saprolegniasis_fungal',
'Viral_white_tail'
]
# ==================== GEMINI API SETTINGS ====================
# IMPORTANT: Set GEMINI_API_KEY in environment variable (.env file or Hugging Face Secrets)
GEMINI_API_KEY = os.environ.get('GEMINI_API_KEY')
GEMINI_MODEL_NAME = os.environ.get('GEMINI_MODEL_NAME', 'gemini-2.0-flash-exp')
# Validate API key
if not GEMINI_API_KEY:
print("⚠️ WARNING: GEMINI_API_KEY not found in environment variables!")
print(" Set it in .env file (local) or Hugging Face Space settings (production)")
print(" Gemini AI features will be disabled.")
# ==================== MODEL SETTINGS ====================
MODEL_PATH = 'models/vgg_resnet/results/vgg_resnet/vgg16_best.pth'
CONFIDENCE_THRESHOLD = 70.0 # Minimum confidence to report disease
DEVICE = 'cuda' if torch.cuda.is_available() else 'cpu'
# ==================== VALIDATION SETTINGS ====================
MAX_FILE_SIZE_MB = 10 # Maximum upload size
MIN_IMAGE_SIZE_PX = 100 # Minimum image dimensions
VALID_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.JPG', '.JPEG', '.PNG']
# ==================== IMAGE PREPROCESSING ====================
IMAGE_SIZE = 224 # VGG16 input size
NORMALIZE_MEAN = [0.485, 0.456, 0.406] # ImageNet mean
NORMALIZE_STD = [0.229, 0.224, 0.225] # ImageNet std
# ==================== DEBUG SETTINGS ====================
DEBUG = os.environ.get('DEBUG', 'False').lower() == 'true'
if DEBUG:
print("="*60)
print("🐟 Fish Disease Detection - Configuration")
print("="*60)
print(f" Model Path: {MODEL_PATH}")
print(f" Device: {DEVICE}")
print(f" Classes: {len(CLASSES)}")
print(f" Confidence Threshold: {CONFIDENCE_THRESHOLD}%")
print(f" Gemini API Key: {'βœ… Set' if GEMINI_API_KEY else '❌ Not Set'}")
print(f" Gemini Model: {GEMINI_MODEL_NAME if GEMINI_API_KEY else 'N/A'}")
print("="*60)