geethareddy commited on
Commit
9b183d6
·
verified ·
1 Parent(s): 0ff02fe

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -11
app.py CHANGED
@@ -75,10 +75,10 @@ def load_symptom_model():
75
  try:
76
  model = pipeline(
77
  "text-classification",
78
- model="albert-base-v2",
79
  device=-1
80
  )
81
- logger.warning("Fallback to albert-base-v2 model")
82
  return model
83
  except Exception as fallback_e:
84
  logger.error(f"Fallback model failed: {str(fallback_e)}")
@@ -185,25 +185,28 @@ def analyze_symptoms(text):
185
  result = symptom_classifier(text)
186
  logger.debug(f"Model output: {result}")
187
 
188
- # Handle unexpected output structures
189
- if not result:
190
- logger.warning("Model output is empty")
191
  return "No health condition detected", 0.0
192
  if isinstance(result, tuple):
193
- logger.warning(f"Model returned tuple: {result}")
194
- result = list(result) if len(result) > 0 else []
195
  if not isinstance(result, list) or len(result) == 0:
196
  logger.warning(f"Invalid model output: {result}")
197
  return "No health condition detected", 0.0
198
- if not isinstance(result[0], dict) or not all(k in result[0] for k in ["label", "score"]):
199
  logger.warning(f"Invalid result structure: {result[0]}")
200
  return "No health condition detected", 0.0
 
 
 
201
 
202
  prediction = result[0]["label"]
203
  score = result[0]["score"]
204
  if is_fallback_model:
205
- logger.warning("Using fallback model")
206
- prediction = f"{prediction} (fallback)"
207
  logger.info(f"Prediction: {prediction}, Score: {score:.4f}")
208
  return prediction, score
209
  except Exception as e:
@@ -249,7 +252,7 @@ def analyze_voice(audio_file):
249
 
250
  unique_path = os.path.join(
251
  temp_dir,
252
- f"audio_{datetime.utcnow().strftime('%Y%m%d%H%M%S%f')}_{os.path.basename(audio_file)}"
253
  )
254
  try:
255
  shutil.copy(audio_file, unique_path)
 
75
  try:
76
  model = pipeline(
77
  "text-classification",
78
+ model="dmis-lab/biobert-base-cased-v1.2",
79
  device=-1
80
  )
81
+ logger.warning("Fallback to biobert-base-cased-v1.2 model")
82
  return model
83
  except Exception as fallback_e:
84
  logger.error(f"Fallback model failed: {str(fallback_e)}")
 
185
  result = symptom_classifier(text)
186
  logger.debug(f"Model output: {result}")
187
 
188
+ # Handle all possible output structures
189
+ if result is None or isinstance(result, (str, int, float)):
190
+ logger.warning(f"Invalid model output: {result}")
191
  return "No health condition detected", 0.0
192
  if isinstance(result, tuple):
193
+ logger.debug(f"Converting tuple to list: {result}")
194
+ result = list(result)
195
  if not isinstance(result, list) or len(result) == 0:
196
  logger.warning(f"Invalid model output: {result}")
197
  return "No health condition detected", 0.0
198
+ if not isinstance(result[0], dict):
199
  logger.warning(f"Invalid result structure: {result[0]}")
200
  return "No health condition detected", 0.0
201
+ if not all(k in result[0] for k in ["label", "score"]):
202
+ logger.warning(f"Missing label or score in result: {result[0]}")
203
+ return "No health condition detected", 0.0
204
 
205
  prediction = result[0]["label"]
206
  score = result[0]["score"]
207
  if is_fallback_model:
208
+ logger.warning("Using fallback BioBERT model")
209
+ prediction = f"{prediction} (biobert)"
210
  logger.info(f"Prediction: {prediction}, Score: {score:.4f}")
211
  return prediction, score
212
  except Exception as e:
 
252
 
253
  unique_path = os.path.join(
254
  temp_dir,
255
+ f"audio_{datetime.utcnow().strftime('%Y%m%d%H%M%S%f')}_{os.path.basename(audio_file or 'unknown.wav')}"
256
  )
257
  try:
258
  shutil.copy(audio_file, unique_path)