File size: 2,906 Bytes
8fd8533
 
723168d
8fd8533
 
 
 
 
 
ac96fc2
723168d
 
 
8fd8533
 
 
 
 
 
 
 
 
 
 
 
ac96fc2
2954be4
 
 
723168d
 
 
8fd8533
ac96fc2
8fd8533
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b54bde1
 
8fd8533
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import os
from pathlib import Path
import torch

HF_CACHE_DIR = "/tmp/hf_cache"
WHISPER_CACHE_DIR = "/tmp/whisper_cache"
TORCH_CACHE_DIR = "/tmp/torch_cache"
MATPLOTLIB_CONFIG = "/tmp/matplotlib"
UPLOAD_FOLDER = "/tmp/uploads"
PYTHAI_NLP = "/tmp/pythainlp_data"
OMP_NUM_THREADS="1"
OPENBLAS_NUM_THREADS="1"
MKL_NUM_THREADS="1"
# Set env vars ก่อน import ใด ๆ ทั้งหมด
os.environ["HUGGINGFACE_HUB_CACHE"] = HF_CACHE_DIR
os.environ["HF_HOME"] = HF_CACHE_DIR
os.environ["HF_CACHE"] = HF_CACHE_DIR
os.environ["TRANSFORMERS_CACHE"] = HF_CACHE_DIR
os.environ["TORCH_HOME"] = TORCH_CACHE_DIR
os.environ["MPLCONFIGDIR"] = MATPLOTLIB_CONFIG
os.environ["TMPDIR"] = "/tmp"
os.environ["TEMP"] = "/tmp"
os.environ["TMP"] = "/tmp"
os.environ["XDG_CACHE_HOME"] = "/tmp"
os.environ["HOME"] = "/tmp/home"  # Force HOME to writable location
os.environ["PYTHAINLP_DATA_DIR"] = PYTHAI_NLP
os.environ["OMP_NUM_THREADS"] = "1"
os.environ["OPENBLAS_NUM_THREADS"] = "1"
os.environ["MKL_NUM_THREADS"] = "1"

torch.set_num_threads(1)
torch.set_num_interop_threads(1)
# สร้าง directories ทั้งหมด
for path in [HF_CACHE_DIR, WHISPER_CACHE_DIR, TORCH_CACHE_DIR, MATPLOTLIB_CONFIG, "/tmp/home", UPLOAD_FOLDER,PYTHAI_NLP]:
    os.makedirs(path, exist_ok=True)

# พยายามสร้าง /.cache ถ้าทำได้ (fallback)
try:
    os.makedirs("/.cache", exist_ok=True)
    os.chmod("/.cache", 0o777)
    print("✅ Created /.cache directory")
except PermissionError:
    print("⚠️ Cannot create /.cache, using symbolic link fallback")
    try:
        if not os.path.exists("/.cache"):
            os.symlink(HF_CACHE_DIR, "/.cache")
            print("✅ Created symbolic link /.cache -> /tmp/hf_cache")
    except:
        print("⚠️ Cannot create symbolic link, proceeding with env vars only")

token = os.environ.get('HF_TOKEN')
together_api_key = os.environ.get('TOGETHER_API_KEY')
ngrok_auth_token = os.environ.get('NGROK_AUTH_TOKEN')
SUPABASE_URL = os.environ.get('SUPABASE_URL')
SUPABASE_KEY = os.environ.get('SUPABASE_KEY')

# Monkey patch huggingface_hub ก่อน import อื่น ๆ
def patch_huggingface_cache():
    try:
        import huggingface_hub.constants
        huggingface_hub.constants.HUGGINGFACE_HUB_CACHE = HF_CACHE_DIR
        huggingface_hub.constants.HF_HOME = HF_CACHE_DIR
        print(f"✅ Patched HuggingFace cache to: {HF_CACHE_DIR}")
    except ImportError:
        pass

# Patch os.path.expanduser to redirect ~/.cache
original_expanduser = os.path.expanduser

def patched_expanduser(path):
    if hasattr(path, '__fspath__'):
        path_str = str(path)
    else:
        path_str = path
    if path_str.startswith('~/.cache'):
        return HF_CACHE_DIR
    elif path_str == '~':
        return '/tmp/home'
    return original_expanduser(path)

os.path.expanduser = patched_expanduser
patch_huggingface_cache()