dofbi commited on
Commit
9741eb6
1 Parent(s): 7522362
Files changed (1) hide show
  1. app.py +46 -39
app.py CHANGED
@@ -22,11 +22,16 @@ system_prompts = {
22
  # Fonction pour générer une réponse
23
  @spaces.GPU(duration=120)
24
  def generate_response(user_input, system_prompt, max_new_tokens=150, temperature=0.7):
25
- # Créer la liste des messages avec le prompt système et l'entrée utilisateur
26
- messages = [
27
- {"role": "system", "content": system_prompt},
28
- {"role": "user", "content": user_input}
29
- ]
 
 
 
 
 
30
 
31
  # Tokeniser l'entrée
32
  inputs = tokenizer(user_input, return_tensors="pt").to(device)
@@ -43,40 +48,42 @@ def update_system_prompt(selected_prompt):
43
 
44
  # Interface Gradio avec Blocks
45
  with gr.Blocks() as iface:
46
- # Titre et description de l'application
47
- gr.Markdown("# Oolel Chatbot")
48
- gr.Markdown("Génération de réponses basées sur des prompts système personnalisés.")
49
-
50
- # Dropdown pour choisir un prompt système
51
- dropdown = gr.Dropdown(
52
- label="Choisir un prompt système",
53
- choices=list(system_prompts.keys()), # Liste des options de prompts
54
- value=None, # Pas de sélection par défaut
55
- type="value",
56
- interactive=True
57
- )
58
-
59
- # Textbox pour afficher et modifier le message du prompt système
60
- system_prompt_textbox = gr.Textbox(
61
- label="Message du prompt système",
62
- value="", # Valeur par défaut vide
63
- placeholder="Sélectionnez un prompt système pour afficher son contenu ici..."
64
- )
65
-
66
- # Événement pour mettre à jour le prompt dans le Textbox
67
- dropdown.change(update_system_prompt, inputs=[dropdown], outputs=[system_prompt_textbox])
68
-
69
- # Textbox pour le message utilisateur
70
- user_input = gr.Textbox(label="Message utilisateur", placeholder="Entrez votre message ici...")
71
-
72
- # Slider pour choisir le nombre maximal de tokens
73
- max_tokens_slider = gr.Slider(50, 500, value=150, label="Nombre max de tokens")
74
-
75
- # Bouton pour générer la réponse
76
- generate_button = gr.Button("Générer une réponse")
77
-
78
- # Zone pour afficher la réponse générée
79
- output = gr.Textbox(label="Réponse générée")
 
 
80
 
81
  # Connecter le bouton à la fonction de génération
82
  generate_button.click(
 
22
  # Fonction pour générer une réponse
23
  @spaces.GPU(duration=120)
24
  def generate_response(user_input, system_prompt, max_new_tokens=150, temperature=0.7):
25
+ # Gérer le cas le prompt système est vide
26
+ if not system_prompt.strip():
27
+ messages = [
28
+ {"role": "user", "content": "Translate to Wolof: Bassirou Diomaye Faye is the new Senegalese president. He is 44 years old"}
29
+ ]
30
+ else:
31
+ messages = [
32
+ {"role": "system", "content": system_prompt},
33
+ {"role": "user", "content": user_input}
34
+ ]
35
 
36
  # Tokeniser l'entrée
37
  inputs = tokenizer(user_input, return_tensors="pt").to(device)
 
48
 
49
  # Interface Gradio avec Blocks
50
  with gr.Blocks() as iface:
51
+ with gr.Row(): # Structure divisée en deux colonnes
52
+ with gr.Column(scale=1): # Partie gauche : Entrées
53
+ gr.Markdown("# Oolel Chatbot")
54
+ gr.Markdown("Génération de réponses basées sur des prompts système personnalisés.")
55
+
56
+ # Textbox pour le message utilisateur
57
+ user_input = gr.Textbox(label="Message utilisateur", placeholder="Entrez votre message ici...")
58
+
59
+ # Dropdown pour choisir un prompt système
60
+ dropdown = gr.Dropdown(
61
+ label="Choisir un prompt système",
62
+ choices=list(system_prompts.keys()), # Liste des options de prompts
63
+ value=None, # Pas de sélection par défaut
64
+ type="value",
65
+ interactive=True
66
+ )
67
+
68
+ # Textbox pour afficher et modifier le message du prompt système
69
+ system_prompt_textbox = gr.Textbox(
70
+ label="Message du prompt système",
71
+ value="", # Valeur par défaut vide
72
+ placeholder="Sélectionnez un prompt système pour afficher son contenu ici..."
73
+ )
74
+
75
+ # Événement pour mettre à jour le prompt dans le Textbox
76
+ dropdown.change(update_system_prompt, inputs=[dropdown], outputs=[system_prompt_textbox])
77
+
78
+ # Slider pour choisir le nombre maximal de tokens
79
+ max_tokens_slider = gr.Slider(50, 500, value=150, label="Nombre max de tokens")
80
+
81
+ # Bouton pour générer la réponse
82
+ generate_button = gr.Button("Générer une réponse")
83
+
84
+ with gr.Column(scale=1): # Partie droite : Réponse générée
85
+ gr.Markdown("## Réponse générée")
86
+ output = gr.Textbox(label="", interactive=False) # Affichage de la réponse générée
87
 
88
  # Connecter le bouton à la fonction de génération
89
  generate_button.click(