Spaces:
Paused
Paused
rick
commited on
bug fixed now... not done...
Browse files- pages/main.py +44 -21
pages/main.py
CHANGED
|
@@ -57,24 +57,17 @@ def load_ui_language(file_path: Optional[str] = "ui_lang_support.json") -> Dict[
|
|
| 57 |
print(f"{get_translation('erreur_lecture_fichier')} {e}")
|
| 58 |
return {}
|
| 59 |
|
| 60 |
-
|
| 61 |
-
translations = load_ui_language()
|
| 62 |
|
| 63 |
def get_translation(key: str) -> str:
|
| 64 |
"""
|
| 65 |
Obtient la traduction pour une clé donnée basée sur la langue d'interface sélectionnée.
|
| 66 |
-
|
| 67 |
-
Args:
|
| 68 |
-
key (str): La clé de traduction.
|
| 69 |
-
|
| 70 |
-
Returns:
|
| 71 |
-
str: Le texte traduit.
|
| 72 |
"""
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
|
| 79 |
# OpenAI client configuration with API key
|
| 80 |
client = OpenAI(api_key=getenv("OPENAI_API_KEY"))
|
|
@@ -533,17 +526,23 @@ def on_languages_change() -> None:
|
|
| 533 |
]
|
| 534 |
|
| 535 |
|
| 536 |
-
def init_process_mode(
|
|
|
|
|
|
|
|
|
|
|
|
|
| 537 |
"""
|
| 538 |
Initialise le mode de traitement pour la traduction si nécessaire.
|
| 539 |
|
| 540 |
Returns:
|
| 541 |
Tuple[str, str]: Un tuple contenant le prompt système et le prompt d'opération.
|
| 542 |
"""
|
| 543 |
-
|
|
|
|
|
|
|
| 544 |
system_prompt, operation_prompt = set_translation_mode(
|
| 545 |
-
from_lang=
|
| 546 |
-
dest_lang=
|
| 547 |
)
|
| 548 |
return system_prompt, operation_prompt
|
| 549 |
return "", ""
|
|
@@ -573,7 +572,7 @@ def main_page():
|
|
| 573 |
if "interface_language_select" not in st.session_state:
|
| 574 |
st.session_state.interface_language_select = "English" # Langue par défaut
|
| 575 |
|
| 576 |
-
system_prompt, operation_prompt = init_process_mode()
|
| 577 |
|
| 578 |
# Initialisation de l'historique des messages avec le prompt système
|
| 579 |
if "messages" not in st.session_state:
|
|
@@ -598,12 +597,27 @@ def main_page():
|
|
| 598 |
|
| 599 |
for cursor_selected_lang in st.session_state.selected_languages:
|
| 600 |
st.session_state.target_language = cursor_selected_lang["iso-639-1"]
|
|
|
|
|
|
|
| 601 |
# Réinitialiser les messages avant de traiter une nouvelle entrée
|
| 602 |
st.session_state.messages = []
|
| 603 |
st.session_state.full_response = ""
|
|
|
|
| 604 |
# Initialisation du mode de traitement pour la langue cible actuelle
|
| 605 |
-
system_prompt, operation_prompt = init_process_mode(
|
| 606 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 607 |
with st.status(f'({target_language_name}) - {get_translation("traduction_en_cours")}', expanded=True) as response_status:
|
| 608 |
with st.chat_message("assistant", avatar="👻"):
|
| 609 |
message_placeholder = st.empty()
|
|
@@ -735,8 +749,17 @@ def main_page():
|
|
| 735 |
for cursor_selected_lang in st.session_state.selected_languages:
|
| 736 |
st.session_state.target_language = cursor_selected_lang["iso-639-1"]
|
| 737 |
st.session_state.full_response = ""
|
|
|
|
| 738 |
# Initialisation du mode de traitement pour la langue cible actuelle
|
| 739 |
-
system_prompt, operation_prompt = init_process_mode(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 740 |
with st.chat_message("assistant", avatar="👻"):
|
| 741 |
message_placeholder = st.empty()
|
| 742 |
response_generator = process_message(
|
|
|
|
| 57 |
print(f"{get_translation('erreur_lecture_fichier')} {e}")
|
| 58 |
return {}
|
| 59 |
|
| 60 |
+
|
|
|
|
| 61 |
|
| 62 |
def get_translation(key: str) -> str:
|
| 63 |
"""
|
| 64 |
Obtient la traduction pour une clé donnée basée sur la langue d'interface sélectionnée.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
"""
|
| 66 |
+
lang = st.session_state.get('interface_language', 'English')
|
| 67 |
+
return translations.get(lang, {}).get(key, key)
|
| 68 |
+
|
| 69 |
+
# Dictionary to store translations
|
| 70 |
+
translations = load_ui_language()
|
| 71 |
|
| 72 |
# OpenAI client configuration with API key
|
| 73 |
client = OpenAI(api_key=getenv("OPENAI_API_KEY"))
|
|
|
|
| 526 |
]
|
| 527 |
|
| 528 |
|
| 529 |
+
def init_process_mode(
|
| 530 |
+
from_lang: str,
|
| 531 |
+
to_lang: str,
|
| 532 |
+
process_mode: Optional[str|list] = "translator"
|
| 533 |
+
) -> Tuple[str, str]:
|
| 534 |
"""
|
| 535 |
Initialise le mode de traitement pour la traduction si nécessaire.
|
| 536 |
|
| 537 |
Returns:
|
| 538 |
Tuple[str, str]: Un tuple contenant le prompt système et le prompt d'opération.
|
| 539 |
"""
|
| 540 |
+
# from (e.g.: st.session_state.language_detected)
|
| 541 |
+
# dest (e.g.: st.session_state.target_language)
|
| 542 |
+
if "translator" in process_mode:
|
| 543 |
system_prompt, operation_prompt = set_translation_mode(
|
| 544 |
+
from_lang=f"{from_lang}",
|
| 545 |
+
dest_lang=f"{to_lang}"
|
| 546 |
)
|
| 547 |
return system_prompt, operation_prompt
|
| 548 |
return "", ""
|
|
|
|
| 572 |
if "interface_language_select" not in st.session_state:
|
| 573 |
st.session_state.interface_language_select = "English" # Langue par défaut
|
| 574 |
|
| 575 |
+
#system_prompt, operation_prompt = init_process_mode()
|
| 576 |
|
| 577 |
# Initialisation de l'historique des messages avec le prompt système
|
| 578 |
if "messages" not in st.session_state:
|
|
|
|
| 597 |
|
| 598 |
for cursor_selected_lang in st.session_state.selected_languages:
|
| 599 |
st.session_state.target_language = cursor_selected_lang["iso-639-1"]
|
| 600 |
+
target_language_name = cursor_selected_lang["language"]
|
| 601 |
+
|
| 602 |
# Réinitialiser les messages avant de traiter une nouvelle entrée
|
| 603 |
st.session_state.messages = []
|
| 604 |
st.session_state.full_response = ""
|
| 605 |
+
|
| 606 |
# Initialisation du mode de traitement pour la langue cible actuelle
|
| 607 |
+
system_prompt, operation_prompt = init_process_mode(from_lang=
|
| 608 |
+
(
|
| 609 |
+
st.session_state.language_detected if "language_detected" in st.session_state.language_detected else convert_language_name_to_iso6391(
|
| 610 |
+
st.session_state.interface_language
|
| 611 |
+
)
|
| 612 |
+
),
|
| 613 |
+
to_lang=st.session_state.target_language
|
| 614 |
+
)
|
| 615 |
+
# display error with st.error ; if (system_prompt, operation_prompt) is "", "" or None, None, and raise error
|
| 616 |
+
if not system_prompt or not operation_prompt:
|
| 617 |
+
st.error("Erreur : Les prompts système ou d'opération sont vides.")
|
| 618 |
+
raise ValueError("Les prompts système ou d'opération ne peuvent pas être vides.")
|
| 619 |
+
|
| 620 |
+
|
| 621 |
with st.status(f'({target_language_name}) - {get_translation("traduction_en_cours")}', expanded=True) as response_status:
|
| 622 |
with st.chat_message("assistant", avatar="👻"):
|
| 623 |
message_placeholder = st.empty()
|
|
|
|
| 749 |
for cursor_selected_lang in st.session_state.selected_languages:
|
| 750 |
st.session_state.target_language = cursor_selected_lang["iso-639-1"]
|
| 751 |
st.session_state.full_response = ""
|
| 752 |
+
|
| 753 |
# Initialisation du mode de traitement pour la langue cible actuelle
|
| 754 |
+
system_prompt, operation_prompt = init_process_mode(from_lang=
|
| 755 |
+
(
|
| 756 |
+
st.session_state.language_detected if "language_detected" in st.session_state.language_detected else convert_language_name_to_iso6391(
|
| 757 |
+
st.session_state.interface_language
|
| 758 |
+
)
|
| 759 |
+
),
|
| 760 |
+
to_lang=st.session_state.target_language
|
| 761 |
+
)
|
| 762 |
+
|
| 763 |
with st.chat_message("assistant", avatar="👻"):
|
| 764 |
message_placeholder = st.empty()
|
| 765 |
response_generator = process_message(
|