Upload monitoring-and-evaluating-agents.ipynb
Browse files
fr/bonus-unit2/monitoring-and-evaluating-agents.ipynb
CHANGED
@@ -214,14 +214,14 @@
|
|
214 |
"\n",
|
215 |
"Dans la section précédente, nous avons appris la différence entre l'évaluation en ligne et hors ligne. Nous allons maintenant voir comment surveiller votre agent en production et l'évaluer en direct.\n",
|
216 |
"\n",
|
217 |
-
"###
|
218 |
"\n",
|
219 |
"1. **Coûts** - L'instrumentation smolagents capture l'utilisation des *tokens*, que vous pouvez transformer en coûts approximatifs en assignant un prix par *token*.\n",
|
220 |
"2. **Latence** - Observez le temps nécessaire à la réalisation de chaque étape ou de l'ensemble de l'exécution.\n",
|
221 |
"3. **Retour utilisateur** - Les utilisateurs peuvent fournir un retour direct (pouce vers le haut/vers le bas) pour aider à affiner ou à corriger l'agent.\n",
|
222 |
"4. ***LLM-as-a-Judge*** - Utilisez un autre LLM pour évaluer les résultats de votre agent en quasi temps réel (par exemple, vérification de la toxicité ou de l'exactitude des résultats).\n",
|
223 |
"\n",
|
224 |
-
"Ci-dessous, nous montrons des exemples de ces
|
225 |
]
|
226 |
},
|
227 |
{
|
@@ -277,7 +277,7 @@
|
|
277 |
" name=\"Smolagent-Trace\",\n",
|
278 |
" ) as span:\n",
|
279 |
" \n",
|
280 |
-
" # Lancez votre
|
281 |
" response = agent.run(\"What is the capital of Germany?\")\n",
|
282 |
" \n",
|
283 |
" # Transmettre des attributs supplémentaires au span\n",
|
@@ -342,7 +342,7 @@
|
|
342 |
" return history\n",
|
343 |
"\n",
|
344 |
"def handle_like(data: gr.LikeData):\n",
|
345 |
-
" # À titre de démonstration, nous
|
346 |
" if data.liked:\n",
|
347 |
" langfuse.create_score(\n",
|
348 |
" value=1,\n",
|
@@ -360,14 +360,14 @@
|
|
360 |
" chatbot = gr.Chatbot(label=\"Chat\", type=\"messages\")\n",
|
361 |
" prompt_box = gr.Textbox(placeholder=\"Type your message...\", label=\"Your message\")\n",
|
362 |
"\n",
|
363 |
-
" # Lorsque l'utilisateur appuie sur
|
364 |
" prompt_box.submit(\n",
|
365 |
" fn=respond,\n",
|
366 |
" inputs=[prompt_box, chatbot],\n",
|
367 |
" outputs=chatbot\n",
|
368 |
" )\n",
|
369 |
"\n",
|
370 |
-
" # Lorsque l'utilisateur clique sur le bouton
|
371 |
" chatbot.like(handle_like, None, None)\n",
|
372 |
"\n",
|
373 |
"demo.launch()\n"
|
@@ -377,7 +377,7 @@
|
|
377 |
"cell_type": "markdown",
|
378 |
"metadata": {},
|
379 |
"source": [
|
380 |
-
"Les
|
381 |
"\n",
|
382 |
""
|
383 |
]
|
@@ -429,9 +429,9 @@
|
|
429 |
"cell_type": "markdown",
|
430 |
"metadata": {},
|
431 |
"source": [
|
432 |
-
"#### 6. Aperçu des
|
433 |
"\n",
|
434 |
-
"Toutes ces
|
435 |
"\n",
|
436 |
""
|
437 |
]
|
@@ -468,7 +468,7 @@
|
|
468 |
"import pandas as pd\n",
|
469 |
"from datasets import load_dataset\n",
|
470 |
"\n",
|
471 |
-
"# Récupérer
|
472 |
"dataset = load_dataset(\"openai/gsm8k\", 'main', split='train')\n",
|
473 |
"df = pd.DataFrame(dataset)\n",
|
474 |
"print(\"First few rows of GSM8K dataset:\")\n",
|
|
|
214 |
"\n",
|
215 |
"Dans la section précédente, nous avons appris la différence entre l'évaluation en ligne et hors ligne. Nous allons maintenant voir comment surveiller votre agent en production et l'évaluer en direct.\n",
|
216 |
"\n",
|
217 |
+
"### Métriques courantes à suivre en production\n",
|
218 |
"\n",
|
219 |
"1. **Coûts** - L'instrumentation smolagents capture l'utilisation des *tokens*, que vous pouvez transformer en coûts approximatifs en assignant un prix par *token*.\n",
|
220 |
"2. **Latence** - Observez le temps nécessaire à la réalisation de chaque étape ou de l'ensemble de l'exécution.\n",
|
221 |
"3. **Retour utilisateur** - Les utilisateurs peuvent fournir un retour direct (pouce vers le haut/vers le bas) pour aider à affiner ou à corriger l'agent.\n",
|
222 |
"4. ***LLM-as-a-Judge*** - Utilisez un autre LLM pour évaluer les résultats de votre agent en quasi temps réel (par exemple, vérification de la toxicité ou de l'exactitude des résultats).\n",
|
223 |
"\n",
|
224 |
+
"Ci-dessous, nous montrons des exemples de ces métriques."
|
225 |
]
|
226 |
},
|
227 |
{
|
|
|
277 |
" name=\"Smolagent-Trace\",\n",
|
278 |
" ) as span:\n",
|
279 |
" \n",
|
280 |
+
" # Lancez votre application ici\n",
|
281 |
" response = agent.run(\"What is the capital of Germany?\")\n",
|
282 |
" \n",
|
283 |
" # Transmettre des attributs supplémentaires au span\n",
|
|
|
342 |
" return history\n",
|
343 |
"\n",
|
344 |
"def handle_like(data: gr.LikeData):\n",
|
345 |
+
" # À titre de démonstration, nous mappons les retours utilisateurs une valeur de 1 (j'aime) ou de 0 (je n'aime pas)\n",
|
346 |
" if data.liked:\n",
|
347 |
" langfuse.create_score(\n",
|
348 |
" value=1,\n",
|
|
|
360 |
" chatbot = gr.Chatbot(label=\"Chat\", type=\"messages\")\n",
|
361 |
" prompt_box = gr.Textbox(placeholder=\"Type your message...\", label=\"Your message\")\n",
|
362 |
"\n",
|
363 |
+
" # Lorsque l'utilisateur appuie sur \"Enter\", nous exécutons 'respond'\n",
|
364 |
" prompt_box.submit(\n",
|
365 |
" fn=respond,\n",
|
366 |
" inputs=[prompt_box, chatbot],\n",
|
367 |
" outputs=chatbot\n",
|
368 |
" )\n",
|
369 |
"\n",
|
370 |
+
" # Lorsque l'utilisateur clique sur le bouton \"J'aime\" d'un message, nous exécutons 'handle_like'\n",
|
371 |
" chatbot.like(handle_like, None, None)\n",
|
372 |
"\n",
|
373 |
"demo.launch()\n"
|
|
|
377 |
"cell_type": "markdown",
|
378 |
"metadata": {},
|
379 |
"source": [
|
380 |
+
"Les retours des utilisateurs sont ensuite saisis dans votre outil d'observabilité :\n",
|
381 |
"\n",
|
382 |
""
|
383 |
]
|
|
|
429 |
"cell_type": "markdown",
|
430 |
"metadata": {},
|
431 |
"source": [
|
432 |
+
"#### 6. Aperçu des métriques d'observabilité\n",
|
433 |
"\n",
|
434 |
+
"Toutes ces métriques peuvent être visualisées ensemble dans des tableaux de bord. Cela vous permet de voir rapidement les performances de votre agent sur plusieurs sessions et vous aide à suivre les mesures de qualité au fil du temps.\n",
|
435 |
"\n",
|
436 |
""
|
437 |
]
|
|
|
468 |
"import pandas as pd\n",
|
469 |
"from datasets import load_dataset\n",
|
470 |
"\n",
|
471 |
+
"# Récupérer GSM8K sur Hugging Face\n",
|
472 |
"dataset = load_dataset(\"openai/gsm8k\", 'main', split='train')\n",
|
473 |
"df = pd.DataFrame(dataset)\n",
|
474 |
"print(\"First few rows of GSM8K dataset:\")\n",
|