Updates
This commit is contained in:
65
AIServerSetup/06-DeepSeek-R1-0528/download-gguf.py
Normal file
65
AIServerSetup/06-DeepSeek-R1-0528/download-gguf.py
Normal file
@@ -0,0 +1,65 @@
|
||||
from huggingface_hub import hf_hub_download, list_repo_files # Import list_repo_files
|
||||
import os
|
||||
|
||||
# Configuration
|
||||
repo_id = "unsloth/DeepSeek-R1-0528-GGUF"
|
||||
folder_in_repo = "Q4_K_M"
|
||||
file_extension = ".gguf"
|
||||
# Expand the tilde (~) to the user's home directory
|
||||
local_base_dir = os.path.expanduser("~/dev-ai/models/unsloth/DeepSeek-R1-0528-GGUF")
|
||||
|
||||
# Create base directory
|
||||
# The hf_hub_download function will create the directory if it doesn't exist
|
||||
# when local_dir_use_symlinks=False. However, explicit creation is fine.
|
||||
os.makedirs(local_base_dir, exist_ok=True)
|
||||
|
||||
# Download files
|
||||
print(f"Listing files from {repo_id} in folder {folder_in_repo} with extension {file_extension}...")
|
||||
try:
|
||||
all_repo_files = list_repo_files(repo_id, repo_type='model')
|
||||
files_to_download = [
|
||||
f for f in all_repo_files
|
||||
if f.startswith(folder_in_repo + "/") and f.endswith(file_extension)
|
||||
]
|
||||
|
||||
if not files_to_download:
|
||||
print(f"No files found in '{folder_in_repo}' with extension '{file_extension}'.")
|
||||
else:
|
||||
print(f"Found {len(files_to_download)} file(s) to download.")
|
||||
|
||||
for filename_in_repo in files_to_download:
|
||||
print(f"Downloading {filename_in_repo}...")
|
||||
# The filename parameter in hf_hub_download should be the path within the repo
|
||||
# The local_dir parameter specifies where the file (maintaining its repo path structure)
|
||||
# will be saved under.
|
||||
# For example, if filename_in_repo is "UD-Q4_K_XL/file.gguf",
|
||||
# it will be saved as local_base_dir/UD-Q4_K_XL/file.gguf
|
||||
try:
|
||||
downloaded_file_path = hf_hub_download(
|
||||
repo_id=repo_id,
|
||||
filename=filename_in_repo, # This is the path of the file within the repository
|
||||
local_dir=local_base_dir,
|
||||
local_dir_use_symlinks=False,
|
||||
# Set resume_download=True if you want to resume interrupted downloads
|
||||
# resume_download=True,
|
||||
)
|
||||
# The hf_hub_download function returns the full path to the downloaded file.
|
||||
# The way files are saved when local_dir is used can be tricky.
|
||||
# If filename_in_repo is "folder/file.txt", it will be saved as "local_dir/folder/file.txt".
|
||||
# If you want all files directly in local_base_dir without the repo's folder structure,
|
||||
# you would need to adjust the local_dir or rename/move the file post-download.
|
||||
# However, for GGUF files from a specific folder, saving them under that folder structure locally is usually fine.
|
||||
|
||||
print(f"Successfully downloaded and saved to: {downloaded_file_path}")
|
||||
# If you want to confirm the exact path as per your original print statement's intent:
|
||||
# expected_local_path = os.path.join(local_base_dir, filename_in_repo)
|
||||
# print(f"Saved to: {expected_local_path}")
|
||||
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error downloading {filename_in_repo}: {str(e)}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error listing files from repository: {str(e)}")
|
||||
|
||||
print("Download process complete.")
|
||||
Reference in New Issue
Block a user