rick commited on
Commit
1e92cce
·
unverified ·
1 Parent(s): 00f6004

mise a jours UI/UX

Browse files
Files changed (1) hide show
  1. app.py +55 -40
app.py CHANGED
@@ -462,6 +462,7 @@ def on_languages_change() -> None:
462
  for lang in selected_language_names
463
  ]
464
 
 
465
  def init_process_mode() -> Tuple[str, str]:
466
  """
467
  Initialise le mode de traitement pour la traduction si nécessaire.
@@ -483,6 +484,9 @@ def main():
483
  st.title("------- DEMORRHA -------")
484
 
485
  # Initialisation des variables d'état de session
 
 
 
486
  if "language_detected" not in st.session_state:
487
  st.session_state["language_detected"] = None
488
 
@@ -516,49 +520,60 @@ def main():
516
  if not any(message["role"] == "system" for message in st.session_state.messages):
517
  st.session_state.messages.insert(0, {"role": "system", "content": system_prompt})
518
 
519
- with st.container(border=True):
520
- # Interface utilisateur pour le chat textuel
521
- if user_input := st.chat_input(get_translation("entrez_message")):
522
- # Traitement du message texte de l'utilisateur
523
- if st.session_state.language_detected is None:
524
- st.session_state.language_detected = detect_language(
525
- input_text=user_input, temperature=0.01
526
- )
527
-
528
- audio_list = []
529
- for cursor_selected_lang in st.session_state.selected_languages:
530
- st.session_state.target_language = cursor_selected_lang["iso-639-1"]
531
-
532
- # Initialisation du mode de traitement pour la langue cible actuelle
533
- system_prompt, operation_prompt = init_process_mode()
534
 
535
- # Traitement du message utilisateur pour la langue cible actuelle
536
- try:
537
- tts_audio, tts_duration = process_message(
538
- user_input,
539
- operation_prompt=f"{operation_prompt}",
540
- tts_enabled=st.session_state.enable_tts_for_input_from_text_field
541
- )
542
- if tts_audio is not None:
543
- audio_list.append((tts_audio, tts_duration))
544
- except Exception as e:
545
- st.error(f"Erreur lors du traitement du message : {str(e)}")
 
 
546
 
547
- if audio_list:
548
- try:
549
- final_audio = concatenate_audio_files(audio_list)
550
- with st.container(border=True):
551
- st.audio(final_audio, format="audio/mp3", autoplay=True)
552
- st.download_button(
553
- label=get_translation("telecharger_audio"),
554
- data=final_audio,
555
- file_name="audio_reponse.mp3",
556
- mime="audio/mp3"
557
- )
558
- except Exception as e:
559
- st.error(f"Erreur lors de la concaténation des fichiers audio : {str(e)}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
560
 
561
- with st.container(border=True):
562
  # Interface utilisateur pour l'enregistrement audio
563
  st.write(get_translation("enregistrez_message"))
564
  audio = audiorecorder(
 
462
  for lang in selected_language_names
463
  ]
464
 
465
+
466
  def init_process_mode() -> Tuple[str, str]:
467
  """
468
  Initialise le mode de traitement pour la traduction si nécessaire.
 
484
  st.title("------- DEMORRHA -------")
485
 
486
  # Initialisation des variables d'état de session
487
+ if "ui_loaded" not in st.session_state:
488
+ st.session_state["ui_loaded"] = False
489
+
490
  if "language_detected" not in st.session_state:
491
  st.session_state["language_detected"] = None
492
 
 
520
  if not any(message["role"] == "system" for message in st.session_state.messages):
521
  st.session_state.messages.insert(0, {"role": "system", "content": system_prompt})
522
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
523
 
524
+
525
+
526
+ # Interface utilisateur pour le chat textuel
527
+ if user_input := st.chat_input(get_translation("entrez_message")):
528
+ # Traitement du message texte de l'utilisateur
529
+ if st.session_state.language_detected is None:
530
+ st.session_state.language_detected = detect_language(
531
+ input_text=user_input, temperature=0.01
532
+ )
533
+
534
+ audio_list = []
535
+ for cursor_selected_lang in st.session_state.selected_languages:
536
+ st.session_state.target_language = cursor_selected_lang["iso-639-1"]
537
 
538
+ # Initialisation du mode de traitement pour la langue cible actuelle
539
+ system_prompt, operation_prompt = init_process_mode()
540
+
541
+ # Traitement du message utilisateur pour la langue cible actuelle
542
+ try:
543
+ tts_audio, tts_duration = process_message(
544
+ user_input,
545
+ operation_prompt=f"{operation_prompt}",
546
+ tts_enabled=st.session_state.enable_tts_for_input_from_text_field
547
+ )
548
+ if tts_audio is not None:
549
+ audio_list.append((tts_audio, tts_duration))
550
+ except Exception as e:
551
+ st.error(f"Erreur lors du traitement du message : {str(e)}")
552
+
553
+ if audio_list:
554
+ try:
555
+ final_audio = concatenate_audio_files(audio_list)
556
+ with st.container(border=True):
557
+ st.audio(final_audio, format="audio/mp3", autoplay=True)
558
+
559
+ # Générer un nom de fichier unique
560
+ timestamp = time.strftime("%Y%m%d-%H%M%S")
561
+ langues = "_".join([lang["iso-639-1"] for lang in st.session_state.selected_languages])
562
+ nom_fichier = f"reponse_audio_{langues}_{timestamp}.mp3"
563
+
564
+ st.download_button(
565
+ label=get_translation("telecharger_audio"),
566
+ data=final_audio,
567
+ file_name=nom_fichier,
568
+ mime="audio/mp3",
569
+ use_container_width=True,
570
+ type="primary",
571
+ key=f"download_button_{langues}_{timestamp}",
572
+ )
573
+ except Exception as e:
574
+ st.error(f"Erreur lors de la concaténation des fichiers audio : {str(e)}")
575
 
576
+ with st.container():
577
  # Interface utilisateur pour l'enregistrement audio
578
  st.write(get_translation("enregistrez_message"))
579
  audio = audiorecorder(