Mustjab Hassan Malik commited on
Commit
2ff550c
·
verified ·
1 Parent(s): f3e0ce3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -8
app.py CHANGED
@@ -1,29 +1,29 @@
1
  from fastapi import FastAPI, Request
2
  from fastapi.middleware.cors import CORSMiddleware
3
  from transformers import AutoModelForCausalLM, AutoTokenizer
4
- import torch
5
  import uvicorn
6
 
7
  app = FastAPI()
8
 
9
  app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"])
10
 
11
- # TinyLlama load
12
  model_id = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
13
  tokenizer = AutoTokenizer.from_pretrained(model_id)
14
- model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float16, device_map="auto")
15
 
16
  @app.post("/api/chat")
17
  async def chat(request: Request):
18
  data = await request.json()
19
  user_input = data.get("prompt", "")
20
- system_rules = data.get("system_prompt", "You are Olivia.")
21
 
22
- # Speed Optimization: Tokens limit 150 (Fast Reply)
23
- full_prompt = f"<|system|>\n{system_rules}. System by MT.<|end|>\n<|user|>\n{user_input}<|end|>\n<|assistant|>"
24
 
25
- inputs = tokenizer(full_prompt, return_tensors="pt").to(model.device)
26
- output = model.generate(**inputs, max_new_tokens=150)
 
 
27
 
28
  response = tokenizer.decode(output[0], skip_special_tokens=True).split("<|assistant|>")[-1].strip()
29
  return {"response": response}
 
1
  from fastapi import FastAPI, Request
2
  from fastapi.middleware.cors import CORSMiddleware
3
  from transformers import AutoModelForCausalLM, AutoTokenizer
 
4
  import uvicorn
5
 
6
  app = FastAPI()
7
 
8
  app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"])
9
 
10
+ # Load Model
11
  model_id = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
12
  tokenizer = AutoTokenizer.from_pretrained(model_id)
13
+ model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="auto", device_map="auto")
14
 
15
  @app.post("/api/chat")
16
  async def chat(request: Request):
17
  data = await request.json()
18
  user_input = data.get("prompt", "")
19
+ system_rules = data.get("system_prompt", "You are a fast AI.")
20
 
21
+ prompt = f"<|system|>\n{system_rules}. System by Muhammad Taqi.<|end|>\n<|user|>\n{user_input}<|end|>\n<|assistant|>"
 
22
 
23
+ inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
24
+
25
+ # Speed Optimization: No sampling, fixed token limit
26
+ output = model.generate(**inputs, max_new_tokens=80, do_sample=False, use_cache=True)
27
 
28
  response = tokenizer.decode(output[0], skip_special_tokens=True).split("<|assistant|>")[-1].strip()
29
  return {"response": response}