Update modules/ui.py
Browse files- 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 |
-
|
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_{
|
481 |
time.sleep(0.01)
|
482 |
-
assistant_message.text_area("Assistant:", value=full_response, height=50, key=f"assistant_msg_{
|
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()
|