AndaiMD commited on
Commit
b94b823
·
1 Parent(s): ae67e14
Files changed (2) hide show
  1. Dockerfile +15 -6
  2. app/model_loader.py +10 -10
Dockerfile CHANGED
@@ -1,11 +1,20 @@
1
-
2
- FROM python:3.10
3
 
4
  WORKDIR /code
5
 
6
- COPY requirements.txt .
7
- RUN pip install --no-cache-dir -r requirements.txt
 
 
 
 
 
 
 
 
 
 
8
 
9
- COPY . .
10
 
11
- CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]
 
1
+ FROM python:3.9
 
2
 
3
  WORKDIR /code
4
 
5
+ COPY ./requirements.txt /code/requirements.txt
6
+
7
+ RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
8
+
9
+ RUN useradd -m -u 1000 user
10
+
11
+ USER user
12
+
13
+ ENV HOME=/home/user \
14
+ PATH=/home/user/.local/bin:$PATH
15
+
16
+ WORKDIR $HOME/app
17
 
18
+ COPY --chown=user . $HOME/app
19
 
20
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
app/model_loader.py CHANGED
@@ -34,27 +34,27 @@
34
  # )
35
  # return model, tokenizer
36
 
37
- from transformers import AutoModelForCausalLM, AutoTokenizer
38
  import os
 
39
 
40
  def load_model():
41
- model_name = "gpt2"
42
- cache_dir = "/tmp/hf_cache"
 
43
 
44
- # Ensure cache dir exists and is writable
45
- os.makedirs(cache_dir, exist_ok=True)
46
- os.environ["TRANSFORMERS_CACHE"] = cache_dir
47
- os.environ["HF_HOME"] = cache_dir
48
 
49
  tokenizer = AutoTokenizer.from_pretrained(
50
  model_name,
51
- cache_dir=cache_dir,
52
- use_fast=True
53
  )
54
 
55
  model = AutoModelForCausalLM.from_pretrained(
56
  model_name,
57
- cache_dir=cache_dir
58
  )
59
 
60
  return model, tokenizer
 
34
  # )
35
  # return model, tokenizer
36
 
 
37
  import os
38
+ from transformers import AutoModelForCausalLM, AutoTokenizer
39
 
40
  def load_model():
41
+ # Use a user-writable cache directory (important for Docker non-root)
42
+ HF_CACHE = os.path.expanduser("~/.cache/huggingface")
43
+ os.makedirs(HF_CACHE, exist_ok=True)
44
 
45
+ os.environ["TRANSFORMERS_CACHE"] = HF_CACHE
46
+ os.environ["HF_HOME"] = HF_CACHE
47
+
48
+ model_name = "gpt2"
49
 
50
  tokenizer = AutoTokenizer.from_pretrained(
51
  model_name,
52
+ cache_dir=HF_CACHE
 
53
  )
54
 
55
  model = AutoModelForCausalLM.from_pretrained(
56
  model_name,
57
+ cache_dir=HF_CACHE
58
  )
59
 
60
  return model, tokenizer