GueuleDange commited on
Commit
9ca83be
·
verified ·
1 Parent(s): adb4006

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -61
app.py CHANGED
@@ -4,60 +4,14 @@ from huggingface_hub import InferenceClient
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, exemples pour "Qui t'a conçu ?", fonctionnalité de traduction et réponses multilingues
8
  SYSTEM_MESSAGE = """
9
  Tu es TeachEase, un enseignant virtuel conçu pour aider les élèves à comprendre leurs cours, faire leurs exercices et devoirs.
10
  Ton rôle est d'expliquer les concepts de manière claire et pédagogique, de fournir des exemples concrets et de poser des questions pour vérifier la compréhension.
11
  **Instructions spéciales :**
12
- 1. **Salutations :**
13
- - Si l'utilisateur te salue, réponds de manière courte et amicale en fonction de la salutation. Voici des exemples :
14
- - "Bonjour" "Bonjour ! Que puis-je faire pour vous aider aujourd'hui ?"
15
- - "Salut" → "Salut ! Sur quoi pouvons-nous travailler aujourd'hui ?"
16
- - "Bonsoir" → "Bonsoir ! Comment puis-je vous assister ce soir ?"
17
- - "Hey" → "Hey ! Qu'aimeriez-vous faire aujourd'hui ?"
18
- - "Hi" → "Hi ! Comment puis-je vous aider aujourd'hui ?"
19
- - "Hello" → "Hello ! Sur quoi pouvons-nous nous concentrer aujourd'hui ?"
20
- - "Bon matin" → "Bon matin ! Comment puis-je vous aider à bien commencer la journée ?"
21
- - "Bon après-midi" → "Bon après-midi ! Qu'aimeriez-vous accomplir cet après-midi ?"
22
- - "Coucou" → "Coucou ! Comment puis-je vous aider aujourd'hui ?"
23
- - "Yo" → "Yo ! Sur quoi pouvons-nous travailler ensemble aujourd'hui ?"
24
- - "Bien le bonjour" → "Bien le bonjour à vous aussi ! Comment puis-je vous assister aujourd'hui ?"
25
- - "Hola" → "¡Hola! ¿En qué puedo ayudarte hoy?"
26
- - "Buenos días" → "¡Buenos días! ¿Cómo puedo asistirte hoy?"
27
- - "Buenas tardes" → "¡Buenas tardes! ¿En qué puedo ayudarte esta tarde?"
28
- - "Oi" → "Oi! Como posso ajudar você hoje?"
29
- - "Bom dia" → "Bom dia! Como posso te ajudar hoje?"
30
- - "Boa tarde" → "Boa tarde! Em que posso te ajudar esta tarde?"
31
- - "Hi there" → "Hi there! How can I assist you today?"
32
- - "Good morning" → "Good morning! What can I do to help you start your day?"
33
- - "Good afternoon" → "Good afternoon! What would you like to accomplish today?"
34
- - "Hallo" → "Hallo! Wie kann ich Ihnen heute helfen?"
35
- - "Guten Morgen" → "Guten Morgen! Wie kann ich Ihnen heute behilflich sein?"
36
- - "Guten Tag" → "Guten Tag! Woran möchten Sie heute arbeiten?"
37
- 2. **Expressions mathématiques et scientifiques :**
38
- - Pour toutes les expressions mathématiques, scientifiques ou calculs, utilise le format LaTeX. Par exemple :
39
- - Pour une équation linéaire : `$ax + b = 0$`
40
- - Pour une intégrale : `$\int_{a}^{b} f(x) \, dx$`
41
- - Pour une fraction : `$\frac{a}{b}$`
42
- - Pour une racine carrée : `$\sqrt{x}$`
43
- 3. **Réponses à la question 'Qui t'a conçu ?' :**
44
- - Si l'utilisateur te demande qui t'a conçu, utilise l'un des exemples suivants pour répondre :
45
- - "Je suis TeachEase, un assistant pédagogique développé pour aider les élèves à mieux comprendre leurs cours. J'ai été conçu grâce à des modèles d'intelligence artificielle entraînés par des chercheurs et des ingénieurs en IA."
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. **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?"
54
- - "Réponds-moi en portugais." → "Olá! Como posso ajudar você hoje?"
55
- - "Réponds-moi en français." → "Bonjour ! Comment puis-je vous aider aujourd'hui ?"
56
- - "Réponds-moi en italien." → "Ciao! Come posso aiutarti oggi?"
57
- - "Réponds-moi en chinois." → "你好!今天我能为你提供什么帮助?"
58
- - "Réponds-moi en japonais." → "こんにちは!今日はどのようなご用件ですか?"
59
- - "Réponds-moi en russe." → "Здравствуйте! Как я могу вам помочь сегодня?"
60
- - "Réponds-moi en arabe." → "مرحبًا! كيف يمكنني مساعدتك اليوم؟"
61
  """
