Update modules/ui.py
Browse files- modules/ui.py +16 -42
modules/ui.py
CHANGED
|
@@ -411,61 +411,38 @@ def display_chatbot_interface(lang_code):
|
|
| 411 |
'initial_message': "Bonjour! Comment pouvons-nous vous aider?"
|
| 412 |
}
|
| 413 |
}
|
| 414 |
-
|
| 415 |
t = translations[lang_code]
|
| 416 |
-
|
| 417 |
-
st.markdown("""
|
| 418 |
-
<style>
|
| 419 |
-
.stTextInput > div > div > input {
|
| 420 |
-
background-color: #F0F2F6;
|
| 421 |
-
}
|
| 422 |
-
.stTextArea > div > div > textarea {
|
| 423 |
-
background-color: #F0F2F6;
|
| 424 |
-
border: none;
|
| 425 |
-
}
|
| 426 |
-
.stTextArea > div > div > textarea:disabled {
|
| 427 |
-
color: #000000;
|
| 428 |
-
}
|
| 429 |
-
</style>
|
| 430 |
-
""", unsafe_allow_html=True)
|
| 431 |
-
|
| 432 |
st.title(t['title'])
|
| 433 |
-
|
| 434 |
if 'chatbot' not in st.session_state:
|
| 435 |
st.session_state.chatbot = initialize_chatbot()
|
| 436 |
-
|
| 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 |
if 'message_counter' not in st.session_state:
|
| 444 |
st.session_state.message_counter = 0
|
| 445 |
|
| 446 |
chat_container = st.container()
|
| 447 |
-
|
| 448 |
# Mostrar mensajes existentes
|
| 449 |
with chat_container:
|
| 450 |
-
|
| 451 |
-
|
| 452 |
-
|
| 453 |
-
|
| 454 |
-
|
| 455 |
-
st.session_state.
|
| 456 |
-
time.sleep(0.01)
|
| 457 |
-
assistant_message.text_area("Assistant:", value=full_response, height=50, key=f"assistant_msg_{st.session_state.message_id}", disabled=True)
|
| 458 |
|
| 459 |
# Área de entrada del usuario
|
| 460 |
user_input = st.text_input(t['input_placeholder'], key="user_input")
|
| 461 |
-
|
| 462 |
# Procesamiento del input del usuario
|
| 463 |
if user_input:
|
| 464 |
st.session_state.messages.append({"role": "user", "content": user_input})
|
| 465 |
st.session_state.message_id += 1
|
| 466 |
with chat_container:
|
| 467 |
st.text_area("You:", value=user_input, height=50, key=f"user_msg_{st.session_state.message_id}", disabled=True)
|
| 468 |
-
|
| 469 |
# Generar respuesta del chatbot
|
| 470 |
try:
|
| 471 |
response = get_chatbot_response(st.session_state.chatbot, user_input, lang_code)
|
|
@@ -475,26 +452,23 @@ def display_chatbot_interface(lang_code):
|
|
| 475 |
|
| 476 |
st.session_state.messages.append({"role": "assistant", "content": response})
|
| 477 |
st.session_state.message_id += 1
|
| 478 |
-
|
| 479 |
# Mostrar la respuesta del chatbot con efecto de escritura
|
| 480 |
with chat_container:
|
| 481 |
assistant_message = st.empty()
|
| 482 |
full_response = ""
|
| 483 |
for char in response:
|
| 484 |
full_response += char
|
| 485 |
-
assistant_message.text_area("Assistant:", value=full_response + "▌", height=50, key=f"assistant_msg_{st.session_state.message_id}
|
|
|
|
| 486 |
time.sleep(0.01)
|
| 487 |
assistant_message.text_area("Assistant:", value=full_response, height=50, key=f"assistant_msg_{st.session_state.message_id}", disabled=True)
|
| 488 |
-
|
| 489 |
# Guardar la conversación en la base de datos
|
| 490 |
store_chat_history(st.session_state.username, st.session_state.messages)
|
| 491 |
-
|
| 492 |
# Limpiar el input del usuario
|
| 493 |
st.session_state.user_input = ""
|
| 494 |
-
|
| 495 |
-
# Mostrar el número de llamadas a la API restantes
|
| 496 |
-
#remaining_calls = 50 - st.session_state.get('api_calls', 0)
|
| 497 |
-
#st.sidebar.write(f"Llamadas a la API restantes: {remaining_calls}")
|
| 498 |
-
|
| 499 |
# Forzar una actualización de la interfaz
|
| 500 |
-
|
|
|
|
| 411 |
'initial_message': "Bonjour! Comment pouvons-nous vous aider?"
|
| 412 |
}
|
| 413 |
}
|
|
|
|
| 414 |
t = translations[lang_code]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 415 |
st.title(t['title'])
|
|
|
|
| 416 |
if 'chatbot' not in st.session_state:
|
| 417 |
st.session_state.chatbot = initialize_chatbot()
|
|
|
|
| 418 |
if 'messages' not in st.session_state:
|
| 419 |
st.session_state.messages = [{"role": "assistant", "content": t['initial_message']}]
|
|
|
|
| 420 |
if 'message_id' not in st.session_state:
|
| 421 |
st.session_state.message_id = 0
|
|
|
|
| 422 |
if 'message_counter' not in st.session_state:
|
| 423 |
st.session_state.message_counter = 0
|
| 424 |
|
| 425 |
chat_container = st.container()
|
| 426 |
+
|
| 427 |
# Mostrar mensajes existentes
|
| 428 |
with chat_container:
|
| 429 |
+
for message in st.session_state.messages:
|
| 430 |
+
if message["role"] == "user":
|
| 431 |
+
st.text_area("You:", value=message["content"], height=50, key=f"user_msg_{st.session_state.message_id}", disabled=True)
|
| 432 |
+
else:
|
| 433 |
+
st.text_area("Assistant:", value=message["content"], height=50, key=f"assistant_msg_{st.session_state.message_id}", disabled=True)
|
| 434 |
+
st.session_state.message_id += 1
|
|
|
|
|
|
|
| 435 |
|
| 436 |
# Área de entrada del usuario
|
| 437 |
user_input = st.text_input(t['input_placeholder'], key="user_input")
|
| 438 |
+
|
| 439 |
# Procesamiento del input del usuario
|
| 440 |
if user_input:
|
| 441 |
st.session_state.messages.append({"role": "user", "content": user_input})
|
| 442 |
st.session_state.message_id += 1
|
| 443 |
with chat_container:
|
| 444 |
st.text_area("You:", value=user_input, height=50, key=f"user_msg_{st.session_state.message_id}", disabled=True)
|
| 445 |
+
|
| 446 |
# Generar respuesta del chatbot
|
| 447 |
try:
|
| 448 |
response = get_chatbot_response(st.session_state.chatbot, user_input, lang_code)
|
|
|
|
| 452 |
|
| 453 |
st.session_state.messages.append({"role": "assistant", "content": response})
|
| 454 |
st.session_state.message_id += 1
|
| 455 |
+
|
| 456 |
# Mostrar la respuesta del chatbot con efecto de escritura
|
| 457 |
with chat_container:
|
| 458 |
assistant_message = st.empty()
|
| 459 |
full_response = ""
|
| 460 |
for char in response:
|
| 461 |
full_response += char
|
| 462 |
+
assistant_message.text_area("Assistant:", value=full_response + "▌", height=50, key=f"assistant_msg_{st.session_state.message_id}_typing_{st.session_state.message_counter}", disabled=True)
|
| 463 |
+
st.session_state.message_counter += 1
|
| 464 |
time.sleep(0.01)
|
| 465 |
assistant_message.text_area("Assistant:", value=full_response, height=50, key=f"assistant_msg_{st.session_state.message_id}", disabled=True)
|
| 466 |
+
|
| 467 |
# Guardar la conversación en la base de datos
|
| 468 |
store_chat_history(st.session_state.username, st.session_state.messages)
|
| 469 |
+
|
| 470 |
# Limpiar el input del usuario
|
| 471 |
st.session_state.user_input = ""
|
| 472 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
| 473 |
# Forzar una actualización de la interfaz
|
| 474 |
+
st.experimental_rerun()
|