Fonty02 commited on
Commit
d3e5e60
·
verified ·
1 Parent(s): 20503f2

Update nygaardcodecommentclassification/api/models.py

Browse files
nygaardcodecommentclassification/api/models.py CHANGED
@@ -181,21 +181,31 @@ class ModelRegistry:
181
  except Exception as e:
182
  logger.error("[%s] Error loading models: %s", lang.upper(), e)
183
 
184
- def get_model(self, language: str, model_type: str) -> Optional[Dict[str, Any]]:
185
- """Retrieve a loaded model entry by language and type.
186
-
187
- Args:
188
- language: The programming language code
189
- model_type: The type of model
190
 
191
- Returns:
192
- Dict containing the model and metadata, or None if not found.
193
- The dict contains:
194
- - "model": The loaded ML model object
195
- - "feature_type": Type of features used
196
- - "embedder": Optional sentence transformer for embedding generation
197
- """
198
- return self._registry.get(language, {}).get(model_type)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199
 
200
  def clear(self) -> None:
201
  """Clear all models from the registry and free memory.
 
181
  except Exception as e:
182
  logger.error("[%s] Error loading models: %s", lang.upper(), e)
183
 
184
+ # In models.py
 
 
 
 
 
185
 
186
+ def get_model(self, language: str, model_type: str) -> Optional[Dict[str, Any]]:
187
+ """Retrieve a loaded model entry by language and type."""
188
+ # 1. Prova accesso diretto (veloce)
189
+ if language in self._registry:
190
+ return self._registry[language].get(model_type)
191
+
192
+ # 2. Se fallisce, prova case-insensitive (più lento ma robusto)
193
+ # Normalizza tutto in minuscolo per il confronto
194
+ normalized_lang = language.lower()
195
+ for reg_lang in self._registry.keys():
196
+ if reg_lang.lower() == normalized_lang:
197
+ return self._registry[reg_lang].get(model_type)
198
+
199
+ # 3. DEBUG: Se non trova nulla, stampa cosa c'è nel registry
200
+ # Questo apparirà nei log di Hugging Face e ti dirà ESATTAMENTE quali chiavi sono caricate
201
+ logger.warning(
202
+ "Model lookup failed for lang='%s', type='%s'. Available langs in registry: %s",
203
+ language,
204
+ model_type,
205
+ list(self._registry.keys())
206
+ )
207
+
208
+ return None
209
 
210
  def clear(self) -> None:
211
  """Clear all models from the registry and free memory.