VietCat commited on
Commit
9f79fe4
·
1 Parent(s): 2c6b9b1

fix build error

Browse files
Files changed (3) hide show
  1. Dockerfile +11 -4
  2. app.py +22 -8
  3. requirements.txt +13 -1
Dockerfile CHANGED
@@ -2,6 +2,11 @@ FROM python:3.10-slim
2
 
3
  WORKDIR /app
4
 
 
 
 
 
 
5
  # Install dependencies
6
  COPY requirements.txt .
7
  RUN pip install --no-cache-dir -r requirements.txt
@@ -9,12 +14,14 @@ RUN pip install --no-cache-dir -r requirements.txt
9
  # Copy source code
10
  COPY app.py .
11
 
12
- # Set up Hugging Face cache
13
- RUN mkdir -p /app/cache
14
 
 
15
  ENV HF_HOME=/app/cache \
16
- PYTHONUNBUFFERED=1
 
17
 
18
  EXPOSE 7860
19
 
20
- CMD ["python", "app.py"]
 
2
 
3
  WORKDIR /app
4
 
5
+ # Install system dependencies
6
+ RUN apt-get update && apt-get install -y --no-install-recommends \
7
+ gcc \
8
+ && rm -rf /var/lib/apt/lists/*
9
+
10
  # Install dependencies
11
  COPY requirements.txt .
12
  RUN pip install --no-cache-dir -r requirements.txt
 
14
  # Copy source code
15
  COPY app.py .
16
 
17
+ # Create cache directory and set permissions
18
+ RUN mkdir -p /app/cache && chmod -R 777 /app/cache
19
 
20
+ # Set env vars
21
  ENV HF_HOME=/app/cache \
22
+ PYTHONUNBUFFERED=1 \
23
+ PYTHONWARNINGS=ignore::FutureWarning
24
 
25
  EXPOSE 7860
26
 
27
+ CMD ["python", "app.py"]
app.py CHANGED
@@ -1,23 +1,37 @@
1
  import os
2
- os.environ["HF_HOME"] = "/tmp/hf_home"
3
-
4
  from transformers import GPT2LMHeadModel, GPT2Tokenizer
5
  import torch
6
  import gradio as gr
7
 
 
8
  model_id = "NlpHUST/gpt2-vietnamese"
9
- tokenizer = GPT2Tokenizer.from_pretrained(model_id)
10
- model = GPT2LMHeadModel.from_pretrained(model_id)
 
 
 
 
11
 
 
12
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
13
  model.to(device)
14
  model.eval()
15
 
16
  def generate_text(prompt, max_length=100, temperature=1.0):
17
- inputs = tokenizer.encode(prompt, return_tensors="pt").to(device)
18
- outputs = model.generate(inputs, max_length=max_length, temperature=temperature, do_sample=True)
19
- return tokenizer.decode(outputs[0], skip_special_tokens=True)
 
 
 
 
 
 
 
 
 
20
 
 
21
  demo = gr.Interface(
22
  fn=generate_text,
23
  inputs=[
@@ -32,4 +46,4 @@ demo = gr.Interface(
32
  )
33
 
34
  if __name__ == "__main__":
35
- demo.launch(server_name="0.0.0.0", server_port=7860)
 
1
  import os
 
 
2
  from transformers import GPT2LMHeadModel, GPT2Tokenizer
3
  import torch
4
  import gradio as gr
5
 
6
+ # Load model and tokenizer
7
  model_id = "NlpHUST/gpt2-vietnamese"
8
+ try:
9
+ tokenizer = GPT2Tokenizer.from_pretrained(model_id)
10
+ model = GPT2LMHeadModel.from_pretrained(model_id)
11
+ except Exception as e:
12
+ print(f"Error loading model: {e}")
13
+ raise e
14
 
15
+ # Set device
16
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
17
  model.to(device)
18
  model.eval()
19
 
20
  def generate_text(prompt, max_length=100, temperature=1.0):
21
+ try:
22
+ inputs = tokenizer.encode(prompt, return_tensors="pt").to(device)
23
+ outputs = model.generate(
24
+ inputs,
25
+ max_length=max_length,
26
+ temperature=temperature,
27
+ do_sample=True,
28
+ num_beams=1
29
+ )
30
+ return tokenizer.decode(outputs[0], skip_special_tokens=True)
31
+ except Exception as e:
32
+ return f"Error generating text: {e}"
33
 
34
+ # Gradio interface
35
  demo = gr.Interface(
36
  fn=generate_text,
37
  inputs=[
 
46
  )
47
 
48
  if __name__ == "__main__":
49
+ demo.launch(server_name="0.0.0.0", server_port=7860)
requirements.txt CHANGED
@@ -1,4 +1,16 @@
 
 
 
 
 
1
  transformers==4.40.0
2
- torch==2.1.2
 
 
3
  gradio==4.44.1
 
 
4
 
 
 
 
 
1
+ # CPU-friendly PyTorch
2
+ torch==2.1.2+cpu
3
+ -f https://download.pytorch.org/whl/torch_stable.html
4
+
5
+ # Transformers / Sentence Transformers
6
  transformers==4.40.0
7
+ sentence-transformers==2.7.0
8
+
9
+ # Gradio app
10
  gradio==4.44.1
11
+ fastapi
12
+ uvicorn
13
 
14
+ # Tools
15
+ pandas
16
+ numpy