bluenevus commited on
Commit
9f16189
·
1 Parent(s): c156e9e

Update app.py via AI Editor

Browse files
Files changed (1) hide show
  1. app.py +31 -3
app.py CHANGED
@@ -184,7 +184,7 @@ def chat_message_card(msg, is_user):
184
  dbc.CardBody([
185
  html.Div([
186
  html.Span(avatar, style={"fontSize": "2rem"}),
187
- html.Span(msg, style={"whiteSpace": "pre-wrap", "marginLeft": "0.75rem"})
188
  ], style={"display": "flex", "alignItems": "center", "justifyContent": align})
189
  ]),
190
  className=f"mb-2 ms-3 me-3",
@@ -231,11 +231,13 @@ def left_navbar_static():
231
  ], style={"padding": "1rem", "backgroundColor": "#f8f9fa", "height": "100vh", "overflowY": "auto"})
232
 
233
  def chat_box_card():
 
234
  return dbc.Card(
235
  dbc.CardBody([
236
  html.Div(id="chat-window", style={
237
  "height": "60vh",
238
  "overflowY": "auto",
 
239
  "display": "flex",
240
  "flexDirection": "column",
241
  "justifyContent": "flex-end",
@@ -244,7 +246,8 @@ def chat_box_card():
244
  "borderRadius": "0.5rem"
245
  })
246
  ]),
247
- className="mt-3"
 
248
  )
249
 
250
  def user_input_card():
@@ -291,7 +294,6 @@ app.layout = html.Div([
291
  ], style={"display": "flex"}),
292
  dcc.Store(id="clear-input", data=False),
293
  dcc.Store(id="scroll-bottom", data=0),
294
- # clientside callback for textarea enter/shift-enter
295
  dcc.Store(id="enter-pressed", data=False)
296
  ])
297
 
@@ -426,8 +428,10 @@ def main_callback(session_id, send_clicks, file_contents, new_chat_clicks, strea
426
  )
427
 
428
  file_was_uploaded_and_sent = False
 
429
  if trigger == "file-upload" and file_contents and file_names:
430
  uploads = []
 
431
  if not isinstance(file_contents, list):
432
  file_contents = [file_contents]
433
  file_names = [file_names]
@@ -446,7 +450,31 @@ def main_callback(session_id, send_clicks, file_contents, new_chat_clicks, strea
446
  if text.strip():
447
  embed_user_doc(session_id, fname, text)
448
  logger.info(f"Session {session_id}: Uploaded doc '{n}' embedded for user vector store")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
449
  state["uploads"].extend(uploads)
 
 
 
450
  save_session_state(session_id)
451
  logger.info(f"Session {session_id}: Uploaded files {[u['name'] for u in uploads]}")
452
 
 
184
  dbc.CardBody([
185
  html.Div([
186
  html.Span(avatar, style={"fontSize": "2rem"}),
187
+ html.Span(msg, style={"whiteSpace": "pre-wrap", "marginLeft": "0.75rem", "overflowWrap": "break-word", "wordBreak": "break-word"})
188
  ], style={"display": "flex", "alignItems": "center", "justifyContent": align})
189
  ]),
190
  className=f"mb-2 ms-3 me-3",
 
231
  ], style={"padding": "1rem", "backgroundColor": "#f8f9fa", "height": "100vh", "overflowY": "auto"})
232
 
233
  def chat_box_card():
234
+ # Explicit scrollbars and height
235
  return dbc.Card(
236
  dbc.CardBody([
237
  html.Div(id="chat-window", style={
238
  "height": "60vh",
239
  "overflowY": "auto",
240
+ "overflowX": "auto",
241
  "display": "flex",
242
  "flexDirection": "column",
243
  "justifyContent": "flex-end",
 
246
  "borderRadius": "0.5rem"
247
  })
248
  ]),
249
+ className="mt-3",
250
+ style={"height": "62vh", "overflowY": "auto", "overflowX": "auto"}
251
  )
252
 
253
  def user_input_card():
 
294
  ], style={"display": "flex"}),
295
  dcc.Store(id="clear-input", data=False),
296
  dcc.Store(id="scroll-bottom", data=0),
 
297
  dcc.Store(id="enter-pressed", data=False)
298
  ])
299
 
 
428
  )
429
 
430
  file_was_uploaded_and_sent = False
431
+ file_upload_message = None
432
  if trigger == "file-upload" and file_contents and file_names:
433
  uploads = []
434
+ file_upload_messages = []
435
  if not isinstance(file_contents, list):
436
  file_contents = [file_contents]
437
  file_names = [file_names]
 
450
  if text.strip():
451
  embed_user_doc(session_id, fname, text)
452
  logger.info(f"Session {session_id}: Uploaded doc '{n}' embedded for user vector store")
453
+ # Add extracted text to chat
454
+ preview = text[:1000]
455
+ file_upload_messages.append({
456
+ "role": "user",
457
+ "content": f"[Document uploaded: {n}]\n{preview if preview.strip() else '[No text extracted]'}"
458
+ })
459
+ else:
460
+ file_upload_messages.append({
461
+ "role": "user",
462
+ "content": f"[Document uploaded: {n}]\n[No text extracted]"
463
+ })
464
+ elif is_img:
465
+ file_upload_messages.append({
466
+ "role": "user",
467
+ "content": f"[Image uploaded: {n}]"
468
+ })
469
+ else:
470
+ file_upload_messages.append({
471
+ "role": "user",
472
+ "content": f"[File uploaded: {n}]"
473
+ })
474
  state["uploads"].extend(uploads)
475
+ # Only show the latest file upload message(s)
476
+ for msg in file_upload_messages:
477
+ state["messages"].append(msg)
478
  save_session_state(session_id)
479
  logger.info(f"Session {session_id}: Uploaded files {[u['name'] for u in uploads]}")
480