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 |