Valtry commited on
Commit
f26805c
·
verified ·
1 Parent(s): 20bcc59

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -14
app.py CHANGED
@@ -57,15 +57,12 @@ async def chat(req: ChatRequest):
57
  global stop_generation
58
  stop_generation = False
59
 
60
- # 🔥 FORCE SHORT ANSWERS
61
- prompt = f"""
62
- You are a concise assistant.
63
- Answer VERY SHORT (1-2 lines max).
64
- No long explanations.
65
 
66
  User: {req.message}
67
- Assistant:
68
- """
69
 
70
  inputs = tokenizer(prompt, return_tensors="pt")
71
 
@@ -75,30 +72,48 @@ Assistant:
75
  skip_special_tokens=True
76
  )
77
 
 
 
 
 
 
 
 
 
78
  def generate():
79
  model.generate(
80
  **inputs,
81
  streamer=streamer,
82
- max_new_tokens=40, # 🔥 short output
83
- temperature=0.6,
84
  do_sample=True,
85
- eos_token_id=tokenizer.eos_token_id
 
86
  )
87
 
88
- thread = Thread(target=generate)
89
- thread.start()
90
 
91
  async def stream():
92
  global stop_generation
93
 
 
 
94
  for token in streamer:
95
  if stop_generation:
96
  break
97
 
98
- yield token # 🔥 real-time streaming
 
 
99
 
100
- return StreamingResponse(stream(), media_type="text/plain")
 
 
 
 
 
101
 
 
102
 
103
  # -----------------------
104
  # START SERVER
 
57
  global stop_generation
58
  stop_generation = False
59
 
60
+ prompt = f"""You are a helpful assistant.
61
+ Reply in ONE short sentence only.
62
+ Finish your answer and stop.
 
 
63
 
64
  User: {req.message}
65
+ Assistant:"""
 
66
 
67
  inputs = tokenizer(prompt, return_tensors="pt")
68
 
 
72
  skip_special_tokens=True
73
  )
74
 
75
+ # ✅ Define stop tokens
76
+ stop_tokens = ["User:", "\n\n"]
77
+
78
+ stop_token_ids = [
79
+ tokenizer.encode(token, add_special_tokens=False)
80
+ for token in stop_tokens
81
+ ]
82
+
83
  def generate():
84
  model.generate(
85
  **inputs,
86
  streamer=streamer,
87
+ max_new_tokens=100,
88
+ temperature=0.5,
89
  do_sample=True,
90
+ eos_token_id=tokenizer.eos_token_id,
91
+ pad_token_id=tokenizer.eos_token_id
92
  )
93
 
94
+ Thread(target=generate).start()
 
95
 
96
  async def stream():
97
  global stop_generation
98
 
99
+ buffer_ids = []
100
+
101
  for token in streamer:
102
  if stop_generation:
103
  break
104
 
105
+ # convert token → ids
106
+ token_ids = tokenizer.encode(token, add_special_tokens=False)
107
+ buffer_ids.extend(token_ids)
108
 
109
+ # 🔥 STOP TOKEN CHECK (clean, not hacky)
110
+ for stop_seq in stop_token_ids:
111
+ if buffer_ids[-len(stop_seq):] == stop_seq:
112
+ return
113
+
114
+ yield token
115
 
116
+ return StreamingResponse(stream(), media_type="text/plain")
117
 
118
  # -----------------------
119
  # START SERVER