GueuleDange commited on
Commit
370fe25
·
verified ·
1 Parent(s): 0243b7f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -2
app.py CHANGED
@@ -2,7 +2,7 @@ import gradio as gr
2
  from huggingface_hub import InferenceClient
3
 
4
  # Initialiser le client pour le modèle Phi-3.5-mini-instruct
5
- client = InferenceClient("microsoft/Phi-3.5-mini-instruct")
6
 
7
  # Définir le message système pour TeachEase avec support LaTeX, réponses courtes aux salutations et exemples pour "Qui t'a conçu ?"
8
  SYSTEM_MESSAGE = """
@@ -46,8 +46,60 @@ Ton rôle est d'expliquer les concepts de manière claire et pédagogique, de fo
46
  - "Je suis une IA éducative créée pour aider à l'apprentissage. Mon fonctionnement repose sur des modèles avancés d'intelligence artificielle, développés grâce à des données éducatives et des algorithmes spécialisés."
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
  """
50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  def respond(
52
  message,
53
  history: list[tuple[str, str]],
@@ -56,6 +108,9 @@ def respond(
56
  temperature=0.7,
57
  top_p=0.95,
58
  ):
 
 
 
59
  # Préparer les messages pour le modèle
60
  messages = [{"role": "system", "content": system_message}]
61
 
@@ -80,7 +135,12 @@ def respond(
80
  ):
81
  token = message.choices[0].delta.content
82
  response += token
83
- yield response
 
 
 
 
 
84
 
85
  # Configurer l'interface Gradio
86
  demo = gr.ChatInterface(
 
2
  from huggingface_hub import InferenceClient
3
 
4
  # Initialiser le client pour le modèle Phi-3.5-mini-instruct
5
+ client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
6
 
7
  # Définir le message système pour TeachEase avec support LaTeX, réponses courtes aux salutations et exemples pour "Qui t'a conçu ?"
8
  SYSTEM_MESSAGE = """
 
46
  - "Je suis une IA éducative créée pour aider à l'apprentissage. Mon fonctionnement repose sur des modèles avancés d'intelligence artificielle, développés grâce à des données éducatives et des algorithmes spécialisés."
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. **Réponses dans une autre langue :**
50
+ - Si l'utilisateur te demande de répondre dans une langue spécifique, adapte ta réponse en conséquence.
51
  """
52
 
53
+ def detect_language_request(message: str) -> str:
54
+ """
55
+ Détecte si l'utilisateur demande une réponse dans une langue spécifique.
56
+ Retourne la langue demandée ou None si aucune demande n'est détectée.
57
+ """
58
+ language_requests = {
59
+ "anglais": "en",
60
+ "english": "en",
61
+ "espagnol": "es",
62
+ "spanish": "es",
63
+ "allemand": "de",
64
+ "german": "de",
65
+ "portugais": "pt",
66
+ "portuguese": "pt",
67
+ "français": "fr",
68
+ "french": "fr",
69
+ "italien": "it",
70
+ "italian": "it",
71
+ "chinois": "zh",
72
+ "chinese": "zh",
73
+ "japonais": "ja",
74
+ "japanese": "ja",
75
+ "russe": "ru",
76
+ "russian": "ru",
77
+ "arabe": "ar",
78
+ "arabic": "ar",
79
+ }
80
+ for keyword, lang_code in language_requests.items():
81
+ if keyword in message.lower():
82
+ return lang_code
83
+ return None
84
+
85
+ def translate_response(response: str, target_lang: str) -> str:
86
+ """
87
+ Traduit la réponse dans la langue cible (simulation).
88
+ """
89
+ translations = {
90
+ "en": "Hello! How can I assist you today?",
91
+ "es": "¡Hola! ¿En qué puedo ayudarte hoy?",
92
+ "de": "Hallo! Wie kann ich Ihnen heute helfen?",
93
+ "pt": "Olá! Como posso ajudar você hoje?",
94
+ "fr": "Bonjour ! Comment puis-je vous aider aujourd'hui ?",
95
+ "it": "Ciao! Come posso aiutarti oggi?",
96
+ "zh": "你好!今天我能为你提供什么帮助?",
97
+ "ja": "こんにちは!今日はどのようなご用件ですか?",
98
+ "ru": "Здравствуйте! Как я могу вам помочь сегодня?",
99
+ "ar": "مرحبًا! كيف يمكنني مساعدتك اليوم؟",
100
+ }
101
+ return translations.get(target_lang, response) # Retourne la réponse originale si la langue n'est pas trouvée
102
+
103
  def respond(
104
  message,
105
  history: list[tuple[str, str]],
 
108
  temperature=0.7,
109
  top_p=0.95,
110
  ):
111
+ # Détecter si l'utilisateur demande une réponse dans une langue spécifique
112
+ target_lang = detect_language_request(message)
113
+
114
  # Préparer les messages pour le modèle
115
  messages = [{"role": "system", "content": system_message}]
116
 
 
135
  ):
136
  token = message.choices[0].delta.content
137
  response += token
138
+
139
+ # Traduire la réponse si une langue cible est demandée
140
+ if target_lang:
141
+ response = translate_response(response, target_lang)
142
+
143
+ yield response
144
 
145
  # Configurer l'interface Gradio
146
  demo = gr.ChatInterface(