TemplateA / model /download_model.py
Dan Flower
troubleshooting model path issue
ad8017c
import os, sys, pathlib, shutil
from huggingface_hub import hf_hub_download
def main():
MODEL_REPO = os.getenv("MODEL_REPO", "TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF")
MODEL_FILE = os.getenv("MODEL_FILE", "tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf")
MODEL_DIR = pathlib.Path(os.getenv("MODEL_DIR", "/tmp/models"))
MODEL_PATH = MODEL_DIR / MODEL_FILE
MODEL_DIR.mkdir(parents=True, exist_ok=True)
try:
print(f"[download] repo={MODEL_REPO} file={MODEL_FILE} -> {MODEL_PATH}", file=sys.stderr, flush=True)
# Download (to cache, possibly symlinked)
downloaded = hf_hub_download(
repo_id=MODEL_REPO,
filename=MODEL_FILE,
local_dir=str(MODEL_DIR),
local_dir_use_symlinks=False,
token=os.getenv("HF_TOKEN") or None,
)
#temporary logging
print(f"[MARKER] Downloaded to: {downloaded}", file=sys.stderr, flush=True)
print(f"[MARKER] Model path expected: {MODEL_PATH}", file=sys.stderr, flush=True)
print(f"[MARKER] /tmp/models after copy: {os.listdir(MODEL_DIR)}", file=sys.stderr, flush=True)
print(f"[download] hf_hub_download saved: {downloaded}", file=sys.stderr, flush=True)
# Copy to expected flat path if different
if pathlib.Path(downloaded).resolve() != MODEL_PATH.resolve():
shutil.copy2(downloaded, MODEL_PATH)
print(f"[MARKER] [download] copied to: {MODEL_PATH}", file=sys.stderr, flush=True)
# Write debug marker
with open(MODEL_DIR / "MODEL_PATH.txt", "w") as f:
f.write(str(MODEL_PATH) + "\n")
print(f"[MARKER] Final /tmp/models contents: {os.listdir(MODEL_DIR)}", file=sys.stderr, flush=True)
#temporary symlink info
print(f"[MARKER] Symlink? {os.path.islink(downloaded)}", file=sys.stderr, flush=True)
except Exception as e:
print(f"!!! Exception in download_model.py: {e}", file=sys.stderr, flush=True)
import traceback
traceback.print_exc()
if __name__ == "__main__":
main()