File size: 2,226 Bytes
fbbdeab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
"""
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)