AIdeaText commited on
Commit
3fdaa70
·
verified ·
1 Parent(s): 7e9e1b6

Update modules/ui.py

Browse files
Files changed (1) hide show
  1. modules/ui.py +25 -36
modules/ui.py CHANGED
@@ -419,52 +419,41 @@ def display_chatbot_interface(lang_code):
419
  st.session_state.chatbot = initialize_chatbot()
420
  if 'messages' not in st.session_state:
421
  st.session_state.messages = [{"role": "assistant", "content": t['initial_message']}]
422
- if 'message_id' not in st.session_state:
423
- st.session_state.message_id = 0
424
 
 
425
  chat_container = st.container()
426
 
427
- # Mostrar mensajes existentes
428
  with chat_container:
429
- for idx, message in enumerate(st.session_state.messages):
430
- if message["role"] == "user":
431
- st.text_area("You:", value=message["content"], height=50, key=f"user_msg_{idx}", disabled=True)
432
- else:
433
- st.text_area("Assistant:", value=message["content"], height=50, key=f"assistant_msg_{idx}", disabled=True)
434
 
435
- # Área de entrada del usuario
436
- user_input = st.text_input(t['input_placeholder'], key="user_input")
437
 
438
  # Procesamiento del input del usuario
439
  if user_input:
 
440
  st.session_state.messages.append({"role": "user", "content": user_input})
441
-
442
- # Generar respuesta del chatbot
443
- try:
444
- response = get_chatbot_response(st.session_state.chatbot, user_input, lang_code)
445
- except Exception as e:
446
- st.error(f"Error al generar la respuesta del chatbot: {str(e)}")
447
- response = "Lo siento, hubo un error al procesar tu solicitud."
448
-
 
 
 
 
 
 
449
  st.session_state.messages.append({"role": "assistant", "content": response})
450
 
451
  # Guardar la conversación en la base de datos
452
  store_chat_history(st.session_state.username, st.session_state.messages)
453
-
454
- # Limpiar el input del usuario
455
- st.session_state.user_input = ""
456
-
457
- # Forzar una actualización de la interfaz
458
- st.experimental_rerun()
459
-
460
- # Mostrar el último mensaje del asistente con efecto de escritura
461
- if st.session_state.messages and st.session_state.messages[-1]["role"] == "assistant":
462
- last_message = st.session_state.messages[-1]["content"]
463
- with chat_container:
464
- assistant_message = st.empty()
465
- full_response = ""
466
- for i, char in enumerate(last_message):
467
- full_response += char
468
- assistant_message.text_area("Assistant:", value=full_response + "▌", height=50, key=f"assistant_msg_typing_{i}", disabled=True)
469
- time.sleep(0.01)
470
- assistant_message.text_area("Assistant:", value=full_response, height=50, key=f"assistant_msg_final_{len(st.session_state.messages)-1}", disabled=True)
 
419
  st.session_state.chatbot = initialize_chatbot()
420
  if 'messages' not in st.session_state:
421
  st.session_state.messages = [{"role": "assistant", "content": t['initial_message']}]
 
 
422
 
423
+ # Contenedor para el chat
424
  chat_container = st.container()
425
 
426
+ # Mostrar todos los mensajes en el contenedor de chat
427
  with chat_container:
428
+ for message in st.session_state.messages:
429
+ with st.chat_message(message["role"]):
430
+ st.write(message["content"])
 
 
431
 
432
+ # Área de entrada del usuario (en la parte inferior)
433
+ user_input = st.chat_input(t['input_placeholder'])
434
 
435
  # Procesamiento del input del usuario
436
  if user_input:
437
+ # Agregar mensaje del usuario
438
  st.session_state.messages.append({"role": "user", "content": user_input})
439
+ with st.chat_message("user"):
440
+ st.write(user_input)
441
+
442
+ # Generar y mostrar respuesta del chatbot
443
+ with st.chat_message("assistant"):
444
+ with st.spinner("Pensando..."):
445
+ try:
446
+ response = get_chatbot_response(st.session_state.chatbot, user_input, lang_code)
447
+ except Exception as e:
448
+ st.error(f"Error al generar la respuesta del chatbot: {str(e)}")
449
+ response = "Lo siento, hubo un error al procesar tu solicitud."
450
+ st.write(response)
451
+
452
+ # Agregar respuesta del asistente a los mensajes
453
  st.session_state.messages.append({"role": "assistant", "content": response})
454
 
455
  # Guardar la conversación en la base de datos
456
  store_chat_history(st.session_state.username, st.session_state.messages)
457
+
458
+ # Scroll al final del chat
459
+ st.markdown('<script>window.scrollTo(0,document.body.scrollHeight);</script>', unsafe_allow_html=True)