Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -100,12 +100,30 @@ if not all(col in questions_df.columns for col in ["Skill", "Question", "Answer"
|
|
100 |
exit(1)
|
101 |
logger.info(f"questions_df loaded with {len(questions_df)} rows. Skills available: {list(questions_df['Skill'].unique())}")
|
102 |
|
103 |
-
# Load or Initialize Models
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
|
110 |
if os.path.exists(DETECTOR_MODEL_PATH):
|
111 |
detector_tokenizer = AutoTokenizer.from_pretrained(DETECTOR_MODEL_PATH)
|
|
|
100 |
exit(1)
|
101 |
logger.info(f"questions_df loaded with {len(questions_df)} rows. Skills available: {list(questions_df['Skill'].unique())}")
|
102 |
|
103 |
+
# Load or Initialize Models with Fallback
|
104 |
+
def load_universal_model():
|
105 |
+
default_model = "all-MiniLM-L6-v2"
|
106 |
+
try:
|
107 |
+
if os.path.exists(UNIVERSAL_MODEL_PATH):
|
108 |
+
logger.info(f"Loading universal model from {UNIVERSAL_MODEL_PATH}")
|
109 |
+
return SentenceTransformer(UNIVERSAL_MODEL_PATH)
|
110 |
+
else:
|
111 |
+
logger.info(f"Loading universal model: all-MiniLM-L6-v2")
|
112 |
+
model = SentenceTransformer("all-MiniLM-L6-v2")
|
113 |
+
model.save(UNIVERSAL_MODEL_PATH)
|
114 |
+
return model
|
115 |
+
except Exception as e:
|
116 |
+
logger.error(f"Failed to load universal model all-MiniLM-L6-v2: {e}. Falling back to default.")
|
117 |
+
try:
|
118 |
+
logger.info(f"Loading fallback model: {default_model}")
|
119 |
+
model = SentenceTransformer(default_model)
|
120 |
+
model.save(UNIVERSAL_MODEL_PATH)
|
121 |
+
return model
|
122 |
+
except Exception as e:
|
123 |
+
logger.error(f"Failed to load fallback model {default_model}: {e}. Exiting.")
|
124 |
+
exit(1)
|
125 |
+
|
126 |
+
universal_model = load_universal_model()
|
127 |
|
128 |
if os.path.exists(DETECTOR_MODEL_PATH):
|
129 |
detector_tokenizer = AutoTokenizer.from_pretrained(DETECTOR_MODEL_PATH)
|