Spaces:
Paused
Paused
rick
commited on
bug fixed now... not done...
Browse files- pages/main.py +22 -9
pages/main.py
CHANGED
|
@@ -24,7 +24,7 @@ from openai import OpenAI
|
|
| 24 |
from pydub import AudioSegment
|
| 25 |
|
| 26 |
|
| 27 |
-
__version__ = "1.2.
|
| 28 |
|
| 29 |
# Au début du fichier, après les imports
|
| 30 |
st.set_page_config(
|
|
@@ -331,7 +331,8 @@ def concatenate_audio_files(audio_list: List[Tuple[bytes, float]]) -> Optional[b
|
|
| 331 |
def process_message(
|
| 332 |
message: str,
|
| 333 |
operation_prompt: str = "",
|
| 334 |
-
tts_enabled: bool = False
|
|
|
|
| 335 |
) -> str:
|
| 336 |
"""
|
| 337 |
Traite les messages des utilisateurs et génère une réponse.
|
|
@@ -343,7 +344,10 @@ def process_message(
|
|
| 343 |
|
| 344 |
"""
|
| 345 |
payload_content = f'{operation_prompt} :\n"""\n{message}\n"""'
|
| 346 |
-
st.session_state.messages
|
|
|
|
|
|
|
|
|
|
| 347 |
full_response = ""
|
| 348 |
try:
|
| 349 |
for response in client.chat.completions.create(
|
|
@@ -356,7 +360,7 @@ def process_message(
|
|
| 356 |
|
| 357 |
# Utiliser regex pour supprimer les trois premiers et derniers guillemets doubles
|
| 358 |
full_response = re.sub(r'^"{3}|"{3}$', '', full_response.strip())
|
| 359 |
-
st.session_state.messages
|
| 360 |
st.session_state.full_response = full_response
|
| 361 |
return full_response
|
| 362 |
except Exception as e:
|
|
@@ -576,12 +580,15 @@ def main_page():
|
|
| 576 |
st.session_state.messages = []
|
| 577 |
|
| 578 |
# Vérification de l'existence d'un message système dans st.session_state.messages
|
| 579 |
-
if not any(message["role"] == "system" for message in st.session_state.messages):
|
| 580 |
-
|
| 581 |
|
| 582 |
# Interface utilisateur pour le chat textuel
|
| 583 |
if user_input := st.chat_input(get_translation("entrez_message")):
|
| 584 |
-
|
|
|
|
|
|
|
|
|
|
| 585 |
with st.chat_message("user", avatar="👤"):
|
| 586 |
st.markdown(user_input)
|
| 587 |
|
|
@@ -595,6 +602,8 @@ def main_page():
|
|
| 595 |
|
| 596 |
for cursor_selected_lang in st.session_state.selected_languages:
|
| 597 |
st.session_state.target_language = cursor_selected_lang["iso-639-1"]
|
|
|
|
|
|
|
| 598 |
st.session_state.full_response = ""
|
| 599 |
# Initialisation du mode de traitement pour la langue cible actuelle
|
| 600 |
system_prompt, operation_prompt = init_process_mode()
|
|
@@ -603,13 +612,15 @@ def main_page():
|
|
| 603 |
with st.chat_message("assistant", avatar="👻"):
|
| 604 |
message_placeholder = st.empty()
|
| 605 |
response_generator = process_message(
|
| 606 |
-
user_input, operation_prompt,
|
|
|
|
|
|
|
| 607 |
)
|
| 608 |
response_status.update(label=f'({target_language_name}) - {get_translation("traduction_en_cours")}', state="running", expanded=True)
|
| 609 |
for response_chunk in response_generator:
|
| 610 |
message_placeholder.markdown(response_chunk)
|
| 611 |
|
| 612 |
-
|
| 613 |
if st.session_state.full_response != "":
|
| 614 |
message_placeholder.markdown(st.session_state.full_response)
|
| 615 |
|
|
@@ -722,6 +733,7 @@ def main_page():
|
|
| 722 |
|
| 723 |
if st.session_state.enable_tts_for_input_from_audio_record:
|
| 724 |
tts_audio, tts_duration = process_tts_message(st.session_state.full_response)
|
|
|
|
| 725 |
if tts_audio:
|
| 726 |
audio_list.append((tts_audio, tts_duration))
|
| 727 |
else:
|
|
@@ -730,6 +742,7 @@ def main_page():
|
|
| 730 |
if audio_list:
|
| 731 |
#stt_status.update(label=f"{get_translation('concatenation_audio_en_cours')}", state="running", expanded=True)
|
| 732 |
final_audio = concatenate_audio_files(audio_list)
|
|
|
|
| 733 |
with st.container(border=True):
|
| 734 |
|
| 735 |
# Générer un nom de fichier unique
|
|
|
|
| 24 |
from pydub import AudioSegment
|
| 25 |
|
| 26 |
|
| 27 |
+
__version__ = "1.2.2"
|
| 28 |
|
| 29 |
# Au début du fichier, après les imports
|
| 30 |
st.set_page_config(
|
|
|
|
| 331 |
def process_message(
|
| 332 |
message: str,
|
| 333 |
operation_prompt: str = "",
|
| 334 |
+
tts_enabled: bool = False,
|
| 335 |
+
system_prompt: Optional[str]=""
|
| 336 |
) -> str:
|
| 337 |
"""
|
| 338 |
Traite les messages des utilisateurs et génère une réponse.
|
|
|
|
| 344 |
|
| 345 |
"""
|
| 346 |
payload_content = f'{operation_prompt} :\n"""\n{message}\n"""'
|
| 347 |
+
st.session_state.messages = [
|
| 348 |
+
{"role": "system", "content": system_prompt},
|
| 349 |
+
{"role": "user", "content": payload_content}
|
| 350 |
+
]
|
| 351 |
full_response = ""
|
| 352 |
try:
|
| 353 |
for response in client.chat.completions.create(
|
|
|
|
| 360 |
|
| 361 |
# Utiliser regex pour supprimer les trois premiers et derniers guillemets doubles
|
| 362 |
full_response = re.sub(r'^"{3}|"{3}$', '', full_response.strip())
|
| 363 |
+
st.session_state.messages = [] #.append({"role": "assistant", "content": full_response})
|
| 364 |
st.session_state.full_response = full_response
|
| 365 |
return full_response
|
| 366 |
except Exception as e:
|
|
|
|
| 580 |
st.session_state.messages = []
|
| 581 |
|
| 582 |
# Vérification de l'existence d'un message système dans st.session_state.messages
|
| 583 |
+
#if not any(message["role"] == "system" for message in st.session_state.messages):
|
| 584 |
+
# st.session_state.messages.insert(0, {"role": "system", "content": system_prompt})
|
| 585 |
|
| 586 |
# Interface utilisateur pour le chat textuel
|
| 587 |
if user_input := st.chat_input(get_translation("entrez_message")):
|
| 588 |
+
|
| 589 |
+
# Réinitialiser l'état précédent
|
| 590 |
+
st.session_state.full_response = ""
|
| 591 |
+
|
| 592 |
with st.chat_message("user", avatar="👤"):
|
| 593 |
st.markdown(user_input)
|
| 594 |
|
|
|
|
| 602 |
|
| 603 |
for cursor_selected_lang in st.session_state.selected_languages:
|
| 604 |
st.session_state.target_language = cursor_selected_lang["iso-639-1"]
|
| 605 |
+
# Réinitialiser les messages avant de traiter une nouvelle entrée
|
| 606 |
+
st.session_state.messages = []
|
| 607 |
st.session_state.full_response = ""
|
| 608 |
# Initialisation du mode de traitement pour la langue cible actuelle
|
| 609 |
system_prompt, operation_prompt = init_process_mode()
|
|
|
|
| 612 |
with st.chat_message("assistant", avatar="👻"):
|
| 613 |
message_placeholder = st.empty()
|
| 614 |
response_generator = process_message(
|
| 615 |
+
user_input, operation_prompt,
|
| 616 |
+
st.session_state.enable_tts_for_input_from_text_field,
|
| 617 |
+
system_prompt=system_prompt
|
| 618 |
)
|
| 619 |
response_status.update(label=f'({target_language_name}) - {get_translation("traduction_en_cours")}', state="running", expanded=True)
|
| 620 |
for response_chunk in response_generator:
|
| 621 |
message_placeholder.markdown(response_chunk)
|
| 622 |
|
| 623 |
+
end_response = response_generator.close() # Obtenir la réponse complète à la fin
|
| 624 |
if st.session_state.full_response != "":
|
| 625 |
message_placeholder.markdown(st.session_state.full_response)
|
| 626 |
|
|
|
|
| 733 |
|
| 734 |
if st.session_state.enable_tts_for_input_from_audio_record:
|
| 735 |
tts_audio, tts_duration = process_tts_message(st.session_state.full_response)
|
| 736 |
+
del st.session_state.full_response
|
| 737 |
if tts_audio:
|
| 738 |
audio_list.append((tts_audio, tts_duration))
|
| 739 |
else:
|
|
|
|
| 742 |
if audio_list:
|
| 743 |
#stt_status.update(label=f"{get_translation('concatenation_audio_en_cours')}", state="running", expanded=True)
|
| 744 |
final_audio = concatenate_audio_files(audio_list)
|
| 745 |
+
del audio_list
|
| 746 |
with st.container(border=True):
|
| 747 |
|
| 748 |
# Générer un nom de fichier unique
|