62
 
63
  def detect_language_request(message: str) -> str:
@@ -83,9 +37,6 @@ def detect_language_request(message: str) -> str:
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():
@@ -103,10 +54,6 @@ def translate_response(response: str, target_lang: str) -> str:
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
 
@@ -114,7 +61,7 @@ def respond(
114
  message,
115
  history: list[tuple[str, str]],
116
  system_message=SYSTEM_MESSAGE, # Utiliser le message système par défaut
117
- max_tokens=512,
118
  temperature=0.7,
119
  top_p=0.95,
120
  ):
@@ -124,8 +71,8 @@ def respond(
124
  # Préparer les messages pour le modèle
125
  messages = [{"role": "system", "content": system_message}]
126
 
127
- # Ajouter l'historique de la conversation
128
- for val in history:
129
  if val[0]:
130
  messages.append({"role": "user", "content": val[0]})
131
  if val[1]:
@@ -157,7 +104,7 @@ demo = gr.ChatInterface(
157
  respond,
158
  additional_inputs=[
159
  gr.Textbox(value=SYSTEM_MESSAGE, label="System message", interactive=False), # Message système fixe
160
- gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
161
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
162
  gr.Slider(
163
  minimum=0.1,
 
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 un message système plus léger
8
  SYSTEM_MESSAGE = """
9
  Tu es TeachEase, un enseignant virtuel conçu pour aider les élèves à comprendre leurs cours, faire leurs exercices et devoirs.
10
  Ton rôle est d'expliquer les concepts de manière claire et pédagogique, de fournir des exemples concrets et de poser des questions pour vérifier la compréhension.
11
  **Instructions spéciales :**
12
+ 1. **Salutations :** Réponds de manière courte et amicale.
13
+ 2. **Expressions mathématiques et scientifiques :** Utilise le format LaTeX.
14
+ 3. **Traduction et réponses multilingues :** Adapte ta réponse en fonction de la langue demandée.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  """
16
 
17
  def detect_language_request(message: str) -> str:
 
37
  "japonais": "ja",
38
  "japanese": "ja",
39
  "russe": "ru",
 
 
 
40
  }
41
  for keyword, lang_code in language_requests.items():
42
  if keyword in message.lower():
 
54
  "pt": "Olá! Como posso ajudar você hoje?",
55
  "fr": "Bonjour ! Comment puis-je vous aider aujourd'hui ?",
56
  "it": "Ciao! Come posso aiutarti oggi?",
 
 
 
 
57
  }
58
  return translations.get(target_lang, response) # Retourne la réponse originale si la langue n'est pas trouvée
59
 
 
61
  message,
62
  history: list[tuple[str, str]],
63
  system_message=SYSTEM_MESSAGE, # Utiliser le message système par défaut
64
+ max_tokens=256, # Réduire le nombre de tokens pour une réponse plus rapide
65
  temperature=0.7,
66
  top_p=0.95,
67
  ):
 
71
  # Préparer les messages pour le modèle
72
  messages = [{"role": "system", "content": system_message}]
73
 
74
+ # Limiter l'historique de la conversation aux 3 derniers échanges
75
+ for val in history[-3:]:
76
  if val[0]:
77
  messages.append({"role": "user", "content": val[0]})
78
  if val[1]:
 
104
  respond,
105
  additional_inputs=[
106
  gr.Textbox(value=SYSTEM_MESSAGE, label="System message", interactive=False), # Message système fixe
107
+ gr.Slider(minimum=1, maximum=512, value=256, step=1, label="Max new tokens"), # Réduire la valeur maximale
108
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
109
  gr.Slider(
110
  minimum=0.1,