File size: 2,068 Bytes
7880051
c8a274c
 
a5b1d48
 
cf901fd
a5b1d48
7880051
 
a5b1d48
c8a274c
a5b1d48
7880051
 
 
a5b1d48
 
 
 
 
 
1295432
 
 
 
 
7880051
 
 
 
 
1295432
c8a274c
7880051
a5b1d48
7880051
a5b1d48
1295432
 
 
 
 
a5b1d48
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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()