dpatel9923 commited on
Commit
08c1197
·
verified ·
1 Parent(s): 257d0d7

Upload 3 files

Browse files
Files changed (3) hide show
  1. Dockerfile +10 -0
  2. api.py +28 -0
  3. requirements.txt +4 -0
Dockerfile ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ from python:3.8-slim
2
+
3
+ WORKDIR /app
4
+
5
+ COPY requirements.txt .
6
+ RUN pip install --no-cache-dir -r requirements.txt
7
+
8
+ COPY . .
9
+
10
+ CMD ["uvicorn","api:app","--host","0.0.0.0","--port","8000"]
api.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI, Request
2
+ from pydantic import BaseModel
3
+ from transformers import GPT2LMHeadModel, GPT2Tokenizer
4
+ import torch
5
+
6
+ app = FastAPI()
7
+
8
+ model_path = './fine-tuned-gpt2'
9
+ model = GPT2LMHeadModel.from_pretrained(model_path)
10
+ tokenizer = GPT2Tokenizer.from_pretrained(model_path)
11
+
12
+ if tokenizer.pad_token is None:
13
+ tokenizer.add_special_tokens({'pad_token':'[PAD]'})
14
+ model.resize_token_embeddings(len(tokenizer))
15
+
16
+ class TextRequest(BaseModel):
17
+ prompt: str
18
+
19
+ def generate_response(prompt, max_length=100):
20
+ input_ids = tokenizer.encode(prompt, return_tensors='pt')
21
+ output = model.generate(input_ids, max_length=max_length,pad_token_id = tokenizer.eos_token_id)
22
+ response = tokenizer.decode(output[0], skip_special_tokens=True)
23
+ return response
24
+
25
+ @app.post("/generate")
26
+ async def generate(request: TextRequest):
27
+ response = generate_response(request.prompt)
28
+ return {"response":response}
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ fastapi
2
+ transformers
3
+ torch
4
+ uvicorn