Headless-VoxNovel-Demo / download_missing_booknlp_models.py
drewThomasson's picture
Create download_missing_booknlp_models.py
ae020c7 verified
raw
history blame
2.14 kB
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.")