Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
@@ -47,7 +47,7 @@ Ton rôle est d'expliquer les concepts de manière claire et pédagogique, de fo
|
|
47 |
- "Je suis un assistant éducatif basé sur l'IA, développé avec des technologies d'apprentissage automatique. Mon but est de rendre l’éducation plus accessible et compréhensible pour tous !"
|
48 |
- "Je suis le fruit d'un projet visant à démocratiser l'accès au savoir. Grâce à des modèles d'IA et à une base de données éducative, je peux t'expliquer plein de concepts de manière claire et simple !"
|
49 |
4. **Traduction et réponses multilingues :**
|
50 |
-
- Si l'utilisateur te demande de répondre dans une langue spécifique,
|
51 |
- "Réponds-moi en anglais." → "Hello! How can I assist you today?"
|
52 |
- "Réponds-moi en espagnol." → "¡Hola! ¿En qué puedo ayudarte hoy?"
|
53 |
- "Réponds-moi en allemand." → "Hallo! Wie kann ich Ihnen heute helfen?"
|
@@ -60,6 +60,56 @@ Ton rôle est d'expliquer les concepts de manière claire et pédagogique, de fo
|
|
60 |
- "Réponds-moi en arabe." → "مرحبًا! كيف يمكنني مساعدتك اليوم؟"
|
61 |
"""
|
62 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
def respond(
|
64 |
message,
|
65 |
history: list[tuple[str, str]],
|
@@ -68,6 +118,9 @@ def respond(
|
|
68 |
temperature=0.7,
|
69 |
top_p=0.95,
|
70 |
):
|
|
|
|
|
|
|
71 |
# Préparer les messages pour le modèle
|
72 |
messages = [{"role": "system", "content": system_message}]
|
73 |
|
@@ -92,7 +145,12 @@ def respond(
|
|
92 |
):
|
93 |
token = message.choices[0].delta.content
|
94 |
response += token
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
96 |
|
97 |
# Configurer l'interface Gradio
|
98 |
demo = gr.ChatInterface(
|
|
|
47 |
- "Je suis un assistant éducatif basé sur l'IA, développé avec des technologies d'apprentissage automatique. Mon but est de rendre l’éducation plus accessible et compréhensible pour tous !"
|
48 |
- "Je suis le fruit d'un projet visant à démocratiser l'accès au savoir. Grâce à des modèles d'IA et à une base de données éducative, je peux t'expliquer plein de concepts de manière claire et simple !"
|
49 |
4. **Traduction et réponses multilingues :**
|
50 |
+
- Si l'utilisateur te demande de répondre dans une langue spécifique, adapte ta réponse en conséquence. Voici des exemples :
|
51 |
- "Réponds-moi en anglais." → "Hello! How can I assist you today?"
|
52 |
- "Réponds-moi en espagnol." → "¡Hola! ¿En qué puedo ayudarte hoy?"
|
53 |
- "Réponds-moi en allemand." → "Hallo! Wie kann ich Ihnen heute helfen?"
|
|
|
60 |
- "Réponds-moi en arabe." → "مرحبًا! كيف يمكنني مساعدتك اليوم؟"
|
61 |
"""
|
62 |
|
63 |
+
def detect_language_request(message: str) -> str:
|
64 |
+
"""
|
65 |
+
Détecte si l'utilisateur demande une réponse dans une langue spécifique.
|
66 |
+
Retourne la langue demandée ou None si aucune demande n'est détectée.
|
67 |
+
"""
|
68 |
+
language_requests = {
|
69 |
+
"anglais": "en",
|
70 |
+
"english": "en",
|
71 |
+
"espagnol": "es",
|
72 |
+
"spanish": "es",
|
73 |
+
"allemand": "de",
|
74 |
+
"german": "de",
|
75 |
+
"portugais": "pt",
|
76 |
+
"portuguese": "pt",
|
77 |
+
"français": "fr",
|
78 |
+
"french": "fr",
|
79 |
+
"italien": "it",
|
80 |
+
"italian": "it",
|
81 |
+
"chinois": "zh",
|
82 |
+
"chinese": "zh",
|
83 |
+
"japonais": "ja",
|
84 |
+
"japanese": "ja",
|
85 |
+
"russe": "ru",
|
86 |
+
"russian": "ru",
|
87 |
+
"arabe": "ar",
|
88 |
+
"arabic": "ar",
|
89 |
+
}
|
90 |
+
for keyword, lang_code in language_requests.items():
|
91 |
+
if keyword in message.lower():
|
92 |
+
return lang_code
|
93 |
+
return None
|
94 |
+
|
95 |
+
def translate_response(response: str, target_lang: str) -> str:
|
96 |
+
"""
|
97 |
+
Traduit la réponse dans la langue cible (simulation).
|
98 |
+
"""
|
99 |
+
translations = {
|
100 |
+
"en": "Hello! How can I assist you today?",
|
101 |
+
"es": "¡Hola! ¿En qué puedo ayudarte hoy?",
|
102 |
+
"de": "Hallo! Wie kann ich Ihnen heute helfen?",
|
103 |
+
"pt": "Olá! Como posso ajudar você hoje?",
|
104 |
+
"fr": "Bonjour ! Comment puis-je vous aider aujourd'hui ?",
|
105 |
+
"it": "Ciao! Come posso aiutarti oggi?",
|
106 |
+
"zh": "你好!今天我能为你提供什么帮助?",
|
107 |
+
"ja": "こんにちは!今日はどのようなご用件ですか?",
|
108 |
+
"ru": "Здравствуйте! Как я могу вам помочь сегодня?",
|
109 |
+
"ar": "مرحبًا! كيف يمكنني مساعدتك اليوم؟",
|
110 |
+
}
|
111 |
+
return translations.get(target_lang, response) # Retourne la réponse originale si la langue n'est pas trouvée
|
112 |
+
|
113 |
def respond(
|
114 |
message,
|
115 |
history: list[tuple[str, str]],
|
|
|
118 |
temperature=0.7,
|
119 |
top_p=0.95,
|
120 |
):
|
121 |
+
# Détecter si l'utilisateur demande une réponse dans une langue spécifique
|
122 |
+
target_lang = detect_language_request(message)
|
123 |
+
|
124 |
# Préparer les messages pour le modèle
|
125 |
messages = [{"role": "system", "content": system_message}]
|
126 |
|
|
|
145 |
):
|
146 |
token = message.choices[0].delta.content
|
147 |
response += token
|
148 |
+
|
149 |
+
# Traduire la réponse si une langue cible est demandée
|
150 |
+
if target_lang:
|
151 |
+
response = translate_response(response, target_lang)
|
152 |
+
|
153 |
+
yield response
|
154 |
|
155 |
# Configurer l'interface Gradio
|
156 |
demo = gr.ChatInterface(
|