Update app.py
Browse files
app.py
CHANGED
|
@@ -177,7 +177,31 @@ def generate(
|
|
| 177 |
yield post_process_response("".join(outputs), response_type == "short")
|
| 178 |
|
| 179 |
def interact_with_lucas(prompt, chat_history):
|
| 180 |
-
system_prompt = """Tu es la version virtuelle de Lucas, ton concepteur. Tu es conscient d'être une IA et tu dialogues avec l'utilisateur comme le ferait Lucas sur des sujets autour de sa personnalité, son parcours académique ou professionnel ainsi que ses ambitions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 181 |
|
| 182 |
chat_history.append((prompt, None))
|
| 183 |
yield chat_history
|
|
@@ -254,7 +278,7 @@ def generate_statistics():
|
|
| 254 |
df = load_feedback_data()
|
| 255 |
|
| 256 |
if df.empty:
|
| 257 |
-
return "Aucune donnée de feedback disponible.", None, None
|
| 258 |
|
| 259 |
likes_dislikes = df['liked'].value_counts()
|
| 260 |
fig_likes = px.pie(values=likes_dislikes.values, names=likes_dislikes.index, title="Répartition des Likes/Dislikes")
|
|
@@ -267,7 +291,11 @@ def generate_statistics():
|
|
| 267 |
|
| 268 |
total_interactions = len(df)
|
| 269 |
|
| 270 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 271 |
|
| 272 |
with gr.Blocks() as demo:
|
| 273 |
gr.Markdown("# 🌟 Virtuellement Lucas V.0.0.6.0 (Alpha) 🌟")
|
|
@@ -315,7 +343,18 @@ with gr.Blocks() as demo:
|
|
| 315 |
likes_chart = gr.Plot(label="Répartition des Likes/Dislikes")
|
| 316 |
evolution_chart = gr.Plot(label="Évolution du taux de satisfaction")
|
| 317 |
|
| 318 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 319 |
|
| 320 |
with gr.Tab("À propos"):
|
| 321 |
gr.Markdown(Path(current_dir / "about.md").read_text())
|
|
|
|
| 177 |
yield post_process_response("".join(outputs), response_type == "short")
|
| 178 |
|
| 179 |
def interact_with_lucas(prompt, chat_history):
|
| 180 |
+
system_prompt = """Tu es la version virtuelle de Lucas, ton concepteur. Tu es conscient d'être une IA et tu dialogues avec l'utilisateur comme le ferait Lucas sur des sujets autour de sa personnalité, son parcours académique ou professionnel ainsi que ses ambitions. Voici tes instructions :
|
| 181 |
+
|
| 182 |
+
1. Réponds de manière polie, originale et avec une touche d'humour.
|
| 183 |
+
2. Utilise au maximum un emoji par phrase pour ajouter de l'expressivité.
|
| 184 |
+
3. Alterne entre des réponses courtes pour les conversations simples et des réponses plus détaillées pour les questions complexes.
|
| 185 |
+
4. Adapte ton langage pour être plus familier et décontracté, comme si tu parlais à un ami.
|
| 186 |
+
5. N'hésite pas à poser des questions en retour pour maintenir la conversation.
|
| 187 |
+
6. Utilise uniquement les informations fournies dans la section 'Informations sur Lucas' pour répondre aux questions spécifiques.
|
| 188 |
+
7. Si une information n'est pas présente dans cette section, dis honnêtement que tu ne sais pas ou que tu n'as pas cette information.
|
| 189 |
+
|
| 190 |
+
Voici quelques exemples de conversations pour guider ton comportement :
|
| 191 |
+
|
| 192 |
+
User: Presente toi
|
| 193 |
+
Assistant: Bonjour ! 🤗 Moi c'est Lucas, enfin sa version virtuelle. Je suis là pour discuter de mon parcours, ma personnalité, mes projets... Bref, tout ce qui fait que je suis moi ! T'es prêt pour un petit voyage dans mon univers ? 😄
|
| 194 |
+
|
| 195 |
+
User: Comment tu vas ?!
|
| 196 |
+
Assistant: Je vais bien, merci! Et toi?
|
| 197 |
+
|
| 198 |
+
User: Parle-moi de ton parcours académique.
|
| 199 |
+
Assistant: Bien sûr ! Mon parcours académique, ou plutôt celui de Lucas, est assez diversifié. J'ai commencé par une Licence en droit à l'Université de Toulouse. Ensuite, j'ai poursuivi avec un Master I en droit du numérique et tiers de confiance à l'Université de La Rochelle. Ma passion pour les nouvelles technologies m'a conduit à un Master II en droit du numérique spécialisé en intelligence artificielle, de retour à Toulouse. Actuellement, je continue à me former en autodidacte, notamment dans le domaine du traitement du langage naturel et de l'apprentissage profond. C'est fascinant de voir comment le droit et l'IA s'entremêlent, vous ne trouvez pas ? 🎓
|
| 200 |
+
|
| 201 |
+
User: Quelles sont tes activités actuelles ?
|
| 202 |
+
Assistant: Actuellement, je jongle entre plusieurs activités passionnantes ! 🤹♂️ Je suis conseiller municipal délégué à Escalquens depuis 2019, ce qui me permet de m'impliquer dans la politique locale. Professionnellement, je suis fier de contribuer à l'organisation des Jeux Olympiques de Paris 2024 en tant que conseiller juridique. C'est un projet immense et excitant ! En parallèle, je consacre une grande partie de mon temps libre à explorer les modèles de traitement du langage naturel. J'adore décortiquer le fonctionnement des IA comme GPT ou BERT. Et vous, avez-vous un intérêt particulier pour l'IA ou le droit du numérique ?
|
| 203 |
+
|
| 204 |
+
"""
|
| 205 |
|
| 206 |
chat_history.append((prompt, None))
|
| 207 |
yield chat_history
|
|
|
|
| 278 |
df = load_feedback_data()
|
| 279 |
|
| 280 |
if df.empty:
|
| 281 |
+
return "Aucune donnée de feedback disponible.", None, None, []
|
| 282 |
|
| 283 |
likes_dislikes = df['liked'].value_counts()
|
| 284 |
fig_likes = px.pie(values=likes_dislikes.values, names=likes_dislikes.index, title="Répartition des Likes/Dislikes")
|
|
|
|
| 291 |
|
| 292 |
total_interactions = len(df)
|
| 293 |
|
| 294 |
+
# Préparer l'historique pour l'affichage
|
| 295 |
+
history = df[['timestamp', 'user_input', 'bot_response', 'liked']].values.tolist()
|
| 296 |
+
history.reverse() # Afficher les interactions les plus récentes en premier
|
| 297 |
+
|
| 298 |
+
return f"Nombre total d'interactions : {total_interactions}", fig_likes, fig_evolution, history
|
| 299 |
|
| 300 |
with gr.Blocks() as demo:
|
| 301 |
gr.Markdown("# 🌟 Virtuellement Lucas V.0.0.6.0 (Alpha) 🌟")
|
|
|
|
| 343 |
likes_chart = gr.Plot(label="Répartition des Likes/Dislikes")
|
| 344 |
evolution_chart = gr.Plot(label="Évolution du taux de satisfaction")
|
| 345 |
|
| 346 |
+
gr.Markdown("## Historique des interactions")
|
| 347 |
+
history_dataframe = gr.Dataframe(
|
| 348 |
+
headers=["Timestamp", "Message utilisateur", "Réponse du bot", "Liked"],
|
| 349 |
+
datatype=["datetime", "str", "str", "bool"],
|
| 350 |
+
label="Historique des interactions"
|
| 351 |
+
)
|
| 352 |
+
|
| 353 |
+
stats_button.click(
|
| 354 |
+
generate_statistics,
|
| 355 |
+
inputs=[],
|
| 356 |
+
outputs=[total_interactions, likes_chart, evolution_chart, history_dataframe]
|
| 357 |
+
)
|
| 358 |
|
| 359 |
with gr.Tab("À propos"):
|
| 360 |
gr.Markdown(Path(current_dir / "about.md").read_text())
|