gnumanth commited on
Commit
184ee6c
·
verified ·
1 Parent(s): a323bc7

chore: auth and logging

Browse files
Files changed (1) hide show
  1. app.py +33 -9
app.py CHANGED
@@ -2,13 +2,26 @@ import gradio as gr
2
  import torch
3
  from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
4
  import re
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
  class MedGemmaSymptomAnalyzer:
7
  def __init__(self):
8
  self.model = None
9
  self.tokenizer = None
10
  self.model_loaded = False
11
- print("Initializing MedGemma Symptom Analyzer...")
12
 
13
  def load_model(self):
14
  """Load MedGemma model with optimizations for deployment"""
@@ -16,32 +29,43 @@ class MedGemmaSymptomAnalyzer:
16
  return True
17
 
18
  model_name = "google/medgemma-4b-it"
19
- print(f"Loading model: {model_name}")
20
 
21
  try:
 
 
 
 
 
 
 
22
  # First try without quantization for CPU compatibility
23
- print("Loading tokenizer...")
24
- self.tokenizer = AutoTokenizer.from_pretrained(model_name)
 
 
 
25
 
26
- print("Loading model...")
27
  # Simplified loading for CPU/compatibility
28
  self.model = AutoModelForCausalLM.from_pretrained(
29
  model_name,
30
  torch_dtype=torch.float32, # Use float32 for CPU
31
  device_map="cpu", # Force CPU for compatibility
32
- low_cpu_mem_usage=True
 
33
  )
34
 
35
  if self.tokenizer.pad_token is None:
36
  self.tokenizer.pad_token = self.tokenizer.eos_token
37
 
38
  self.model_loaded = True
39
- print("Model loaded successfully!")
40
  return True
41
 
42
  except Exception as e:
43
- print(f"Error loading model: {e}")
44
- print("Falling back to demo mode...")
45
  self.model = None
46
  self.tokenizer = None
47
  self.model_loaded = False
 
2
  import torch
3
  from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
4
  import re
5
+ import logging
6
+ import os
7
+
8
+ # Configure logging
9
+ logging.basicConfig(
10
+ level=logging.INFO,
11
+ format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
12
+ handlers=[
13
+ logging.StreamHandler(),
14
+ logging.FileHandler('medgemma_app.log')
15
+ ]
16
+ )
17
+ logger = logging.getLogger(__name__)
18
 
19
  class MedGemmaSymptomAnalyzer:
20
  def __init__(self):
21
  self.model = None
22
  self.tokenizer = None
23
  self.model_loaded = False
24
+ logger.info("Initializing MedGemma Symptom Analyzer...")
25
 
26
  def load_model(self):
27
  """Load MedGemma model with optimizations for deployment"""
 
29
  return True
30
 
31
  model_name = "google/medgemma-4b-it"
32
+ logger.info(f"Loading model: {model_name}")
33
 
34
  try:
35
+ # Get HF token from environment (set in Hugging Face Spaces secrets)
36
+ hf_token = os.getenv("HF_TOKEN")
37
+ if hf_token:
38
+ logger.info("Using HF_TOKEN for authentication")
39
+ else:
40
+ logger.warning("HF_TOKEN not found in environment variables")
41
+
42
  # First try without quantization for CPU compatibility
43
+ logger.info("Loading tokenizer...")
44
+ self.tokenizer = AutoTokenizer.from_pretrained(
45
+ model_name,
46
+ token=hf_token
47
+ )
48
 
49
+ logger.info("Loading model...")
50
  # Simplified loading for CPU/compatibility
51
  self.model = AutoModelForCausalLM.from_pretrained(
52
  model_name,
53
  torch_dtype=torch.float32, # Use float32 for CPU
54
  device_map="cpu", # Force CPU for compatibility
55
+ low_cpu_mem_usage=True,
56
+ token=hf_token
57
  )
58
 
59
  if self.tokenizer.pad_token is None:
60
  self.tokenizer.pad_token = self.tokenizer.eos_token
61
 
62
  self.model_loaded = True
63
+ logger.info("Model loaded successfully!")
64
  return True
65
 
66
  except Exception as e:
67
+ logger.error(f"Failed to load model {model_name}: {str(e)}", exc_info=True)
68
+ logger.warning("Falling back to demo mode due to model loading failure")
69
  self.model = None
70
  self.tokenizer = None
71
  self.model_loaded = False