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",
|