AIdeaText commited on
Commit
8a2688a
1 Parent(s): e68d122

Update modules/ui.py

Browse files
Files changed (1) hide show
  1. modules/ui.py +20 -22
modules/ui.py CHANGED
@@ -393,21 +393,6 @@ def display_discourse_analysis_interface(nlp_models, lang_code):
393
  st.pyplot(graph2)
394
 
395
  ##################################################################################################
396
- st.markdown("""
397
- <style>
398
- .stTextInput > div > div > input {
399
- background-color: #F0F2F6;
400
- }
401
- .stTextArea > div > div > textarea {
402
- background-color: #F0F2F6;
403
- border: none;
404
- }
405
- .stTextArea > div > div > textarea:disabled {
406
- color: #000000;
407
- }
408
- </style>
409
- """, unsafe_allow_html=True)
410
-
411
  def display_chatbot_interface(lang_code):
412
  translations = {
413
  'es': {
@@ -452,24 +437,34 @@ def display_chatbot_interface(lang_code):
452
  if 'messages' not in st.session_state:
453
  st.session_state.messages = [{"role": "assistant", "content": t['initial_message']}]
454
 
 
 
 
455
  chat_container = st.container()
456
 
 
 
 
 
 
 
 
 
 
457
  # Área de entrada del usuario
458
  user_input = st.text_input(t['input_placeholder'], key="user_input")
459
 
460
  # Procesamiento del input del usuario
461
  if user_input:
462
  st.session_state.messages.append({"role": "user", "content": user_input})
 
463
  with chat_container:
464
- for message in st.session_state.messages:
465
- if message["role"] == "user":
466
- st.text_area("You:", value=message["content"], height=50, key=f"user_msg_{len(st.session_state.messages)}", disabled=True)
467
- else:
468
- st.text_area("Assistant:", value=message["content"], height=50, key=f"assistant_msg_{len(st.session_state.messages)}", disabled=True)
469
 
470
  # Generar respuesta del chatbot
471
  response = get_chatbot_response(st.session_state.chatbot, user_input, lang_code)
472
  st.session_state.messages.append({"role": "assistant", "content": response})
 
473
 
474
  # Mostrar la respuesta del chatbot con efecto de escritura
475
  with chat_container:
@@ -477,9 +472,9 @@ def display_chatbot_interface(lang_code):
477
  full_response = ""
478
  for char in response:
479
  full_response += char
480
- assistant_message.text_area("Assistant:", value=full_response + "▌", height=50, key=f"assistant_msg_{len(st.session_state.messages)+1}", disabled=True)
481
  time.sleep(0.01)
482
- assistant_message.text_area("Assistant:", value=full_response, height=50, key=f"assistant_msg_{len(st.session_state.messages)+1}", disabled=True)
483
 
484
  # Guardar la conversación en la base de datos
485
  store_chat_history(st.session_state.username, st.session_state.messages)
@@ -490,3 +485,6 @@ def display_chatbot_interface(lang_code):
490
  # Mostrar el número de llamadas a la API restantes
491
  remaining_calls = 50 - st.session_state.get('api_calls', 0)
492
  st.sidebar.write(f"Llamadas a la API restantes: {remaining_calls}")
 
 
 
 
393
  st.pyplot(graph2)
394
 
395
  ##################################################################################################
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
396
  def display_chatbot_interface(lang_code):
397
  translations = {
398
  'es': {
 
437
  if 'messages' not in st.session_state:
438
  st.session_state.messages = [{"role": "assistant", "content": t['initial_message']}]
439
 
440
+ if 'message_id' not in st.session_state:
441
+ st.session_state.message_id = 0
442
+
443
  chat_container = st.container()
444
 
445
+ # Mostrar mensajes existentes
446
+ with chat_container:
447
+ for message in st.session_state.messages:
448
+ st.session_state.message_id += 1
449
+ if message["role"] == "user":
450
+ st.text_area("You:", value=message["content"], height=50, key=f"user_msg_{st.session_state.message_id}", disabled=True)
451
+ else:
452
+ st.text_area("Assistant:", value=message["content"], height=50, key=f"assistant_msg_{st.session_state.message_id}", disabled=True)
453
+
454
  # Área de entrada del usuario
455
  user_input = st.text_input(t['input_placeholder'], key="user_input")
456
 
457
  # Procesamiento del input del usuario
458
  if user_input:
459
  st.session_state.messages.append({"role": "user", "content": user_input})
460
+ st.session_state.message_id += 1
461
  with chat_container:
462
+ st.text_area("You:", value=user_input, height=50, key=f"user_msg_{st.session_state.message_id}", disabled=True)
 
 
 
 
463
 
464
  # Generar respuesta del chatbot
465
  response = get_chatbot_response(st.session_state.chatbot, user_input, lang_code)
466
  st.session_state.messages.append({"role": "assistant", "content": response})
467
+ st.session_state.message_id += 1
468
 
469
  # Mostrar la respuesta del chatbot con efecto de escritura
470
  with chat_container:
 
472
  full_response = ""
473
  for char in response:
474
  full_response += char
475
+ assistant_message.text_area("Assistant:", value=full_response + "▌", height=50, key=f"assistant_msg_{st.session_state.message_id}_typing", disabled=True)
476
  time.sleep(0.01)
477
+ assistant_message.text_area("Assistant:", value=full_response, height=50, key=f"assistant_msg_{st.session_state.message_id}", disabled=True)
478
 
479
  # Guardar la conversación en la base de datos
480
  store_chat_history(st.session_state.username, st.session_state.messages)
 
485
  # Mostrar el número de llamadas a la API restantes
486
  remaining_calls = 50 - st.session_state.get('api_calls', 0)
487
  st.sidebar.write(f"Llamadas a la API restantes: {remaining_calls}")
488
+
489
+ # Forzar una actualización de la interfaz
490
+ st.experimental_rerun()