Woziii commited on
Commit
7c48f46
1 Parent(s): c41c1e1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +87 -12
app.py CHANGED
@@ -99,9 +99,79 @@ def generate(
99
  outputs.append(text)
100
  yield post_process_response("".join(outputs))
101
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
  chat_interface = gr.ChatInterface(
103
  fn=generate,
104
- additional_inputs_accordion=gr.Accordion(label="⚙️Paramètres & 🕹Inférences", open=False, render=False),
 
 
 
 
 
 
105
  additional_inputs=[
106
  gr.Textbox(
107
  label="System prompt",
@@ -139,20 +209,25 @@ chat_interface = gr.ChatInterface(
139
  ["Salut Lucas, tu es vraiment un bot, c'est ça ?"],
140
  ["Quelle est ta vision de l'IA ?"],
141
  ],
142
- title="Chat avec Lucas Virtuel",
143
- description="Posez vos questions à la version virtuelle de Lucas",
144
- theme="soft",
145
- bubble_full_width=False,
146
- avatar_images=("🧑‍💻", "💭")
147
  )
148
 
149
  with gr.Blocks(css="style.css") as demo:
150
  gr.Markdown(DESCRIPTION)
151
- gr.Markdown("---")
152
- gr.Markdown("## 💬 Commencez à discuter avec Lucas Virtuel")
 
 
 
 
 
 
 
 
 
 
 
153
  chat_interface.render()
154
- gr.Markdown("---")
155
- gr.Markdown("### 📝 Exemples de questions")
156
 
157
- if __name__ == "__main__":
158
- demo.queue(max_size=20, default_concurrency_limit=2).launch(max_threads=10, height=800, width="100%")
 
99
  outputs.append(text)
100
  yield post_process_response("".join(outputs))
101
 
102
+ def vote(data: gr.LikeData, history):
103
+ # Récupérer le dernier message de l'utilisateur (input)
104
+ user_input = history[-1][0] if history else ""
105
+
106
+ # Retirer le préfixe "assistant\n" de la réponse du bot
107
+ # bot_response = data.value.replace("assistant\n", "", 1)
108
+
109
+ # Créer un objet de feedback avec un horodatage
110
+ feedback = {
111
+ "timestamp": datetime.now().isoformat(),
112
+ "user_input": user_input,
113
+ "bot_response": data.value,
114
+ "liked": data.liked
115
+ }
116
+
117
+ # Initialiser l'API Hugging Face
118
+ api = HfApi()
119
+
120
+ # Récupérer le token d'accès depuis les secrets
121
+ token = os.environ.get("HF_TOKEN")
122
+
123
+ # Nom de votre dataset HF personnel
124
+ repo_id = "Woziii/llama-3-8b-chat-me"
125
+
126
+ # Nom du fichier de feedback
127
+ file_name = "feedback.json"
128
+
129
+ try:
130
+ # Récupérer le contenu actuel du fichier s'il existe
131
+ try:
132
+ file_path = hf_hub_download(repo_id=repo_id, filename=file_name, token=token)
133
+ with open(file_path, "r", encoding="utf-8") as file:
134
+ current_feedback = json.load(file)
135
+ if not isinstance(current_feedback, list):
136
+ current_feedback = []
137
+ except Exception as e:
138
+ print(f"Erreur lors du téléchargement du fichier : {str(e)}")
139
+ current_feedback = []
140
+
141
+ # Ajouter le nouveau feedback à la liste existante
142
+ current_feedback.append(feedback)
143
+
144
+ # Convertir en JSON
145
+ updated_content = json.dumps(current_feedback, ensure_ascii=False, indent=2)
146
+
147
+
148
+ # Sauvegarder le contenu mis à jour dans un fichier temporaire
149
+ temp_file_path = "/tmp/feedback.json"
150
+ with open(temp_file_path, "w", encoding="utf-8") as temp_file:
151
+ temp_file.write(updated_content)
152
+
153
+ # Envoyer le fichier mis à jour vers votre dataset HF
154
+ api.upload_file(
155
+ path_or_fileobj=temp_file_path,
156
+ path_in_repo=file_name,
157
+ repo_id=repo_id,
158
+ token=token
159
+ )
160
+
161
+ print(f"Feedback enregistré dans {repo_id}/{file_name}")
162
+ except Exception as e:
163
+ print(f"Erreur lors de l'enregistrement du feedback : {str(e)}")
164
+
165
+ # Dans votre interface Gradio
166
  chat_interface = gr.ChatInterface(
167
  fn=generate,
168
+ chatbot=gr.Chatbot(
169
+ label="Conversation avec Lucas",
170
+ bubble_full_width=False,
171
+ # avatar_images=('👨‍💻', '🧠'),
172
+ height=500
173
+ ),
174
+ additional_inputs_accordion=gr.Accordion(label="⚙️Paramètres & 🕹Inférences", open=False, render=False),
175
  additional_inputs=[
176
  gr.Textbox(
177
  label="System prompt",
 
209
  ["Salut Lucas, tu es vraiment un bot, c'est ça ?"],
210
  ["Quelle est ta vision de l'IA ?"],
211
  ],
 
 
 
 
 
212
  )
213
 
214
  with gr.Blocks(css="style.css") as demo:
215
  gr.Markdown(DESCRIPTION)
216
+ # Ajouter une ligne de texte explicative sur le système de vote
217
+ gr.Markdown("""
218
+ **Notez la qualité des réponses** 👍👎
219
+ Vous pouvez maintenant liker ou disliker les réponses du chatbot.
220
+ Vos notes sont collectées et seront utilisées pour améliorer la qualité du modèle.
221
+ Aucune information permettant de vous identifier n'est conservée.
222
+ """)
223
+ # Texte pour rappeler de nettoyer régulièrement les conversations
224
+ gr.Markdown("""
225
+ **Rappel :** 🧹
226
+ Pensez à nettoyer régulièrement votre conversation 👇🗑. Le modèle est pour l'instant dépourvu de limite contextuelle. En surchargeant sa mémoire 🧠, vous risquez de le rendre fou 🤯.
227
+ """)
228
+
229
  chat_interface.render()
230
+
231
+ chat_interface.chatbot.like(vote, [chat_interface.chatbot], None)
232
 
233
+ demo.queue(max_size=20, default_concurrency_limit=2).launch(max_threads=10, height=800)