helloperson123 commited on
Commit
4ec33db
·
verified ·
1 Parent(s): e25258f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -16
app.py CHANGED
@@ -8,7 +8,7 @@ import uvicorn
8
  # -------------------------------
9
  # SETTINGS
10
  # -------------------------------
11
- MODEL_NAME = "TheDrummer/Gemmasutra-Mini-2B-v1" # get out lol
12
  DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
13
  MAX_TOKENS = 512 # max tokens for a response
14
 
@@ -56,6 +56,9 @@ async def ask_ai(request: Request):
56
  data = await request.json()
57
  user_prompt = data.get("prompt", "")
58
 
 
 
 
59
  # Combine system prompt + user input
60
  full_prompt = SYSTEM_PROMPT + "\nUser: " + user_prompt + "\nAI:"
61
 
@@ -64,28 +67,33 @@ async def ask_ai(request: Request):
64
 
65
  # Generate response
66
  outputs = model.generate(
67
- input_ids,
68
- max_new_tokens=300,
69
- do_sample=False,
70
- temperature=0.0,
71
- top_p=1.0,
72
- repetition_penalty=1.1,
73
- eos_token_id=tokenizer.eos_token_id
74
- )
75
-
76
 
77
  # Decode output
78
- reply = tokenizer.decode(outputs[0], skip_special_tokens=True)
79
- reply = reply.split("User:")[0].split("AI:")[0].strip()
 
 
 
 
 
 
 
 
 
80
 
81
- # Remove the system prompt from reply
82
- reply = reply.replace(full_prompt, "").strip()
83
  return {"reply": reply}
84
 
85
 
86
-
87
  # -------------------------------
88
  # RUN SERVER
89
  # -------------------------------
90
  if __name__ == "__main__":
91
- uvicorn.run(app, host="0.0.0.0", port=7860)
 
8
  # -------------------------------
9
  # SETTINGS
10
  # -------------------------------
11
+ MODEL_NAME = "TheDrummer/Gemmasutra-Mini-2B-v1"
12
  DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
13
  MAX_TOKENS = 512 # max tokens for a response
14
 
 
56
  data = await request.json()
57
  user_prompt = data.get("prompt", "")
58
 
59
+ if not user_prompt.strip():
60
+ return {"reply": "No prompt provided."}
61
+
62
  # Combine system prompt + user input
63
  full_prompt = SYSTEM_PROMPT + "\nUser: " + user_prompt + "\nAI:"
64
 
 
67
 
68
  # Generate response
69
  outputs = model.generate(
70
+ **inputs, # ← fixed: was using undefined 'input_ids'
71
+ max_new_tokens=300,
72
+ do_sample=False,
73
+ temperature=0.0,
74
+ top_p=1.0,
75
+ repetition_penalty=1.1,
76
+ eos_token_id=tokenizer.eos_token_id
77
+ )
 
78
 
79
  # Decode output
80
+ generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
81
+
82
+ # Extract only the new part after the prompt (most reliable method)
83
+ if generated_text.startswith(full_prompt):
84
+ reply = generated_text[len(full_prompt):].strip()
85
+ else:
86
+ # fallback - try to cut after last "AI:"
87
+ if "AI:" in generated_text:
88
+ reply = generated_text.split("AI:")[-1].strip()
89
+ else:
90
+ reply = generated_text.strip()
91
 
 
 
92
  return {"reply": reply}
93
 
94
 
 
95
  # -------------------------------
96
  # RUN SERVER
97
  # -------------------------------
98
  if __name__ == "__main__":
99
+ uvicorn.run(app, host="0.0.0.0", port=7860)