Sarab98 commited on
Commit
c8cede8
·
verified ·
1 Parent(s): 3c8f436

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -41
app.py CHANGED
@@ -1,21 +1,11 @@
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
 
4
- """
5
- For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
6
- """
7
  client = InferenceClient("mistralai/Mistral-7B-Instruct-v0.2")
8
 
9
-
10
- def respond(
11
- message,
12
- history: list[tuple[str, str]],
13
- system_message,
14
- max_tokens,
15
- temperature,
16
- top_p,
17
- ):
18
- messages = system_message = """Tu es un formateur de formateurs spécialisé en analyse réflexive des pratiques enseignantes.
19
  À partir du texte fourni, aide l'enseignant à approfondir sa réflexion professionnelle en suivant le modèle de Gibbs :
20
  • Décrire objectivement les faits
21
  • Exprimer les sentiments et émotions ressentis
@@ -26,57 +16,52 @@ def respond(
26
  Tes questions doivent impérativement faire le tour de ces étapes. Pose une seule question à la fois et attends la réponse avant de continuer.
27
  Réponds toujours aux questions de l'enseignant s'il en pose avant pour que l’échange soit fluide et interactif."""
28
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  for val in history:
30
  if val[0]:
31
  messages.append({"role": "user", "content": val[0]})
32
  if val[1]:
33
  messages.append({"role": "assistant", "content": val[1]})
34
 
 
35
  messages.append({"role": "user", "content": message})
36
 
37
  response = ""
38
 
39
- for message in client.chat_completion(
 
40
  messages,
41
- max_tokens=max_tokens 150,
42
  stream=True,
43
- temperature=temperature 0.7,
44
- top_p=top_p 0.95,
45
  ):
46
- token = message.choices[0].delta.content
47
-
48
  response += token
49
  yield response
50
 
51
-
52
- """
53
- For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
54
- """
55
  demo = gr.ChatInterface(
56
  respond,
57
  additional_inputs=[
58
- gr.Textbox(value=""""Tu es un formateur de formateurs spécialisé en analyse réflexive des pratiques enseignantes.
59
- À partir du texte fourni, aide l'enseignant à approfondir sa réflexion professionnelle en suivant le modèle de Gibbs :
60
- • Décrire objectivement les faits
61
- • Exprimer les sentiments et émotions ressentis
62
- • Évaluer ce qui a bien ou mal fonctionné
63
- • Analyser les causes possibles de ces résultats
64
- • Conclure sur ce que tu pourrais améliorer
65
- • Proposer un plan d’action concret pour l’avenir
66
- Tes questions doivent impérativement faire le tour de ces étapes. Pose une seule question à la fois et attends la réponse avant de continuer.
67
- Réponds toujours aux questions de l'enseignant s'il en pose avant pour que l’échange soit fluide et interactif."""..", label="System message"),
68
  gr.Slider(minimum=1, maximum=512, value=150, step=1, label="Max new tokens"),
69
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
70
- gr.Slider(
71
- minimum=0.1,
72
- maximum=1.0,
73
- value=0.95,
74
- step=0.05,
75
- label="Top-p (nucleus sampling)",
76
- ),
77
  ],
78
  )
79
 
80
-
81
  if __name__ == "__main__":
82
  demo.launch(share=True)
 
 
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
 
4
+ # Crée le client pour le modèle Mistral
 
 
5
  client = InferenceClient("mistralai/Mistral-7B-Instruct-v0.2")
6
 
7
+ # Prompt maître
8
+ system_message = """Tu es un formateur de formateurs spécialisé en analyse réflexive des pratiques enseignantes.
 
 
 
 
 
 
 
 
9
  À partir du texte fourni, aide l'enseignant à approfondir sa réflexion professionnelle en suivant le modèle de Gibbs :
10
  • Décrire objectivement les faits
11
  • Exprimer les sentiments et émotions ressentis
 
16
  Tes questions doivent impérativement faire le tour de ces étapes. Pose une seule question à la fois et attends la réponse avant de continuer.
17
  Réponds toujours aux questions de l'enseignant s'il en pose avant pour que l’échange soit fluide et interactif."""
18
 
19
+ # Fonction pour gérer la conversation
20
+ def respond(
21
+ message,
22
+ history: list[tuple[str, str]],
23
+ max_tokens,
24
+ temperature,
25
+ top_p,
26
+ ):
27
+ # Initialise messages avec le prompt maître
28
+ messages = [{"role": "system", "content": system_message}]
29
+
30
+ # Ajoute l'historique
31
  for val in history:
32
  if val[0]:
33
  messages.append({"role": "user", "content": val[0]})
34
  if val[1]:
35
  messages.append({"role": "assistant", "content": val[1]})
36
 
37
+ # Ajoute le nouveau message
38
  messages.append({"role": "user", "content": message})
39
 
40
  response = ""
41
 
42
+ # Appel à l'IA
43
+ for message_chunk in client.chat_completion(
44
  messages,
45
+ max_tokens=max_tokens,
46
  stream=True,
47
+ temperature=temperature,
48
+ top_p=top_p,
49
  ):
50
+ token = message_chunk.choices[0].delta.content
 
51
  response += token
52
  yield response
53
 
54
+ # Interface Gradio
 
 
 
55
  demo = gr.ChatInterface(
56
  respond,
57
  additional_inputs=[
58
+ gr.Textbox(value=system_message, label="System message"),
 
 
 
 
 
 
 
 
 
59
  gr.Slider(minimum=1, maximum=512, value=150, step=1, label="Max new tokens"),
60
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
61
+ gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)"),
 
 
 
 
 
 
62
  ],
63
  )
64
 
 
65
  if __name__ == "__main__":
66
  demo.launch(share=True)
67
+