GueuleDange commited on
Commit
adb4006
·
verified ·
1 Parent(s): 74334a7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -2
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, utilise les exemples suivants pour répondre :
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
- yield response
 
 
 
 
 
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(