arubaDev commited on
Commit
ae094c2
·
verified ·
1 Parent(s): c078c66

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -2
app.py CHANGED
@@ -222,16 +222,28 @@ def send_cb(user_text, selected_label, chatbot_msgs, system_message, max_tokens,
222
  top_p=float(top_p),
223
  stream=True,
224
  ):
225
- delta = chunk.choices[0].delta.content or ""
 
 
 
 
 
 
 
 
 
 
226
  if delta:
227
  partial += delta
228
  display_msgs[-1]["content"] = partial
229
  yield (display_msgs, "", selected_label)
 
230
  add_message(sid, "assistant", partial)
231
  except Exception as e:
232
  display_msgs[-1]["content"] = f"⚠️ Error: {str(e)}"
233
  yield (display_msgs, "", selected_label)
234
 
 
235
  def regenerate_cb(selected_label, system_message, max_tokens, temperature, top_p, model_choice, dataset_choice):
236
  sid = label_to_id(selected_label)
237
  if sid is None:
@@ -241,6 +253,7 @@ def regenerate_cb(selected_label, system_message, max_tokens, temperature, top_p
241
  if not msgs:
242
  return [], ""
243
 
 
244
  if msgs and msgs[-1]["role"] == "assistant":
245
  conn = db()
246
  cur = conn.cursor()
@@ -268,16 +281,28 @@ def regenerate_cb(selected_label, system_message, max_tokens, temperature, top_p
268
  top_p=float(top_p),
269
  stream=True,
270
  ):
271
- delta = chunk.choices[0].delta.content or ""
 
 
 
 
 
 
 
 
 
 
272
  if delta:
273
  partial += delta
274
  display_msgs[-1]["content"] = partial
275
  yield display_msgs
 
276
  add_message(sid, "assistant", partial)
277
  except Exception as e:
278
  display_msgs[-1]["content"] = f"⚠️ Error: {str(e)}"
279
  yield display_msgs
280
 
 
281
  # ---------------------------
282
  # App UI
283
  # ---------------------------
 
222
  top_p=float(top_p),
223
  stream=True,
224
  ):
225
+ # --- FIX: handle models that send empty chunks or use message instead of delta ---
226
+ if not hasattr(chunk, "choices") or not chunk.choices:
227
+ continue
228
+
229
+ choice = chunk.choices[0]
230
+ delta = ""
231
+ if hasattr(choice, "delta") and choice.delta and getattr(choice.delta, "content", None) is not None:
232
+ delta = choice.delta.content
233
+ elif hasattr(choice, "message") and getattr(choice.message, "content", None) is not None:
234
+ delta = choice.message.content
235
+
236
  if delta:
237
  partial += delta
238
  display_msgs[-1]["content"] = partial
239
  yield (display_msgs, "", selected_label)
240
+
241
  add_message(sid, "assistant", partial)
242
  except Exception as e:
243
  display_msgs[-1]["content"] = f"⚠️ Error: {str(e)}"
244
  yield (display_msgs, "", selected_label)
245
 
246
+
247
  def regenerate_cb(selected_label, system_message, max_tokens, temperature, top_p, model_choice, dataset_choice):
248
  sid = label_to_id(selected_label)
249
  if sid is None:
 
253
  if not msgs:
254
  return [], ""
255
 
256
+ # Remove the last assistant message if it exists (to regenerate it)
257
  if msgs and msgs[-1]["role"] == "assistant":
258
  conn = db()
259
  cur = conn.cursor()
 
281
  top_p=float(top_p),
282
  stream=True,
283
  ):
284
+ # --- FIX: handle models that send empty chunks or use message instead of delta ---
285
+ if not hasattr(chunk, "choices") or not chunk.choices:
286
+ continue
287
+
288
+ choice = chunk.choices[0]
289
+ delta = ""
290
+ if hasattr(choice, "delta") and choice.delta and getattr(choice.delta, "content", None) is not None:
291
+ delta = choice.delta.content
292
+ elif hasattr(choice, "message") and getattr(choice.message, "content", None) is not None:
293
+ delta = choice.message.content
294
+
295
  if delta:
296
  partial += delta
297
  display_msgs[-1]["content"] = partial
298
  yield display_msgs
299
+
300
  add_message(sid, "assistant", partial)
301
  except Exception as e:
302
  display_msgs[-1]["content"] = f"⚠️ Error: {str(e)}"
303
  yield display_msgs
304
 
305
+
306
  # ---------------------------
307
  # App UI
308
  # ---------------------------