praveends commited on
Commit
99bc3f3
·
verified ·
1 Parent(s): 95afdae

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -21
app.py CHANGED
@@ -1,11 +1,8 @@
1
- from fastapi import FastAPI
 
2
  import torch
3
  from transformers import AutoTokenizer, AutoModelForCausalLM
4
  from peft import PeftModel
5
- from pydantic import BaseModel
6
- import uvicorn
7
-
8
- app = FastAPI()
9
 
10
  BASE_MODEL = "deepseek-ai/deepseek-coder-1.3b-instruct"
11
  ADAPTER = "praveends/migration-copilot-deepseek-coder-1-3b-instruct"
@@ -19,24 +16,16 @@ model = AutoModelForCausalLM.from_pretrained(
19
  torch_dtype=torch.float32,
20
  trust_remote_code=True,
21
  low_cpu_mem_usage=True,
22
- device_map="cpu",
23
  )
24
- model = PeftModel.from_pretrained(model, ADAPTER, device_map="cpu")
25
  model = model.merge_and_unload()
26
  model.eval()
27
  print("Model loaded!")
28
 
29
- class GenerateRequest(BaseModel):
30
- prompt: str
31
-
32
- @app.get("/health")
33
- def health():
34
- return {"status": "healthy"}
35
-
36
- @app.post("/generate")
37
- def generate(request: GenerateRequest):
38
  inputs = tokenizer(
39
- request.prompt, return_tensors="pt",
40
  truncation=True, max_length=512
41
  )
42
  with torch.no_grad():
@@ -48,8 +37,14 @@ def generate(request: GenerateRequest):
48
  pad_token_id=tokenizer.eos_token_id,
49
  )
50
  response = tokenizer.decode(outputs[0], skip_special_tokens=True)
51
- generated = response[len(request.prompt):].strip()
52
- return {"generated": generated}
 
 
 
 
 
 
 
53
 
54
- if __name__ == "__main__":
55
- uvicorn.run(app, host="0.0.0.0", port=7860)
 
1
+ import spaces
2
+ import gradio as gr
3
  import torch
4
  from transformers import AutoTokenizer, AutoModelForCausalLM
5
  from peft import PeftModel
 
 
 
 
6
 
7
  BASE_MODEL = "deepseek-ai/deepseek-coder-1.3b-instruct"
8
  ADAPTER = "praveends/migration-copilot-deepseek-coder-1-3b-instruct"
 
16
  torch_dtype=torch.float32,
17
  trust_remote_code=True,
18
  low_cpu_mem_usage=True,
 
19
  )
20
+ model = PeftModel.from_pretrained(model, ADAPTER)
21
  model = model.merge_and_unload()
22
  model.eval()
23
  print("Model loaded!")
24
 
25
+ @spaces.GPU(duration=60)
26
+ def generate(prompt: str) -> str:
 
 
 
 
 
 
 
27
  inputs = tokenizer(
28
+ prompt, return_tensors="pt",
29
  truncation=True, max_length=512
30
  )
31
  with torch.no_grad():
 
37
  pad_token_id=tokenizer.eos_token_id,
38
  )
39
  response = tokenizer.decode(outputs[0], skip_special_tokens=True)
40
+ return response[len(prompt):].strip()
41
+
42
+ demo = gr.Interface(
43
+ fn=generate,
44
+ inputs=gr.Textbox(label="Prompt", lines=10),
45
+ outputs=gr.Textbox(label="Generated PySpark", lines=10),
46
+ title="Migration Copilot Inference",
47
+ api_name="generate",
48
+ )
49
 
50
+ demo.launch()