Spaces:
Sleeping
Sleeping
Johnny
updated resume_format > template, hide sidebar, download Spacy model with spacy_loader.py
102e49d Download utils/spacy_loader.py from gauravbox/TalentLensAI: direct link, hf CLI and curl.
- Browser
- Download file 2.01 kB
-
https://huggingface.co/spaces/gauravbox/TalentLensAI/resolve/main/utils/spacy_loader.py
- Command line
-
hf download hf://spaces/gauravbox/TalentLensAI/utils/spacy_loader.py
-
curl -L -o spacy_loader.py https://huggingface.co/spaces/gauravbox/TalentLensAI/resolve/main/utils/spacy_loader.py
2.01 kB
| """ | |
| SpaCy Model Loader with fallbacks for deployment environments | |
| """ | |
| import spacy | |
| import logging | |
| import subprocess | |
| import sys | |
| logger = logging.getLogger(__name__) | |
| def load_spacy_model(model_name="en_core_web_sm"): | |
| """ | |
| Load spaCy model with fallbacks for deployment environments | |
| Args: | |
| model_name: Name of the spaCy model to load | |
| Returns: | |
| Loaded spaCy model or None if all attempts fail | |
| """ | |
| # Try to load the model directly first | |
| try: | |
| nlp = spacy.load(model_name) | |
| logger.info(f"β Successfully loaded spaCy model: {model_name}") | |
| return nlp | |
| except OSError as e: | |
| logger.warning(f"Failed to load {model_name} directly: {e}") | |
| # Try to download and install the model | |
| try: | |
| logger.info(f"Attempting to download {model_name}...") | |
| subprocess.check_call([ | |
| sys.executable, "-m", "spacy", "download", model_name | |
| ]) | |
| nlp = spacy.load(model_name) | |
| logger.info(f"β Successfully downloaded and loaded spaCy model: {model_name}") | |
| return nlp | |
| except (subprocess.CalledProcessError, OSError) as e: | |
| logger.warning(f"Failed to download {model_name}: {e}") | |
| # Try to load blank English model as fallback | |
| try: | |
| logger.info("Loading blank English model as fallback...") | |
| nlp = spacy.blank("en") | |
| logger.info("β Successfully loaded blank English model") | |
| return nlp | |
| except Exception as e: | |
| logger.error(f"Failed to load blank English model: {e}") | |
| # Final fallback - return None | |
| logger.error("β All spaCy model loading attempts failed") | |
| return None | |
| # Global instance | |
| _nlp_instance = None | |
| def get_nlp(): | |
| """Get the global spaCy model instance""" | |
| global _nlp_instance | |
| if _nlp_instance is None: | |
| _nlp_instance = load_spacy_model() | |
| return _nlp_instance | |
| def is_spacy_available(): | |
| """Check if spaCy model is available""" | |
| return get_nlp() is not None |