Spaces:
Runtime error
Runtime error
| import os | |
| import requests | |
| import zipfile | |
| from pathlib import Path | |
| from tqdm import tqdm | |
| def download_and_extract(): | |
| url = "https://huggingface.co/drewThomasson/Booknlp_models_Backup/resolve/main/booknlp_models.zip?download=true" | |
| file_name = "booknlp_models.zip" | |
| home_dir = str(Path.home()) | |
| zip_path = os.path.join(home_dir, file_name) | |
| models_folder = os.path.join(home_dir, "booknlp_models") | |
| print("Downloading the missing booknlp files...") | |
| response = requests.get(url, stream=True) | |
| total_size = int(response.headers.get('content-length', 0)) | |
| with open(zip_path, 'wb') as file, tqdm( | |
| desc=file_name, | |
| total=total_size, | |
| unit='iB', | |
| unit_scale=True, | |
| unit_divisor=1024, | |
| ) as progress_bar: | |
| for data in response.iter_content(chunk_size=1024): | |
| size = file.write(data) | |
| progress_bar.update(size) | |
| print("Extracting required files...") | |
| with zipfile.ZipFile(zip_path, 'r') as zip_ref: | |
| for file in zip_ref.namelist(): | |
| if file.startswith('booknlp_models/') and file.split('/')[-1] in required_files: | |
| zip_ref.extract(file, home_dir) | |
| print("Deleting the zip file...") | |
| os.remove(zip_path) | |
| print("Process completed successfully!") | |
| # List of required files | |
| required_files = [ | |
| "coref_google_bert_uncased_L-12_H-768_A-12-v1.0.model", | |
| "speaker_google_bert_uncased_L-12_H-768_A-12-v1.0.1.model", | |
| "entities_google_bert_uncased_L-6_H-768_A-12-v1.0.model" | |
| ] | |
| # Get the user's home directory | |
| home_dir = str(Path.home()) | |
| models_folder = os.path.join(home_dir, "booknlp_models") | |
| # Check if the folder exists, if not create it | |
| if not os.path.exists(models_folder): | |
| os.makedirs(models_folder) | |
| # Check for missing files | |
| missing_files = [file for file in required_files if not os.path.exists(os.path.join(models_folder, file))] | |
| if missing_files: | |
| print(f"The following files are missing: {', '.join(missing_files)}") | |
| print("Downloading and extracting required files...") | |
| download_and_extract() | |
| else: | |
| print("All required booknlp files are present. No action needed.") |