Spaces:
Paused
Paused
| from typing import Dict, Any | |
| from pathlib import Path | |
| from dotenv import load_dotenv | |
| from huggingface_hub import login | |
| import os | |
| def validate_model_path(model_path: Path) -> bool: | |
| """Validate that a model path exists and contains necessary files""" | |
| if not model_path.exists(): | |
| return False | |
| required_files = ['config.json', 'pytorch_model.bin'] | |
| return all((model_path / file).exists() for file in required_files) | |
| def validate_generation_params(params: Dict[str, Any]) -> Dict[str, Any]: | |
| """Validate and normalize generation parameters""" | |
| validated = params.copy() | |
| # Ensure temperature is within bounds | |
| if 'temperature' in validated: | |
| validated['temperature'] = max(0.0, min(2.0, validated['temperature'])) | |
| # Ensure max_new_tokens is reasonable | |
| if 'max_new_tokens' in validated: | |
| validated['max_new_tokens'] = max(1, min(4096, validated['max_new_tokens'])) | |
| return validated | |
| def validate_hf(setup_logger, config): | |
| """ | |
| Validate Hugging Face authentication. | |
| Checks for .env file, loads environment variables, and attempts HF login if token exists. | |
| """ | |
| logger = setup_logger(config, "hf_validation") | |
| # Check for .env file | |
| env_path = Path('.env') | |
| if env_path.exists(): | |
| logger.info("Found .env file, loading environment variables") | |
| load_dotenv() | |
| else: | |
| logger.warning("No .env file found. Fine if you're on Huggingface, but you need one to run locally on your PC.") | |
| # Check for HF token | |
| hf_token = os.getenv('HF_TOKEN') | |
| if not hf_token: | |
| logger.error("No HF_TOKEN found in environment variables") | |
| return False | |
| try: | |
| # Attempt login | |
| login(token=hf_token) | |
| logger.info("Successfully authenticated with Hugging Face") | |
| return True | |
| except Exception as e: | |
| logger.error(f"Failed to authenticate with Hugging Face: {str(e)}") | |
| return False |