Spaces:
Runtime error
Runtime error
Download modal_deploy/diagnose_volume.py from build-small-hackathon/PregoPal: direct link, hf CLI and curl.
- Browser
- Download file 2.1 kB
-
https://huggingface.co/spaces/build-small-hackathon/PregoPal/resolve/main/modal_deploy/diagnose_volume.py
- Command line
-
hf download hf://spaces/build-small-hackathon/PregoPal/modal_deploy/diagnose_volume.py
-
curl -L -o diagnose_volume.py https://huggingface.co/spaces/build-small-hackathon/PregoPal/resolve/main/modal_deploy/diagnose_volume.py
2.1 kB
| """ | |
| Diagnose: check model files in Modal Volume. | |
| Run: modal run modal_deploy.diagnose_volume | |
| """ | |
| import os | |
| import sys | |
| MODEL_DIR = "/models" | |
| MODEL_SUBDIR = f"{MODEL_DIR}/MiniCPM-o-4_5-gguf" | |
| MAIN_GGUF = "MiniCPM-o-4_5-Q4_K_M.gguf" | |
| def main(): | |
| print(f"{'='*60}") | |
| print(f"MODEL_DIR: {MODEL_DIR}") | |
| print(f"MODEL_SUBDIR: {MODEL_SUBDIR}") | |
| print(f"{'='*60}") | |
| # List all files | |
| print(f"\n๐ Contents of {MODEL_SUBDIR}:") | |
| for root, dirs, files in os.walk(MODEL_SUBDIR): | |
| level = root.replace(MODEL_SUBDIR, '').count(os.sep) | |
| indent = ' ' * 2 * level | |
| print(f"{indent}{os.path.basename(root)}/") | |
| subindent = ' ' * 2 * (level + 1) | |
| for file in files: | |
| fpath = os.path.join(root, file) | |
| size = os.path.getsize(fpath) | |
| print(f"{subindent}{file} ({size:,} bytes = {size/1024**3:.2f} GB)") | |
| # Check main model | |
| main_path = os.path.join(MODEL_SUBDIR, MAIN_GGUF) | |
| if os.path.isfile(main_path): | |
| size = os.path.getsize(main_path) | |
| mb = size / (1024 * 1024) | |
| print(f"\nโ {MAIN_GGUF}: {size:,} bytes ({mb:.0f} MB)") | |
| if mb < 100: | |
| print(f"โ ๏ธ WARNING: File seems too small for a GGUF model!") | |
| else: | |
| print(f"\nโ {MAIN_GGUF} NOT FOUND at {main_path}") | |
| # Check vision mmproj | |
| vision_path = os.path.join(MODEL_SUBDIR, "vision", "MiniCPM-o-4_5-vision-F16.gguf") | |
| if os.path.isfile(vision_path): | |
| size = os.path.getsize(vision_path) | |
| mb = size / (1024 * 1024) | |
| print(f"\nโ Vision mmproj: {size:,} bytes ({mb:.0f} MB)") | |
| else: | |
| print(f"\nโ Vision mmproj NOT FOUND at {vision_path}") | |
| # Check first 8 bytes of main model (GGUF magic) | |
| if os.path.isfile(main_path): | |
| with open(main_path, "rb") as f: | |
| magic = f.read(8) | |
| print(f"\n๐ First 8 bytes (magic): {magic.hex()}") | |
| if magic[:4] == b"GGUF": | |
| print(f"โ Valid GGUF header detected") | |
| else: | |
| print(f"โ Not a valid GGUF file!") | |
| if __name__ == "__main__": | |
| main() |