diff --git a/COURSE_CATALOG.generated.json b/COURSE_CATALOG.generated.json
index cd1b8704d..ce1233894 100644
--- a/COURSE_CATALOG.generated.json
+++ b/COURSE_CATALOG.generated.json
@@ -88,7 +88,7 @@
"cells_code": 8,
"cells_markdown": 13,
"cells_with_outputs": 4,
- "cells_without_outputs": 3,
+ "cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -111,7 +111,7 @@
"cells_total": 66,
"cells_code": 20,
"cells_markdown": 46,
- "cells_with_outputs": 20,
+ "cells_with_outputs": 18,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -135,7 +135,7 @@
"cells_total": 34,
"cells_code": 14,
"cells_markdown": 20,
- "cells_with_outputs": 11,
+ "cells_with_outputs": 9,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -159,7 +159,7 @@
"cells_total": 47,
"cells_code": 15,
"cells_markdown": 32,
- "cells_with_outputs": 9,
+ "cells_with_outputs": 5,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -207,7 +207,7 @@
"cells_total": 38,
"cells_code": 14,
"cells_markdown": 24,
- "cells_with_outputs": 14,
+ "cells_with_outputs": 13,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": true,
@@ -255,7 +255,7 @@
"cells_total": 51,
"cells_code": 24,
"cells_markdown": 27,
- "cells_with_outputs": 24,
+ "cells_with_outputs": 21,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -303,7 +303,7 @@
"cells_total": 29,
"cells_code": 13,
"cells_markdown": 16,
- "cells_with_outputs": 13,
+ "cells_with_outputs": 12,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -352,7 +352,7 @@
"cells_code": 10,
"cells_markdown": 22,
"cells_with_outputs": 9,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -375,7 +375,7 @@
"cells_total": 45,
"cells_code": 16,
"cells_markdown": 29,
- "cells_with_outputs": 14,
+ "cells_with_outputs": 13,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -447,7 +447,7 @@
"cells_total": 30,
"cells_code": 12,
"cells_markdown": 18,
- "cells_with_outputs": 11,
+ "cells_with_outputs": 10,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -519,7 +519,7 @@
"cells_total": 27,
"cells_code": 12,
"cells_markdown": 15,
- "cells_with_outputs": 11,
+ "cells_with_outputs": 10,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -591,7 +591,7 @@
"cells_total": 32,
"cells_code": 14,
"cells_markdown": 18,
- "cells_with_outputs": 10,
+ "cells_with_outputs": 8,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -615,7 +615,7 @@
"cells_total": 39,
"cells_code": 12,
"cells_markdown": 27,
- "cells_with_outputs": 12,
+ "cells_with_outputs": 10,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -664,7 +664,7 @@
"cells_code": 16,
"cells_markdown": 27,
"cells_with_outputs": 13,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -687,7 +687,7 @@
"cells_total": 67,
"cells_code": 21,
"cells_markdown": 46,
- "cells_with_outputs": 21,
+ "cells_with_outputs": 16,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -1383,7 +1383,7 @@
"cells_total": 21,
"cells_code": 10,
"cells_markdown": 11,
- "cells_with_outputs": 8,
+ "cells_with_outputs": 7,
"cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": false,
@@ -1503,7 +1503,7 @@
"cells_total": 26,
"cells_code": 10,
"cells_markdown": 16,
- "cells_with_outputs": 8,
+ "cells_with_outputs": 7,
"cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": false,
@@ -1695,7 +1695,7 @@
"cells_total": 25,
"cells_code": 13,
"cells_markdown": 12,
- "cells_with_outputs": 13,
+ "cells_with_outputs": 10,
"cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": true,
@@ -1719,7 +1719,7 @@
"cells_total": 31,
"cells_code": 16,
"cells_markdown": 15,
- "cells_with_outputs": 16,
+ "cells_with_outputs": 13,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": true,
@@ -1791,7 +1791,7 @@
"cells_total": 40,
"cells_code": 16,
"cells_markdown": 24,
- "cells_with_outputs": 15,
+ "cells_with_outputs": 14,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": true,
@@ -1840,7 +1840,7 @@
"cells_code": 12,
"cells_markdown": 13,
"cells_with_outputs": 9,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": false,
"requires_cloud": false,
@@ -1864,7 +1864,7 @@
"cells_code": 12,
"cells_markdown": 13,
"cells_with_outputs": 9,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": false,
"requires_cloud": false,
@@ -2032,7 +2032,7 @@
"cells_code": 5,
"cells_markdown": 8,
"cells_with_outputs": 2,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": true,
"requires_cloud": false,
@@ -2824,7 +2824,7 @@
"cells_code": 17,
"cells_markdown": 39,
"cells_with_outputs": 16,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": false,
"requires_cloud": false,
@@ -3327,7 +3327,7 @@
"cells_total": 29,
"cells_code": 14,
"cells_markdown": 15,
- "cells_with_outputs": 12,
+ "cells_with_outputs": 10,
"cells_without_outputs": 1,
"requires_api": true,
"requires_gpu": true,
@@ -3352,7 +3352,7 @@
"cells_code": 13,
"cells_markdown": 16,
"cells_with_outputs": 9,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": true,
"requires_cloud": false,
@@ -3423,7 +3423,7 @@
"cells_total": 28,
"cells_code": 14,
"cells_markdown": 14,
- "cells_with_outputs": 10,
+ "cells_with_outputs": 9,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": true,
@@ -3592,7 +3592,7 @@
"cells_code": 11,
"cells_markdown": 15,
"cells_with_outputs": 10,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -3615,7 +3615,7 @@
"cells_total": 11,
"cells_code": 4,
"cells_markdown": 7,
- "cells_with_outputs": 4,
+ "cells_with_outputs": 3,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -3639,7 +3639,7 @@
"cells_total": 13,
"cells_code": 5,
"cells_markdown": 8,
- "cells_with_outputs": 5,
+ "cells_with_outputs": 4,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -3663,7 +3663,7 @@
"cells_total": 26,
"cells_code": 10,
"cells_markdown": 16,
- "cells_with_outputs": 8,
+ "cells_with_outputs": 7,
"cells_without_outputs": 1,
"requires_api": true,
"requires_gpu": false,
@@ -3711,7 +3711,7 @@
"cells_total": 24,
"cells_code": 11,
"cells_markdown": 13,
- "cells_with_outputs": 8,
+ "cells_with_outputs": 7,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -3783,7 +3783,7 @@
"cells_total": 22,
"cells_code": 10,
"cells_markdown": 12,
- "cells_with_outputs": 4,
+ "cells_with_outputs": 3,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -3903,7 +3903,7 @@
"cells_total": 18,
"cells_code": 8,
"cells_markdown": 10,
- "cells_with_outputs": 8,
+ "cells_with_outputs": 6,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -4263,7 +4263,7 @@
"cells_total": 18,
"cells_code": 7,
"cells_markdown": 11,
- "cells_with_outputs": 7,
+ "cells_with_outputs": 6,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -4455,7 +4455,7 @@
"cells_total": 36,
"cells_code": 11,
"cells_markdown": 25,
- "cells_with_outputs": 11,
+ "cells_with_outputs": 10,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -4527,7 +4527,7 @@
"cells_total": 19,
"cells_code": 8,
"cells_markdown": 11,
- "cells_with_outputs": 8,
+ "cells_with_outputs": 7,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -4575,7 +4575,7 @@
"cells_total": 14,
"cells_code": 6,
"cells_markdown": 8,
- "cells_with_outputs": 6,
+ "cells_with_outputs": 5,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -4599,7 +4599,7 @@
"cells_total": 21,
"cells_code": 9,
"cells_markdown": 12,
- "cells_with_outputs": 9,
+ "cells_with_outputs": 8,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -4623,7 +4623,7 @@
"cells_total": 31,
"cells_code": 13,
"cells_markdown": 18,
- "cells_with_outputs": 13,
+ "cells_with_outputs": 11,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -4647,7 +4647,7 @@
"cells_total": 27,
"cells_code": 12,
"cells_markdown": 15,
- "cells_with_outputs": 12,
+ "cells_with_outputs": 10,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -4671,7 +4671,7 @@
"cells_total": 18,
"cells_code": 8,
"cells_markdown": 10,
- "cells_with_outputs": 8,
+ "cells_with_outputs": 7,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -4695,7 +4695,7 @@
"cells_total": 31,
"cells_code": 14,
"cells_markdown": 17,
- "cells_with_outputs": 14,
+ "cells_with_outputs": 13,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -4719,7 +4719,7 @@
"cells_total": 29,
"cells_code": 13,
"cells_markdown": 16,
- "cells_with_outputs": 13,
+ "cells_with_outputs": 12,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -6592,7 +6592,7 @@
"cells_code": 11,
"cells_markdown": 41,
"cells_with_outputs": 0,
- "cells_without_outputs": 11,
+ "cells_without_outputs": 10,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": true,
@@ -7047,7 +7047,7 @@
"cells_total": 27,
"cells_code": 13,
"cells_markdown": 14,
- "cells_with_outputs": 13,
+ "cells_with_outputs": 10,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -7335,7 +7335,7 @@
"cells_total": 19,
"cells_code": 10,
"cells_markdown": 9,
- "cells_with_outputs": 10,
+ "cells_with_outputs": 9,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -7983,7 +7983,7 @@
"cells_total": 59,
"cells_code": 25,
"cells_markdown": 34,
- "cells_with_outputs": 24,
+ "cells_with_outputs": 21,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -8001,12 +8001,12 @@
"maturity": "PRODUCTION",
"duree_estimee": "45min",
"owner_logique": "po-2025",
- "last_validation": "2026-05-30",
+ "last_validation": "2026-05-31",
"last_validator": "jsboige@gmail.com",
- "issue_pr_associee": "#1901",
- "cells_total": 62,
+ "issue_pr_associee": "#1931",
+ "cells_total": 63,
"cells_code": 25,
- "cells_markdown": 37,
+ "cells_markdown": 38,
"cells_with_outputs": 20,
"cells_without_outputs": 0,
"requires_api": false,
@@ -8031,7 +8031,7 @@
"cells_total": 47,
"cells_code": 20,
"cells_markdown": 27,
- "cells_with_outputs": 17,
+ "cells_with_outputs": 16,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -8319,7 +8319,7 @@
"cells_total": 49,
"cells_code": 18,
"cells_markdown": 31,
- "cells_with_outputs": 18,
+ "cells_with_outputs": 12,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -8343,7 +8343,7 @@
"cells_total": 39,
"cells_code": 18,
"cells_markdown": 21,
- "cells_with_outputs": 9,
+ "cells_with_outputs": 5,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -8367,7 +8367,7 @@
"cells_total": 41,
"cells_code": 17,
"cells_markdown": 24,
- "cells_with_outputs": 17,
+ "cells_with_outputs": 16,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -8415,7 +8415,7 @@
"cells_total": 49,
"cells_code": 18,
"cells_markdown": 31,
- "cells_with_outputs": 18,
+ "cells_with_outputs": 16,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -8487,7 +8487,7 @@
"cells_total": 67,
"cells_code": 29,
"cells_markdown": 38,
- "cells_with_outputs": 21,
+ "cells_with_outputs": 20,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -8535,7 +8535,7 @@
"cells_total": 62,
"cells_code": 23,
"cells_markdown": 39,
- "cells_with_outputs": 23,
+ "cells_with_outputs": 19,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -8583,7 +8583,7 @@
"cells_total": 38,
"cells_code": 14,
"cells_markdown": 24,
- "cells_with_outputs": 11,
+ "cells_with_outputs": 7,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -8607,7 +8607,7 @@
"cells_total": 42,
"cells_code": 16,
"cells_markdown": 26,
- "cells_with_outputs": 14,
+ "cells_with_outputs": 9,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -8631,7 +8631,7 @@
"cells_total": 52,
"cells_code": 17,
"cells_markdown": 35,
- "cells_with_outputs": 17,
+ "cells_with_outputs": 16,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -8823,7 +8823,7 @@
"cells_total": 53,
"cells_code": 20,
"cells_markdown": 33,
- "cells_with_outputs": 16,
+ "cells_with_outputs": 14,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": true,
@@ -8913,12 +8913,12 @@
"maturity": "DRAFT",
"duree_estimee": "30min",
"owner_logique": "po-2025",
- "last_validation": "2026-05-29",
+ "last_validation": "2026-05-31",
"last_validator": "jsboige@gmail.com",
- "issue_pr_associee": "#1769",
- "cells_total": 25,
+ "issue_pr_associee": "#1931",
+ "cells_total": 26,
"cells_code": 11,
- "cells_markdown": 14,
+ "cells_markdown": 15,
"cells_with_outputs": 5,
"cells_without_outputs": 3,
"requires_api": false,
@@ -9087,7 +9087,7 @@
"cells_total": 33,
"cells_code": 10,
"cells_markdown": 23,
- "cells_with_outputs": 10,
+ "cells_with_outputs": 9,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -9135,7 +9135,7 @@
"cells_total": 23,
"cells_code": 8,
"cells_markdown": 15,
- "cells_with_outputs": 8,
+ "cells_with_outputs": 7,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -9231,7 +9231,7 @@
"cells_total": 28,
"cells_code": 10,
"cells_markdown": 18,
- "cells_with_outputs": 10,
+ "cells_with_outputs": 9,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -9255,8 +9255,8 @@
"cells_total": 55,
"cells_code": 22,
"cells_markdown": 33,
- "cells_with_outputs": 19,
- "cells_without_outputs": 1,
+ "cells_with_outputs": 17,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": true,
"requires_cloud": false,
@@ -9297,13 +9297,13 @@
"maturity": "BETA",
"duree_estimee": "45min",
"owner_logique": "po-2023",
- "last_validation": "2026-05-30",
+ "last_validation": "2026-05-31",
"last_validator": "jsboige@gmail.com",
- "issue_pr_associee": "#1871",
- "cells_total": 59,
+ "issue_pr_associee": "#1931",
+ "cells_total": 60,
"cells_code": 21,
- "cells_markdown": 38,
- "cells_with_outputs": 18,
+ "cells_markdown": 39,
+ "cells_with_outputs": 17,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -9399,7 +9399,7 @@
"cells_total": 26,
"cells_code": 9,
"cells_markdown": 17,
- "cells_with_outputs": 9,
+ "cells_with_outputs": 8,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -9495,7 +9495,7 @@
"cells_total": 39,
"cells_code": 12,
"cells_markdown": 27,
- "cells_with_outputs": 12,
+ "cells_with_outputs": 11,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -9726,7 +9726,7 @@
"sous_serie": "Argument_Analysis",
"kernel": "Python 3",
"status": "DEMO",
- "maturity": "BETA",
+ "maturity": "PRODUCTION",
"duree_estimee": "15min",
"owner_logique": "po-2024",
"last_validation": "2026-05-24",
@@ -9735,8 +9735,8 @@
"cells_total": 13,
"cells_code": 4,
"cells_markdown": 9,
- "cells_with_outputs": 2,
- "cells_without_outputs": 1,
+ "cells_with_outputs": 3,
+ "cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": false,
"requires_cloud": false,
@@ -9750,7 +9750,7 @@
"sous_serie": "Argument_Analysis",
"kernel": "Python 3",
"status": "READY",
- "maturity": "BETA",
+ "maturity": "PRODUCTION",
"duree_estimee": "15min",
"owner_logique": "po-2024",
"last_validation": "2026-05-24",
@@ -9759,8 +9759,8 @@
"cells_total": 17,
"cells_code": 4,
"cells_markdown": 13,
- "cells_with_outputs": 2,
- "cells_without_outputs": 1,
+ "cells_with_outputs": 3,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -9773,18 +9773,18 @@
"serie": "SymbolicAI",
"sous_serie": "Argument_Analysis",
"kernel": "Python 3",
- "status": "READY",
- "maturity": "BETA",
+ "status": "BROKEN",
+ "maturity": "ALPHA",
"duree_estimee": "15min",
"owner_logique": "po-2024",
"last_validation": "2026-05-31",
"last_validator": "jsboige@gmail.com",
"issue_pr_associee": "#1902",
- "cells_total": 19,
+ "cells_total": 21,
"cells_code": 3,
- "cells_markdown": 16,
- "cells_with_outputs": 3,
- "cells_without_outputs": 0,
+ "cells_markdown": 18,
+ "cells_with_outputs": 1,
+ "cells_without_outputs": 2,
"requires_api": true,
"requires_gpu": false,
"requires_cloud": false,
@@ -9880,7 +9880,7 @@
"cells_code": 26,
"cells_markdown": 47,
"cells_with_outputs": 24,
- "cells_without_outputs": 2,
+ "cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": false,
"requires_cloud": false,
@@ -9903,7 +9903,7 @@
"cells_total": 46,
"cells_code": 15,
"cells_markdown": 31,
- "cells_with_outputs": 15,
+ "cells_with_outputs": 14,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": true,
@@ -9921,9 +9921,9 @@
"maturity": "PRODUCTION",
"duree_estimee": "30min",
"owner_logique": "po-2024",
- "last_validation": "2026-05-30",
+ "last_validation": "2026-05-31",
"last_validator": "jsboige@gmail.com",
- "issue_pr_associee": "#1870",
+ "issue_pr_associee": "#1843, #1940",
"cells_total": 34,
"cells_code": 10,
"cells_markdown": 24,
@@ -10168,7 +10168,7 @@
"cells_code": 17,
"cells_markdown": 20,
"cells_with_outputs": 13,
- "cells_without_outputs": 3,
+ "cells_without_outputs": 1,
"requires_api": true,
"requires_gpu": false,
"requires_cloud": false,
@@ -10311,7 +10311,7 @@
"cells_total": 43,
"cells_code": 13,
"cells_markdown": 30,
- "cells_with_outputs": 13,
+ "cells_with_outputs": 12,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -10408,7 +10408,7 @@
"cells_code": 18,
"cells_markdown": 38,
"cells_with_outputs": 15,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -10425,9 +10425,9 @@
"maturity": "PRODUCTION",
"duree_estimee": "45min",
"owner_logique": "po-2024",
- "last_validation": "2026-05-24",
+ "last_validation": "2026-05-31",
"last_validator": "jsboige@gmail.com",
- "issue_pr_associee": "#1455, #1547",
+ "issue_pr_associee": "#1934",
"cells_total": 47,
"cells_code": 16,
"cells_markdown": 31,
@@ -10455,7 +10455,7 @@
"cells_total": 74,
"cells_code": 21,
"cells_markdown": 53,
- "cells_with_outputs": 21,
+ "cells_with_outputs": 20,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -10473,9 +10473,9 @@
"maturity": "PRODUCTION",
"duree_estimee": "30min",
"owner_logique": "po-2024",
- "last_validation": "2026-05-30",
+ "last_validation": "2026-05-31",
"last_validator": "jsboige@gmail.com",
- "issue_pr_associee": "#1899",
+ "issue_pr_associee": "#1934",
"cells_total": 42,
"cells_code": 12,
"cells_markdown": 30,
@@ -10503,7 +10503,7 @@
"cells_total": 44,
"cells_code": 15,
"cells_markdown": 29,
- "cells_with_outputs": 15,
+ "cells_with_outputs": 12,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -10527,7 +10527,7 @@
"cells_total": 48,
"cells_code": 12,
"cells_markdown": 36,
- "cells_with_outputs": 10,
+ "cells_with_outputs": 9,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -10551,7 +10551,7 @@
"cells_total": 44,
"cells_code": 16,
"cells_markdown": 28,
- "cells_with_outputs": 13,
+ "cells_with_outputs": 12,
"cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": false,
@@ -10575,7 +10575,7 @@
"cells_total": 57,
"cells_code": 17,
"cells_markdown": 40,
- "cells_with_outputs": 14,
+ "cells_with_outputs": 13,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -10593,9 +10593,9 @@
"maturity": "PRODUCTION",
"duree_estimee": "45min",
"owner_logique": "po-2024",
- "last_validation": "2026-05-30",
+ "last_validation": "2026-05-31",
"last_validator": "jsboige@gmail.com",
- "issue_pr_associee": "#1899",
+ "issue_pr_associee": "#1934",
"cells_total": 53,
"cells_code": 11,
"cells_markdown": 42,
@@ -10671,7 +10671,7 @@
"cells_total": 64,
"cells_code": 19,
"cells_markdown": 45,
- "cells_with_outputs": 19,
+ "cells_with_outputs": 17,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -10695,7 +10695,7 @@
"cells_total": 92,
"cells_code": 31,
"cells_markdown": 61,
- "cells_with_outputs": 31,
+ "cells_with_outputs": 24,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -10719,7 +10719,7 @@
"cells_total": 53,
"cells_code": 18,
"cells_markdown": 35,
- "cells_with_outputs": 18,
+ "cells_with_outputs": 14,
"cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": false,
@@ -10743,8 +10743,8 @@
"cells_total": 72,
"cells_code": 25,
"cells_markdown": 47,
- "cells_with_outputs": 21,
- "cells_without_outputs": 4,
+ "cells_with_outputs": 18,
+ "cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -10863,7 +10863,7 @@
"cells_total": 47,
"cells_code": 16,
"cells_markdown": 31,
- "cells_with_outputs": 16,
+ "cells_with_outputs": 11,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -10983,7 +10983,7 @@
"cells_total": 44,
"cells_code": 16,
"cells_markdown": 28,
- "cells_with_outputs": 16,
+ "cells_with_outputs": 11,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11007,7 +11007,7 @@
"cells_total": 52,
"cells_code": 19,
"cells_markdown": 33,
- "cells_with_outputs": 19,
+ "cells_with_outputs": 16,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11031,7 +11031,7 @@
"cells_total": 77,
"cells_code": 30,
"cells_markdown": 47,
- "cells_with_outputs": 30,
+ "cells_with_outputs": 27,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11056,7 +11056,7 @@
"cells_code": 12,
"cells_markdown": 24,
"cells_with_outputs": 11,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -11103,7 +11103,7 @@
"cells_total": 28,
"cells_code": 9,
"cells_markdown": 19,
- "cells_with_outputs": 9,
+ "cells_with_outputs": 8,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11416,7 +11416,7 @@
"cells_code": 10,
"cells_markdown": 25,
"cells_with_outputs": 9,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -11439,7 +11439,7 @@
"cells_total": 38,
"cells_code": 10,
"cells_markdown": 28,
- "cells_with_outputs": 10,
+ "cells_with_outputs": 9,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11464,7 +11464,7 @@
"cells_code": 9,
"cells_markdown": 22,
"cells_with_outputs": 8,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -11512,7 +11512,7 @@
"cells_code": 11,
"cells_markdown": 30,
"cells_with_outputs": 10,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -11536,7 +11536,7 @@
"cells_code": 10,
"cells_markdown": 24,
"cells_with_outputs": 9,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -11632,7 +11632,7 @@
"cells_code": 9,
"cells_markdown": 24,
"cells_with_outputs": 8,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -11656,7 +11656,7 @@
"cells_code": 5,
"cells_markdown": 16,
"cells_with_outputs": 4,
- "cells_without_outputs": 1,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -11679,8 +11679,8 @@
"cells_total": 28,
"cells_code": 5,
"cells_markdown": 23,
- "cells_with_outputs": 3,
- "cells_without_outputs": 2,
+ "cells_with_outputs": 2,
+ "cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
"requires_cloud": false,
@@ -11703,7 +11703,7 @@
"cells_total": 38,
"cells_code": 12,
"cells_markdown": 26,
- "cells_with_outputs": 12,
+ "cells_with_outputs": 11,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11727,7 +11727,7 @@
"cells_total": 41,
"cells_code": 15,
"cells_markdown": 26,
- "cells_with_outputs": 15,
+ "cells_with_outputs": 14,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11799,7 +11799,7 @@
"cells_total": 31,
"cells_code": 10,
"cells_markdown": 21,
- "cells_with_outputs": 10,
+ "cells_with_outputs": 7,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11823,7 +11823,7 @@
"cells_total": 40,
"cells_code": 13,
"cells_markdown": 27,
- "cells_with_outputs": 13,
+ "cells_with_outputs": 11,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11847,7 +11847,7 @@
"cells_total": 38,
"cells_code": 16,
"cells_markdown": 22,
- "cells_with_outputs": 15,
+ "cells_with_outputs": 14,
"cells_without_outputs": 0,
"requires_api": true,
"requires_gpu": false,
@@ -11871,7 +11871,7 @@
"cells_total": 40,
"cells_code": 15,
"cells_markdown": 25,
- "cells_with_outputs": 15,
+ "cells_with_outputs": 14,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11895,7 +11895,7 @@
"cells_total": 51,
"cells_code": 17,
"cells_markdown": 34,
- "cells_with_outputs": 17,
+ "cells_with_outputs": 16,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11919,7 +11919,7 @@
"cells_total": 40,
"cells_code": 14,
"cells_markdown": 26,
- "cells_with_outputs": 14,
+ "cells_with_outputs": 13,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11943,7 +11943,7 @@
"cells_total": 34,
"cells_code": 11,
"cells_markdown": 23,
- "cells_with_outputs": 11,
+ "cells_with_outputs": 10,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -11991,7 +11991,7 @@
"cells_total": 23,
"cells_code": 8,
"cells_markdown": 15,
- "cells_with_outputs": 7,
+ "cells_with_outputs": 6,
"cells_without_outputs": 1,
"requires_api": false,
"requires_gpu": false,
@@ -12015,7 +12015,7 @@
"cells_total": 33,
"cells_code": 10,
"cells_markdown": 23,
- "cells_with_outputs": 10,
+ "cells_with_outputs": 9,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -12039,7 +12039,7 @@
"cells_total": 17,
"cells_code": 6,
"cells_markdown": 11,
- "cells_with_outputs": 6,
+ "cells_with_outputs": 5,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -12063,7 +12063,7 @@
"cells_total": 21,
"cells_code": 6,
"cells_markdown": 15,
- "cells_with_outputs": 5,
+ "cells_with_outputs": 4,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
@@ -12087,7 +12087,7 @@
"cells_total": 21,
"cells_code": 7,
"cells_markdown": 14,
- "cells_with_outputs": 6,
+ "cells_with_outputs": 5,
"cells_without_outputs": 0,
"requires_api": false,
"requires_gpu": false,
diff --git a/COURSE_CATALOG.generated.md b/COURSE_CATALOG.generated.md
index 8b88c185c..a12ba6213 100644
--- a/COURSE_CATALOG.generated.md
+++ b/COURSE_CATALOG.generated.md
@@ -1,26 +1,26 @@
# CoursIA Notebook Catalog
-Generated: 2026-05-29 06:51
+Generated: 2026-05-31 21:46
Total notebooks: 504
## Status Summary
-- **READY**: 367
+- **READY**: 366
- **DEMO**: 124
- **RESEARCH**: 0
-- **BROKEN**: 13
+- **BROKEN**: 14
## Maturity Summary
-- **PRODUCTION**: 160
-- **BETA**: 297
+- **PRODUCTION**: 359
+- **BETA**: 104
- **TEMPLATE**: 4
-- **ALPHA**: 38
+- **ALPHA**: 32
- **DRAFT**: 5
## By Series
-### GenAI (120 notebooks) — BROKEN:1, DEMO:79, READY:40 | ALPHA:4, BETA:75, DRAFT:3, PRODUCTION:35, TEMPLATE:3
+### GenAI (120 notebooks) — BROKEN:1, DEMO:80, READY:39 | ALPHA:4, BETA:35, DRAFT:3, PRODUCTION:75, TEMPLATE:3
| # | Notebook | Kernel | Status | Maturity | Duration | Owner |
|---|----------|--------|--------|----------|----------|-------|
@@ -29,35 +29,35 @@ Total notebooks: 504
| 3 | 🔗 Configuration des API Endpoints | Python 3 | DEMO | BETA | 30min | po-2025 |
| 4 | ✅ Environment Validation - GenAI | Python 3 | DEMO | BETA | 30min | po-2025 |
| 5 | 00-5: ComfyUI Local - Test Rapide | Python 3 | READY | PRODUCTION | 30min | po-2025 |
-| 6 | Deploiement Docker Local des Services GenAI | Python 3 | DEMO | BETA | 45min | po-2025 |
+| 6 | Deploiement Docker Local des Services GenAI | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 7 | GenAI E2E Quant Validation | Python 3 | READY | BETA | 30min | po-2025 |
-| 8 | OpenAI TTS - Synthese Vocale par API | Python 3 | DEMO | BETA | 45min | po-2025 |
+| 8 | OpenAI TTS - Synthese Vocale par API | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 9 | OpenAI Whisper STT - Reconnaissance Vocale par API | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
-| 10 | Operations de Base sur l'Audio | Python 3 | DEMO | BETA | 45min | po-2025 |
+| 10 | Operations de Base sur l'Audio | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 11 | Whisper Local - Transcription GPU avec faster-whis | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
-| 12 | Kokoro TTS Local - Synthese Vocale Legere | Python 3 | DEMO | BETA | 45min | po-2025 |
+| 12 | Kokoro TTS Local - Synthese Vocale Legere | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 13 | Chatterbox TTS - Synthese Vocale Expressive | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 14 | XTTS v2 - Clonage Vocal Zero-Shot | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
-| 15 | MusicGen - Generation Musicale par IA | Python 3 | DEMO | BETA | 45min | po-2025 |
+| 15 | MusicGen - Generation Musicale par IA | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 16 | Demucs v4 - Separation de Sources Audio | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 17 | Multi-Model TTS Gateway - Synthese Vocale Multi-Mo | Python 3 | DEMO | BETA | 30min | po-2025 |
| 18 | Generation MIDI avec midi-model (SkyTNT) | Python 3 | DEMO | BETA | 45min | po-2025 |
| 19 | Generation de Chansons Completes : YuE vs SongGene | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 20 | TTS Expressif : Fish S2 Pro et Modeles SOTA | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 21 | Ace-Step v1.5 - Generation Musicale avec Paroles | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 22 | Comparaison Multi-Modeles Audio | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 23 | Orchestration de Pipelines Audio | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 24 | OpenAI Realtime Voice API | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 25 | Creation de Contenu Audio Educatif | Python 3 | DEMO | BETA | 30min | po-2025 |
+| 22 | Comparaison Multi-Modeles Audio | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
+| 23 | Orchestration de Pipelines Audio | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
+| 24 | OpenAI Realtime Voice API | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
+| 25 | Creation de Contenu Audio Educatif | Python 3 | DEMO | PRODUCTION | 30min | po-2025 |
| 26 | P3 - Annotation Prosodique pour TTS Agentique | Python 3 | READY | PRODUCTION | 30min | po-2025 |
-| 27 | P4 — Generation TTS pour Audiobook | Python 3 | READY | BETA | 45min | po-2025 |
+| 27 | P4 — Generation TTS pour Audiobook | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 28 | P5 — Compilation Audio pour Audiobook | Python 3 | READY | PRODUCTION | 15min | po-2025 |
-| 29 | Audiobook Agentique avec FishAudio S2-Pro | Python 3 | DEMO | BETA | 30min | po-2025 |
+| 29 | Audiobook Agentique avec FishAudio S2-Pro | Python 3 | DEMO | PRODUCTION | 30min | po-2025 |
| 30 | Pipeline de Transcription et Sous-titrage | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
-| 31 | Workflow de Composition Musicale | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 32 | Synchronisation Audio-Video (Passerelle) | Python 3 | DEMO | BETA | 30min | po-2025 |
+| 31 | Workflow de Composition Musicale | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
+| 32 | Synchronisation Audio-Video (Passerelle) | Python 3 | DEMO | PRODUCTION | 30min | po-2025 |
| 33 | Live Coding Musical pilote par LLM | Python 3 | DEMO | PRODUCTION | 30min | po-2025 |
-| 34 | Pipeline Audiobook Agentique | Python 3 | DEMO | BETA | 30min | po-2025 |
+| 34 | Pipeline Audiobook Agentique | Python 3 | DEMO | PRODUCTION | 30min | po-2025 |
| 35 | Benchmark TTS : Comparaison des Modeles Vocaux pou | Python 3 | READY | BETA | 45min | po-2025 |
| 36 | Lecture Analytique pour Audiobook | Python 3 | READY | PRODUCTION | 30min | po-2025 |
| 37 | Voice Casting : Attribution de voix TTS par person | Python 3 | READY | BETA | 30min | po-2025 |
@@ -65,25 +65,25 @@ Total notebooks: 504
| 39 | Jeu de devinette : Père Fouras vs Laurent Jalabert | Python 3 | DEMO | BETA | 30min | po-2025 |
| 40 | Docteur vs ChatGPT : Chatbot medical multi-agent | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 41 | Introduction - receipe maker | Python 3 | DEMO | PRODUCTION | 30min | po-2025 |
-| 42 | FT-01 : Introduction au Fine-Tuning | Python 3 | READY | BETA | 45min | po-2025 |
-| 43 | FT-02 : QLoRA — Fine-Tuning avec Quantization | Python 3 | READY | BETA | 45min | po-2025 |
-| 44 | FT-03 : Supervised Fine-Tuning (SFT) — Instruction | Python 3 | READY | BETA | 45min | po-2025 |
-| 45 | FT-04 : RLHF et Alignement — Preferences Humaines | Python 3 | READY | BETA | 45min | po-2025 |
+| 42 | FT-01 : Introduction au Fine-Tuning | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 43 | FT-02 : QLoRA — Fine-Tuning avec Quantization | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 44 | FT-03 : Supervised Fine-Tuning (SFT) — Instruction | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 45 | FT-04 : RLHF et Alignement — Preferences Humaines | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 46 | FT-05 : Fusion et Routage de Modeles -- Combiner l | Python 3 | DEMO | BETA | 45min | po-2025 |
| 47 | OpenAI DALL-E 3 - Generation d'Images | Python 3 | DEMO | BETA | 30min | po-2025 |
-| 48 | 🤖 GPT-5 Multimodal - Analyse et Génération d'Image | Python 3 | DEMO | BETA | 30min | po-2025 |
-| 49 | 🖼️ Opérations de Base sur les Images | Python 3 | DEMO | BETA | 30min | po-2025 |
+| 48 | 🤖 GPT-5 Multimodal - Analyse et Génération d'Image | Python 3 | DEMO | PRODUCTION | 30min | po-2025 |
+| 49 | 🖼️ Opérations de Base sur les Images | Python 3 | DEMO | PRODUCTION | 30min | po-2025 |
| 50 | Notebook: Stable Diffusion Forge - SD XL Turbo | Python 3 | DEMO | BETA | 30min | po-2025 |
| 51 | Notebook: Qwen Image-Edit 2.5 - API ComfyUI | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 52 | Qwen Image Edit 2509 - Édition Avancée d'Images | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 53 | FLUX.1 - Génération d'Images Avancée | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 54 | Stable Diffusion 3.5 - Génération de Pointe | Python 3 | DEMO | BETA | 45min | po-2025 |
+| 52 | Qwen Image Edit 2509 - Édition Avancée d'Images | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
+| 53 | FLUX.1 - Génération d'Images Avancée | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
+| 54 | Stable Diffusion 3.5 - Génération de Pointe | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 55 | Z-Image (Lumina-2) : Generation Avancee avec Comfy | Python 3 | DEMO | BETA | 15min | po-2025 |
-| 56 | Comparaison Multi-Modèles : SDXL Turbo, Qwen2-VL, | Python 3 | DEMO | BETA | 30min | po-2025 |
-| 57 | Workflow Orchestration - Chaînage Multi-Modèles | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 58 | 🚀 Performance Optimization pour la Génération d'Im | Python 3 | DEMO | BETA | 1h | po-2025 |
-| 59 | 🎓 Educational Content Generation - GenAI | Python 3 | DEMO | BETA | 15min | po-2025 |
-| 60 | Creative Workflows - GenAI | Python 3 | DEMO | BETA | 15min | po-2025 |
+| 56 | Comparaison Multi-Modèles : SDXL Turbo, Qwen2-VL, | Python 3 | DEMO | PRODUCTION | 30min | po-2025 |
+| 57 | Workflow Orchestration - Chaînage Multi-Modèles | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
+| 58 | 🚀 Performance Optimization pour la Génération d'Im | Python 3 | DEMO | PRODUCTION | 1h | po-2025 |
+| 59 | 🎓 Educational Content Generation - GenAI | Python 3 | DEMO | PRODUCTION | 15min | po-2025 |
+| 60 | Creative Workflows - GenAI | Python 3 | DEMO | PRODUCTION | 15min | po-2025 |
| 61 | 🏭 Production Integration - GenAI | Python 3 | DEMO | PRODUCTION | 30min | po-2025 |
| 62 | Génération d’un patron de point de croix à partir | Python 3 | DEMO | BETA | 15min | po-2025 |
| 63 | PT-01 — Introduction et vue d'ensemble | Python 3 | READY | PRODUCTION | 15min | po-2025 |
@@ -94,11 +94,11 @@ Total notebooks: 504
| 68 | PT-06 — Evaluation Comparative du Post-Training | Python 3 | READY | PRODUCTION | 15min | po-2025 |
| 69 | SK-1-Fundamentals : Introduction a Semantic Kernel | Python 3 | DEMO | BETA | 30min | po-2025 |
| 70 | SK-2-Functions : Function Calling, Memory et Fonct | Python 3 | READY | PRODUCTION | 15min | po-2025 |
-| 71 | SK-3-Agents : Agent Framework Semantic Kernel | Python 3 | READY | BETA | 15min | po-2025 |
+| 71 | SK-3-Agents : Agent Framework Semantic Kernel | Python 3 | READY | PRODUCTION | 15min | po-2025 |
| 72 | SK-4-Filters : Filtres et Observabilite | Python 3 | READY | PRODUCTION | 15min | po-2025 |
| 73 | SK-5-VectorStores : RAG avec Qdrant | Python 3 | READY | PRODUCTION | 30min | po-2025 |
| 74 | SK-6-ProcessFramework : Workflows et Orchestration | Python 3 | READY | PRODUCTION | 15min | po-2025 |
-| 75 | SK-7-MultiModal : Images, Audio et Vision | Python 3 | READY | BETA | 30min | po-2025 |
+| 75 | SK-7-MultiModal : Images, Audio et Vision | Python 3 | READY | PRODUCTION | 30min | po-2025 |
| 76 | SK-8-MCP : Model Context Protocol et Integration | Python 3 | READY | PRODUCTION | 15min | po-2025 |
| 77 | SK-9-Building-CLR : Interoperabilite Python/.NET v | Python 3 | READY | PRODUCTION | 15min | po-2025 |
| 78 | SK-10-NotebookMaker : Systeme Multi-Agents pour Ge | Python 3 | DEMO | BETA | 30min | po-2025 |
@@ -112,29 +112,29 @@ Total notebooks: 504
| 86 | Notebook de conception de Notebook | .NET (C#) | DEMO | DRAFT | 30min | po-2025 |
| 87 | Notebook de travail | .NET (C#) | READY | TEMPLATE | 30min | po-2025 |
| 88 | Notebook de travail | .NET (C#) | READY | TEMPLATE | 30min | po-2025 |
-| 89 | 10. Hébergement Local de Modèles Génératifs | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 90 | 11. Quantization des LLMs | Python 3 | DEMO | BETA | 45min | po-2025 |
+| 89 | 10. Hébergement Local de Modèles Génératifs | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
+| 90 | 11. Quantization des LLMs | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 91 | 1. Introduction a l'IA generative avec l'API OpenA | Python 3 | READY | PRODUCTION | 15min | po-2025 |
| 92 | Prompt Engineering : Advanced Prompting avec OpenA | Python 3 | DEMO | BETA | 45min | po-2025 |
| 93 | Structured Outputs : Sorties JSON Garanties avec O | Python 3 | READY | PRODUCTION | 30min | po-2025 |
| 94 | Function Calling : Connecter les LLMs au Monde Rée | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 95 | 5. RAG Modern - Retrieval Augmented Generation | Python 3 | READY | BETA | 45min | po-2025 |
+| 95 | 5. RAG Modern - Retrieval Augmented Generation | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 96 | PDF et Web Search : Sources Documentaires avec Ope | Python 3 | READY | PRODUCTION | 30min | po-2025 |
| 97 | Code Interpreter : Exécution de Code avec OpenAI | Python 3 | READY | PRODUCTION | 30min | po-2025 |
| 98 | Modèles de Raisonnement : gpt-5-mini | Python 3 | DEMO | PRODUCTION | 30min | po-2025 |
| 99 | Patterns de Production : APIs Avancées OpenAI | Python 3 | READY | PRODUCTION | 30min | po-2025 |
-| 100 | Claude CLI - Les Bases | Python 3 | READY | BETA | 45min | po-2025 |
-| 101 | Claude CLI - Gestion des Sessions | Python 3 | READY | BETA | 30min | po-2025 |
-| 102 | Claude CLI - References et Contexte | Python 3 | READY | BETA | 30min | po-2025 |
-| 103 | Claude CLI - Agents et Subagents | Python 3 | READY | BETA | 30min | po-2025 |
-| 104 | Claude CLI - Automatisation Avancee | Python 3 | READY | BETA | 30min | po-2025 |
+| 100 | Claude CLI - Les Bases | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 101 | Claude CLI - Gestion des Sessions | Python 3 | READY | PRODUCTION | 30min | po-2025 |
+| 102 | Claude CLI - References et Contexte | Python 3 | READY | PRODUCTION | 30min | po-2025 |
+| 103 | Claude CLI - Agents et Subagents | Python 3 | READY | PRODUCTION | 30min | po-2025 |
+| 104 | Claude CLI - Automatisation Avancee | Python 3 | READY | PRODUCTION | 30min | po-2025 |
| 105 | Operations de Base sur les Videos | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 106 | GPT-5 Video Understanding - Comprehension Video pa | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 107 | Qwen2.5-VL Video Analysis - Comprehension Video Lo | Python 3 | DEMO | BETA | 45min | po-2025 |
| 108 | Video Enhancement - Real-ESRGAN et Interpolation d | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 109 | AnimateDiff - Introduction a la Generation Text-to | Python 3 | DEMO | BETA | 45min | po-2025 |
+| 109 | AnimateDiff - Introduction a la Generation Text-to | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 110 | HunyuanVideo - Generation Video Haute Qualite**Mod | Python 3 | DEMO | BETA | 45min | po-2025 |
-| 111 | LTX-Video - Generation Video Rapide et Legere | Python 3 | DEMO | BETA | 45min | po-2025 |
+| 111 | LTX-Video - Generation Video Rapide et Legere | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 112 | Wan 2.1/2.2 - Generation Video Multilingue | Python 3 | DEMO | BETA | 45min | po-2025 |
| 113 | SVD - Stable Video Diffusion (Image-to-Video) | Python 3 | DEMO | DRAFT | 45min | po-2025 |
| 114 | Comparaison Multi-Modeles de Generation Video | Python 3 | DEMO | ALPHA | 45min | po-2025 |
@@ -145,57 +145,57 @@ Total notebooks: 504
| 119 | Sora API - Generation Video Cloud | Python 3 | DEMO | ALPHA | 45min | po-2025 |
| 120 | Pipeline Video de Production | Python 3 | DEMO | BETA | 45min | po-2025 |
-### Search (45 notebooks) — DEMO:3, READY:42 | BETA:22, DRAFT:1, PRODUCTION:22
+### Search (45 notebooks) — DEMO:3, READY:42 | BETA:5, DRAFT:1, PRODUCTION:39
| # | Notebook | Kernel | Status | Maturity | Duration | Owner |
|---|----------|--------|--------|----------|----------|-------|
-| 1 | App-1 : Le Probleme des N-Reines | Python 3 | READY | BETA | 45min | po-2025 |
-| 2 | App-11 - Picross (Nonogrammes) | Python 3 | READY | BETA | 45min | po-2025 |
+| 1 | App-1 : Le Probleme des N-Reines | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 2 | App-11 - Picross (Nonogrammes) | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 3 | App-15 : Planification de Calendrier Sportif (CSP) | Python 3 | READY | PRODUCTION | 30min | po-2025 |
| 4 | App-16 : Generateur de Mots Croises (CSP) | Python 3 | READY | PRODUCTION | 30min | po-2025 |
| 5 | App-2 : Coloration de Graphes | Python 3 | READY | PRODUCTION | 45min | po-2025 |
-| 6 | App-3 : Nurse Scheduling (Planification des horair | Python 3 | READY | BETA | 45min | po-2025 |
-| 7 | App-4 : Job-Shop Scheduling | Python 3 | READY | BETA | 45min | po-2025 |
+| 6 | App-3 : Nurse Scheduling (Planification des horair | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 7 | App-4 : Job-Shop Scheduling | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 8 | App-5 : Emploi du temps universitaire (University | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 9 | App-6 - Demineur : CSP, Probabilites et NP-complet | Python 3 | READY | PRODUCTION | 45min | po-2025 |
-| 10 | App-7 : Wordle Solver -- CSP et theorie de l'infor | Python 3 | READY | BETA | 45min | po-2025 |
-| 11 | App-8-MiniZinc : Modelisation declarative par cont | Python 3 | READY | BETA | 45min | po-2025 |
-| 12 | App-10 : Optimisation de portefeuille par algorith | Python 3 | READY | BETA | 45min | po-2025 |
-| 13 | **Navigation** : [Index](../../../README.md) | [<< | .NET (C#) | READY | BETA | 30min | po-2025 |
+| 10 | App-7 : Wordle Solver -- CSP et theorie de l'infor | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 11 | App-8-MiniZinc : Modelisation declarative par cont | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 12 | App-10 : Optimisation de portefeuille par algorith | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 13 | **Navigation** : [Index](../../../README.md) | [<< | .NET (C#) | READY | PRODUCTION | 30min | po-2025 |
| 14 | App-13 : Le Probleme du Voyageur de Commerce (TSP) | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 15 | App-17 : Vehicle Routing Problem (VRP) | Python 3 | READY | BETA | 30min | po-2025 |
| 16 | App-18: Optimisation d'Hyperparametres - Approches | Python 3 | READY | PRODUCTION | 30min | po-2025 |
-| 17 | App-9 : Detection de bords par algorithmes genetiq | Python 3 | READY | BETA | 45min | po-2025 |
+| 17 | App-9 : Detection de bords par algorithmes genetiq | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 18 | TP : Conception d'Algorithmes Genetiques avec Gene | .NET (C#) | READY | PRODUCTION | 45min | po-2025 |
-| 19 | App-12 : Puissance 4 -- Comparaison d'algorithmes | Python 3 | READY | BETA | 45min | po-2025 |
+| 19 | App-12 : Puissance 4 -- Comparaison d'algorithmes | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 20 | App-14 - Connect Four : Benchmark Adversarial Sear | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 21 | Introduction a la programmation par contrainte | Python 3 | READY | BETA | 45min | po-2025 |
-| 22 | Recherche non informee et informee | Python 3 | READY | BETA | 45min | po-2025 |
+| 22 | Recherche non informee et informee | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 23 | TP : Conception d'Algorithmes Genetiques avec Gene | .NET (C#) | READY | BETA | 45min | po-2025 |
-| 24 | Search-1 : Espaces d'etats et formulation de probl | Python 3 | READY | BETA | 45min | po-2025 |
+| 24 | Search-1 : Espaces d'etats et formulation de probl | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 25 | Search-12 : Automates Symboliques avec Z3 | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 26 | Search-11-Metaheuristiques : Optimisation avec MEA | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 27 | Search-2-Uninformed : Algorithmes de Recherche Non | Python 3 | READY | BETA | 45min | po-2025 |
| 28 | Search-3-Informed : Algorithmes de Recherche Infor | Python 3 | READY | PRODUCTION | 45min | po-2025 |
-| 29 | Search-4-LocalSearch : Recherche Locale et Metaheu | Python 3 | READY | BETA | 45min | po-2025 |
-| 30 | Search-5 : Algorithmes Genetiques | Python 3 | READY | BETA | 45min | po-2025 |
+| 29 | Search-4-LocalSearch : Recherche Locale et Metaheu | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 30 | Search-5 : Algorithmes Genetiques | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 31 | Search-6-AdversarialSearch : Recherche Adversarial | Python 3 | READY | BETA | 30min | po-2025 |
| 32 | Search-7-MCTS-And-Beyond : Monte Carlo Tree Search | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 33 | Search-8-DancingLinks : L'algorithme X et Dancing | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 34 | Search-9-LinearProgramming : Programmation Lineair | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 35 | CSP-1 : Fondamentaux des CSP | Python 3 | READY | PRODUCTION | 1h | po-2025 |
-| 36 | CSP-2 : Propagation de Contraintes et Consistance | Python 3 | READY | BETA | 45min | po-2025 |
-| 37 | CSP-3 : CSP Avance - Contraintes globales, OR-Tool | Python 3 | READY | BETA | 45min | po-2025 |
+| 36 | CSP-2 : Propagation de Contraintes et Consistance | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 37 | CSP-3 : CSP Avance - Contraintes globales, OR-Tool | Python 3 | READY | PRODUCTION | 45min | po-2025 |
| 38 | CSP-4-Scheduling : Problèmes d'Ordonnancement | Python 3 | READY | PRODUCTION | 45min | po-2025 |
-| 39 | CSP-5-Optimization : Problèmes d'Optimisation Comb | myvenv | READY | PRODUCTION | 45min | po-2025 |
-| 40 | CSP-6-Hybridation : Approches Hybrides Modernes | myvenv | DEMO | PRODUCTION | 45min | po-2025 |
+| 39 | CSP-5-Optimization : Problèmes d'Optimisation Comb | Python 3 | READY | PRODUCTION | 45min | po-2025 |
+| 40 | CSP-6-Hybridation : Approches Hybrides Modernes | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 41 | CSP-7 : Contraintes Souples - Soft CSP | Python 3 | DEMO | PRODUCTION | 1h | po-2025 |
-| 42 | CSP-8 : Temporels - Raisonnement sur le Temps | myvenv | DEMO | PRODUCTION | 45min | po-2025 |
+| 42 | CSP-8 : Temporels - Raisonnement sur le Temps | Python 3 | DEMO | PRODUCTION | 45min | po-2025 |
| 43 | CSP-9-Distributed : CSP Distribués (DisCSP) | Python 3 | READY | PRODUCTION | 45min | po-2025 |
-| 44 | Search - Portfolio Optimization avec GeneticSharp | .NET (C#) | READY | BETA | 30min | po-2025 |
+| 44 | Search - Portfolio Optimization avec GeneticSharp | .NET (C#) | READY | PRODUCTION | 30min | po-2025 |
| 45 | TP : Algorithmes Genetiques pour la Detection de B | Python 3 | READY | DRAFT | 30min | po-2025 |
-### ML (27 notebooks) — DEMO:5, READY:22 | ALPHA:3, BETA:21, PRODUCTION:3
+### ML (27 notebooks) — DEMO:5, READY:22 | ALPHA:2, BETA:11, PRODUCTION:14
| # | Notebook | Kernel | Status | Maturity | Duration | Owner |
|---|----------|--------|--------|----------|----------|-------|
@@ -205,274 +205,274 @@ Total notebooks: 504
| 4 | Lab 9: Premier Agent ADK pour Data Science | Python 3 | READY | BETA | 30min | po-2023 |
| 5 | Lab 10: Data File Analyzer (DS-STAR Component) | Python 3 | READY | BETA | 30min | po-2023 |
| 6 | Lab 11: Planner-Coder-Verifier Loop (DS-STAR Core) | Python 3 | READY | BETA | 30min | po-2023 |
-| 7 | Lab 12: DS-STAR Workshop - Analyse Multi-Fichiers | Python 3 | READY | BETA | 30min | po-2023 |
+| 7 | Lab 12: DS-STAR Workshop - Analyse Multi-Fichiers | Python 3 | READY | PRODUCTION | 30min | po-2023 |
| 8 | Lab 13: Web Search pour Modèles SOTA (MLE-STAR Com | Python 3 | READY | BETA | 30min | po-2023 |
| 9 | Lab 14: Ablation et Raffinement Ciblé (MLE-STAR Co | Python 3 | READY | BETA | 30min | po-2023 |
| 10 | Lab 15: Kaggle Challenge avec MLE-STAR | Python 3 | READY | BETA | 30min | po-2023 |
| 11 | Lab 16: Data Science Agent avec GCP BigQuery | Python 3 | READY | BETA | 30min | po-2023 |
-| 12 | Lab 17: Projet Final - Pipeline DS-STAR Complet | Python 3 | READY | BETA | 45min | po-2023 |
+| 12 | Lab 17: Projet Final - Pipeline DS-STAR Complet | Python 3 | READY | PRODUCTION | 45min | po-2023 |
| 13 | Lab 1 - Les Bases de la Data Science en Python | Python 3 | READY | PRODUCTION | 30min | po-2023 |
-| 14 | Lab 2 - Analyser un Appel d'Offre avec l'IA | Python 3 | DEMO | BETA | 15min | po-2023 |
-| 15 | Lab 3 - Pré-qualifier des Candidats avec l'IA | Python 3 | DEMO | BETA | 15min | po-2023 |
+| 14 | Lab 2 - Analyser un Appel d'Offre avec l'IA | Python 3 | DEMO | PRODUCTION | 15min | po-2023 |
+| 15 | Lab 3 - Pré-qualifier des Candidats avec l'IA | Python 3 | DEMO | PRODUCTION | 15min | po-2023 |
| 16 | Lab 4 - Le Nettoyage de Données avec Pandas | Python 3 | READY | BETA | 30min | po-2023 |
-| 17 | Lab 5 - De la Visualisation au Machine Learning | Python 3 | READY | BETA | 15min | po-2023 |
+| 17 | Lab 5 - De la Visualisation au Machine Learning | Python 3 | READY | PRODUCTION | 15min | po-2023 |
| 18 | Lab 6 - Anatomie de votre premier Agent d'IA | Python 3 | DEMO | ALPHA | 15min | po-2023 |
| 19 | Lab 7 - Votre premier Agent Analyste de Données | Python 3 | DEMO | BETA | 30min | po-2023 |
| 20 | ML-1 : Introduction au Machine Learning avec ML.NE | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
-| 21 | ML-2 : Préparation des données et ingénierie des f | .NET (C#) | READY | BETA | 45min | po-2023 |
-| 22 | ML-3 : Entraînement et AutoML | .NET (C#) | READY | BETA | 30min | po-2023 |
+| 21 | ML-2 : Préparation des données et ingénierie des f | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
+| 22 | ML-3 : Entraînement et AutoML | .NET (C#) | READY | PRODUCTION | 30min | po-2023 |
| 23 | ML-4 : Evaluation des modèles | .NET (C#) | READY | ALPHA | 1h30 | po-2023 |
-| 24 | ML-5 : Time Series Forecasting avec ML.NET | .NET (C#) | READY | ALPHA | 45min | po-2023 |
-| 25 | ML-6 : ONNX Model Integration avec ML.NET | .NET (C#) | READY | BETA | 30min | po-2023 |
-| 26 | ML-7 : Systèmes de Recommandation avec ML.NET | .NET (C#) | READY | BETA | 45min | po-2023 |
-| 27 | TP : Prevision des ventes d'assurance | .NET (C#) | READY | BETA | 30min | po-2023 |
+| 24 | ML-5 : Time Series Forecasting avec ML.NET | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
+| 25 | ML-6 : ONNX Model Integration avec ML.NET | .NET (C#) | READY | PRODUCTION | 30min | po-2023 |
+| 26 | ML-7 : Systèmes de Recommandation avec ML.NET | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
+| 27 | TP : Prevision des ventes d'assurance | .NET (C#) | READY | PRODUCTION | 30min | po-2023 |
-### SymbolicAI (99 notebooks) — DEMO:11, READY:88 | ALPHA:6, BETA:84, PRODUCTION:9
+### SymbolicAI (100 notebooks) — BROKEN:1, DEMO:11, READY:88 | ALPHA:2, BETA:8, PRODUCTION:90
| # | Notebook | Kernel | Status | Maturity | Duration | Owner |
|---|----------|--------|--------|----------|----------|-------|
| 1 | 🧠 Notebook d'Analyse Rhétorique Collaborative par | Python 3 | DEMO | BETA | 30min | po-2024 |
-| 2 | 5. Agent : 🧐 InformalAnalysisAgent (Définitions) | Python 3 | DEMO | BETA | 15min | po-2024 |
-| 3 | 6. Agent : PropositionalLogicAgent (Definitions) | Python 3 | READY | BETA | 15min | po-2024 |
-| 4 | 7. Orchestration de la Conversation (Définitions d | Python 3 | READY | BETA | 15min | po-2024 |
-| 5 | 🚀 Analyse Rhétorique Collaborative par Agents IA - | Python 3 | READY | BETA | 15min | po-2024 |
-| 6 | Interface de Configuration et Préparation du Texte | Python 3 | READY | BETA | 15min | po-2024 |
+| 2 | 5. Agent : 🧐 InformalAnalysisAgent (Définitions) | Python 3 | DEMO | PRODUCTION | 15min | po-2024 |
+| 3 | 6. Agent : PropositionalLogicAgent (Definitions) | Python 3 | READY | PRODUCTION | 15min | po-2024 |
+| 4 | 7. Orchestration de la Conversation (Définitions d | Python 3 | BROKEN | ALPHA | 15min | po-2024 |
+| 5 | 🚀 Analyse Rhétorique Collaborative par Agents IA - | Python 3 | READY | PRODUCTION | 15min | po-2024 |
+| 6 | Interface de Configuration et Préparation du Texte | Python 3 | READY | PRODUCTION | 15min | po-2024 |
| 7 | Lean 4 - Installation et Configuration | Python 3 (WSL) | READY | BETA | 15min | po-2024 |
-| 8 | Lean 10 : LeanDojo - ML/LLM Theorem Proving | Python 3 (WSL) | DEMO | ALPHA | 45min | po-2024 |
+| 8 | Lean 10 : LeanDojo - ML/LLM Theorem Proving | Python 3 (WSL) | DEMO | PRODUCTION | 45min | po-2024 |
| 9 | Lean 11a - TorchLean : Implémentation Python des R | Python 3 | READY | PRODUCTION | 45min | po-2024 |
-| 10 | Lean 11 - TorchLean : Réseaux de Neurones Formelle | Lean 4 (WSL) | READY | BETA | 30min | po-2024 |
+| 10 | Lean 11 - TorchLean : Réseaux de Neurones Formelle | Lean 4 (WSL) | READY | PRODUCTION | 30min | po-2024 |
| 11 | Lean-12 : Le Theoreme de Sensibilite (Huang 2019) | Python 3 | READY | PRODUCTION | 30min | po-2024 |
-| 12 | Lean-13 : Hommage a Alexandre Grothendieck -- Le l | Python 3 | READY | BETA | 15min | po-2024 |
-| 13 | Lean-15 : Le Theoreme de Kochen-Specker (Cabello 1 | Python 3 | READY | PRODUCTION | 15min | po-2024 |
-| 14 | Lean 2 - Types Dependants et Calcul des Constructi | Lean 4 (WSL) | READY | BETA | 45min | po-2024 |
-| 15 | Lean 3 - Propositions et Preuves | Lean 4 | READY | BETA | 45min | po-2024 |
-| 16 | Lean 4 - Quantificateurs et Logique du Premier Ord | Lean 4 (WSL) | READY | BETA | 45min | po-2024 |
-| 17 | Lean 5 - Mode Tactique | Lean 4 | READY | BETA | 1h | po-2024 |
-| 18 | Lean 6 - Mathlib4 : La Bibliotheque Mathematique | Lean 4 | READY | BETA | 45min | po-2024 |
-| 19 | Lean 7 - Integration des LLMs pour l'Assistance au | Python 3 (WSL) | DEMO | ALPHA | 45min | po-2024 |
-| 20 | Lean 7b - Exemples Progressifs et Benchmarks | Python 3 (WSL) | DEMO | BETA | 30min | po-2024 |
-| 21 | Lean 8 - Agents Autonomes pour Demonstration de Th | Python 3 | READY | BETA | 30min | po-2024 |
-| 22 | Description du notebook | Python 3 | DEMO | BETA | 45min | po-2024 |
-| 23 | LINQ to Z3 - Résolution de Contraintes Déclarative | .NET (C#) | READY | BETA | 30min | po-2024 |
-| 24 | OR-Tools : Résolution du Problème du Régime de Sti | .NET (C#) | READY | BETA | 45min | po-2024 |
-| 25 | Planners-0-Setup | Python 3 | READY | BETA | 30min | po-2024 |
-| 26 | Planners-1-Introduction a la Planification Automat | Python 3 | READY | BETA | 15min | po-2024 |
-| 27 | Planners-2-PDDL-Basics | Python 3 | READY | BETA | 30min | po-2024 |
-| 28 | Planners-3-State-Space - Recherche dans l'Espace d | Python 3 | READY | BETA | 45min | po-2024 |
-| 29 | Planners-4-Fast-Downward - Planificateur Classique | Python 3 | READY | BETA | 45min | po-2024 |
-| 30 | Planners-5-Heuristiques en Planification | Python 3 | READY | PRODUCTION | 45min | po-2024 |
-| 31 | Planners-6-Domains - Domaines Classiques de Planif | Python 3 | READY | BETA | 45min | po-2024 |
-| 32 | Planners-7-OR-Tools - Programmation par Contrainte | Python 3 | READY | BETA | 30min | po-2024 |
-| 33 | Planners-8-Temporal - Planification Temporelle | Python 3 | READY | BETA | 45min | po-2024 |
-| 34 | Planners-9-HTN - Planification Hierarchique | Python 3 | READY | BETA | 30min | po-2024 |
-| 35 | Planners-10: LLMs pour la Planification | Python 3 | DEMO | BETA | 45min | po-2024 |
-| 36 | Planners-11: Unified Planning | Python 3 | READY | BETA | 45min | po-2024 |
-| 37 | Planners-12: Learning to Plan avec LOOP | Python 3 | DEMO | BETA | 45min | po-2024 |
-| 38 | Introduction au web sémantique avec RDF.Net | .NET (C#) | DEMO | ALPHA | 2h+ | po-2024 |
-| 39 | SW-1-Setup | .NET (C#) | READY | BETA | 30min | po-2024 |
-| 40 | SW-10-Python-RDFStar | Python 3 | READY | PRODUCTION | 45min | po-2024 |
-| 41 | SW-11-Python-KnowledgeGraphs | Python 3 | READY | BETA | 1h | po-2024 |
-| 42 | SW-12-Python-GraphRAG | Python 3 | READY | BETA | 45min | po-2024 |
-| 43 | SW-14-Reasoners | Python 3 | READY | ALPHA | 45min | po-2024 |
-| 44 | SW-2-RDFBasics | .NET (C#) | READY | BETA | 45min | po-2024 |
-| 45 | SW-2b-Python-RDFBasics | Python 3 | READY | BETA | 30min | po-2024 |
-| 46 | SW-3-GraphOperations | .NET (C#) | READY | BETA | 1h | po-2024 |
-| 47 | SW-4-SPARQL | .NET (C#) | READY | BETA | 45min | po-2024 |
-| 48 | SW-4b-Python-SPARQL | Python 3 | READY | BETA | 45min | po-2024 |
-| 49 | SW-5-LinkedData | .NET (C#) | READY | PRODUCTION | 45min | po-2024 |
-| 50 | SW-5b-Python-LinkedData | Python 3 | READY | BETA | 30min | po-2024 |
-| 51 | SW-6-RDFS | .NET (C#) | READY | BETA | 45min | po-2024 |
-| 52 | SW-7-OWL | .NET (C#) | READY | BETA | 45min | po-2024 |
-| 53 | SW-7b-Python-OWL | Python 3 | READY | BETA | 45min | po-2024 |
-| 54 | SW-8-Python-SHACL | Python 3 | READY | PRODUCTION | 45min | po-2024 |
-| 55 | SW-9-Python-JSONLD | Python 3 | READY | BETA | 1h | po-2024 |
-| 56 | SC-0-Cypherpunk-Origins - Les origines Cypherpunk | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 57 | SC-1-Setup-Foundry - Environnement Smart Contracts | Python (SmartContracts + Found | READY | BETA | 15min | po-2024 |
-| 58 | SC-2-Setup-Web3py - Python et la Blockchain | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 59 | SC-3-Solidity-Basics - Fondements de Solidity | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 60 | SC-4-Functions-State - Fonctions et Etat | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 61 | SC-5-Inheritance - Heritage et Interfaces | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 62 | SC-6-Errors-Events - Erreurs et Evenements | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 63 | SC-10-Account-Abstraction - ERC-4337 | Python (SmartContracts + Found | READY | BETA | 15min | po-2024 |
-| 64 | SC-11-LLM-Assisted - Developpement Smart Contracts | Python (SmartContracts + Found | DEMO | BETA | 45min | po-2024 |
-| 65 | SC-7-Token-Standards - Standards de Tokens | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 66 | SC-8-DeFi-Primitives - Primitives DeFi | Python (SmartContracts + Found | READY | BETA | 15min | po-2024 |
-| 67 | SC-9-DAO-Governance - Gouvernance DAO | Python (SmartContracts + Found | READY | BETA | 15min | po-2024 |
-| 68 | SC-12-Foundry-Testing - Tests avec Foundry | Python (SmartContracts + Found | READY | BETA | 45min | po-2024 |
-| 69 | SC-13-Fuzz-Invariants - Fuzz Testing | Python (SmartContracts + Found | READY | BETA | 15min | po-2024 |
-| 70 | SC-14-Formal-Verification - Verification Formelle | Python (SmartContracts + Found | DEMO | BETA | 30min | po-2024 |
-| 71 | SC-15-Zero-Knowledge-Proofs - Preuves a Divulgatio | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 72 | SC-16-Homomorphic-Encryption - Chiffrement Homomor | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 73 | SC-17-E2E-Verifiable-Voting - Vote Electronique Ve | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 74 | SC-18-Vyper - Smart Contracts en Python-like | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 75 | SC-19-Ripple-XRP - Protocole Ripple et XRP Ledger | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 76 | SC-20-Bitcoin-Scripting - Bitcoin, UTXO et Scripts | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 77 | SC-21-Move-Sui - Move sur Sui | Python (SmartContracts + Found | READY | BETA | 15min | po-2024 |
-| 78 | SC-22-Solana-Anchor - Solana avec Anchor | Python (SmartContracts + Found | READY | BETA | 15min | po-2024 |
-| 79 | SC-23-Cross-Chain - Interoperabilite Cross-Chain | Python (SmartContracts + Found | READY | BETA | 15min | po-2024 |
-| 80 | SC-24 : Deploiement sur Testnets | Python (SmartContracts + Found | READY | BETA | 30min | po-2024 |
-| 81 | SC-25 : Deploiement Mainnet (L2) | Python (SmartContracts + Found | READY | BETA | 15min | po-2024 |
-| 82 | SC-26 : Projet Final - DApp Complete | Python (SmartContracts + Found | READY | ALPHA | 15min | po-2024 |
-| 83 | SL-1 - Apprentissage Logique : CBH Search et Versi | Python 3 | READY | BETA | 30min | po-2024 |
-| 84 | SL-2 --- Apprentissage et Connaissance (EBL & RBL) | Python 3 | READY | BETA | 45min | po-2024 |
-| 85 | SL-3 --- Apprentissage Base sur la Pertinence (RBL | Python 3 | READY | BETA | 30min | po-2024 |
-| 86 | SL-4 --- Programmation Logique Inductive (ILP) | Python 3 | READY | BETA | 30min | po-2024 |
-| 87 | SL-5 : Integration Neuro-Symbolique | Python 3 | READY | BETA | 30min | po-2024 |
-| 88 | SL-6 - ILP Moderne et Knowledge Graphs | Python 3 | READY | BETA | 30min | po-2024 |
-| 89 | SL-7 - LLMs et Apprentissage Symbolique : Generati | Python 3 | READY | BETA | 45min | po-2024 |
-| 90 | Configuration et Installation TweetyProject | Python 3 | READY | BETA | 45min | po-2024 |
-| 91 | Logiques de Base - Propositionnelle et Premier Ord | Python 3 | READY | ALPHA | 45min | po-2024 |
-| 92 | Logiques Avancees - DL, Modale, QBF, Conditional | Python 3 | READY | BETA | 30min | po-2024 |
-| 93 | Révision de Croyances et Incohérence | Python 3 | READY | BETA | 30min | po-2024 |
-| 94 | Argumentation Abstraite (Dung) | Python 3 | READY | PRODUCTION | 45min | po-2024 |
-| 95 | Argumentation Structuree | Python 3 | READY | BETA | 30min | po-2024 |
-| 96 | Frameworks d'Argumentation Étendus | Python 3 | READY | PRODUCTION | 30min | po-2024 |
-| 97 | Sémantiques de Classement et Argumentation Probabi | Python 3 | READY | BETA | 15min | po-2024 |
-| 98 | Dialogues Multi-Agents Argumentatifs | Python 3 | READY | BETA | 15min | po-2024 |
-| 99 | Préférences et Théorie du Vote | Python 3 | READY | BETA | 15min | po-2024 |
+| 12 | Lean-13 : Hommage a Alexandre Grothendieck -- Le l | Python 3 | READY | PRODUCTION | 15min | po-2024 |
+| 13 | Lean-14 : Hommage a John Conway — Game of Life as | Python 3 (ipykernel) | READY | PRODUCTION | 30min | po-2024 |
+| 14 | Lean-15 : Le Theoreme de Kochen-Specker (Cabello 1 | Python 3 | READY | PRODUCTION | 15min | po-2024 |
+| 15 | Lean 2 - Types Dependants et Calcul des Constructi | Lean 4 (WSL) | READY | PRODUCTION | 45min | po-2024 |
+| 16 | Lean 3 - Propositions et Preuves | Lean 4 | READY | PRODUCTION | 45min | po-2024 |
+| 17 | Lean 4 - Quantificateurs et Logique du Premier Ord | Lean 4 (WSL) | READY | PRODUCTION | 45min | po-2024 |
+| 18 | Lean 5 - Mode Tactique | Lean 4 | READY | PRODUCTION | 1h | po-2024 |
+| 19 | Lean 6 - Mathlib4 : La Bibliotheque Mathematique | Lean 4 | READY | PRODUCTION | 45min | po-2024 |
+| 20 | Lean 7 - Integration des LLMs pour l'Assistance au | Python 3 (WSL) | DEMO | BETA | 45min | po-2024 |
+| 21 | Lean 7b - Exemples Progressifs et Benchmarks | Python 3 (WSL) | DEMO | PRODUCTION | 30min | po-2024 |
+| 22 | Lean 8 - Agents Autonomes pour Demonstration de Th | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 23 | Description du notebook | Python 3 | DEMO | BETA | 45min | po-2024 |
+| 24 | LINQ to Z3 - Résolution de Contraintes Déclarative | .NET (C#) | READY | BETA | 30min | po-2024 |
+| 25 | OR-Tools : Résolution du Problème du Régime de Sti | .NET (C#) | READY | PRODUCTION | 45min | po-2024 |
+| 26 | Planners-0-Setup | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 27 | Planners-1-Introduction a la Planification Automat | Python 3 | READY | PRODUCTION | 15min | po-2024 |
+| 28 | Planners-2-PDDL-Basics | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 29 | Planners-3-State-Space - Recherche dans l'Espace d | Python 3 | READY | BETA | 45min | po-2024 |
+| 30 | Planners-4-Fast-Downward - Planificateur Classique | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 31 | Planners-5-Heuristiques en Planification | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 32 | Planners-6-Domains - Domaines Classiques de Planif | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 33 | Planners-7-OR-Tools - Programmation par Contrainte | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 34 | Planners-8-Temporal - Planification Temporelle | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 35 | Planners-9-HTN - Planification Hierarchique | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 36 | Planners-10: LLMs pour la Planification | Python 3 | DEMO | PRODUCTION | 45min | po-2024 |
+| 37 | Planners-11: Unified Planning | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 38 | Planners-12: Learning to Plan avec LOOP | Python 3 | DEMO | PRODUCTION | 45min | po-2024 |
+| 39 | Introduction au web sémantique avec RDF.Net | .NET (C#) | DEMO | ALPHA | 2h+ | po-2024 |
+| 40 | SW-1-Setup | .NET (C#) | READY | PRODUCTION | 30min | po-2024 |
+| 41 | SW-10-Python-RDFStar | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 42 | SW-11-Python-KnowledgeGraphs | Python 3 | READY | PRODUCTION | 1h | po-2024 |
+| 43 | SW-12-Python-GraphRAG | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 44 | SW-14-Reasoners | Python 3 | READY | BETA | 45min | po-2024 |
+| 45 | SW-2-RDFBasics | .NET (C#) | READY | PRODUCTION | 45min | po-2024 |
+| 46 | SW-2b-Python-RDFBasics | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 47 | SW-3-GraphOperations | .NET (C#) | READY | PRODUCTION | 1h | po-2024 |
+| 48 | SW-4-SPARQL | .NET (C#) | READY | PRODUCTION | 45min | po-2024 |
+| 49 | SW-4b-Python-SPARQL | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 50 | SW-5-LinkedData | .NET (C#) | READY | PRODUCTION | 45min | po-2024 |
+| 51 | SW-5b-Python-LinkedData | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 52 | SW-6-RDFS | .NET (C#) | READY | PRODUCTION | 45min | po-2024 |
+| 53 | SW-7-OWL | .NET (C#) | READY | PRODUCTION | 45min | po-2024 |
+| 54 | SW-7b-Python-OWL | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 55 | SW-8-Python-SHACL | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 56 | SW-9-Python-JSONLD | Python 3 | READY | PRODUCTION | 1h | po-2024 |
+| 57 | SC-0-Cypherpunk-Origins - Les origines Cypherpunk | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 58 | SC-1-Setup-Foundry - Environnement Smart Contracts | Python (SmartContracts + Found | READY | PRODUCTION | 15min | po-2024 |
+| 59 | SC-2-Setup-Web3py - Python et la Blockchain | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 60 | SC-3-Solidity-Basics - Fondements de Solidity | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 61 | SC-4-Functions-State - Fonctions et Etat | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 62 | SC-5-Inheritance - Heritage et Interfaces | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 63 | SC-6-Errors-Events - Erreurs et Evenements | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 64 | SC-10-Account-Abstraction - ERC-4337 | Python (SmartContracts + Found | READY | PRODUCTION | 15min | po-2024 |
+| 65 | SC-11-LLM-Assisted - Developpement Smart Contracts | Python (SmartContracts + Found | DEMO | PRODUCTION | 45min | po-2024 |
+| 66 | SC-7-Token-Standards - Standards de Tokens | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 67 | SC-8-DeFi-Primitives - Primitives DeFi | Python (SmartContracts + Found | READY | PRODUCTION | 15min | po-2024 |
+| 68 | SC-9-DAO-Governance - Gouvernance DAO | Python (SmartContracts + Found | READY | PRODUCTION | 15min | po-2024 |
+| 69 | SC-12-Foundry-Testing - Tests avec Foundry | Python (SmartContracts + Found | READY | PRODUCTION | 45min | po-2024 |
+| 70 | SC-13-Fuzz-Invariants - Fuzz Testing | Python (SmartContracts + Found | READY | PRODUCTION | 15min | po-2024 |
+| 71 | SC-14-Formal-Verification - Verification Formelle | Python (SmartContracts + Found | DEMO | PRODUCTION | 30min | po-2024 |
+| 72 | SC-15-Zero-Knowledge-Proofs - Preuves a Divulgatio | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 73 | SC-16-Homomorphic-Encryption - Chiffrement Homomor | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 74 | SC-17-E2E-Verifiable-Voting - Vote Electronique Ve | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 75 | SC-18-Vyper - Smart Contracts en Python-like | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 76 | SC-19-Ripple-XRP - Protocole Ripple et XRP Ledger | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 77 | SC-20-Bitcoin-Scripting - Bitcoin, UTXO et Scripts | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 78 | SC-21-Move-Sui - Move sur Sui | Python (SmartContracts + Found | READY | PRODUCTION | 15min | po-2024 |
+| 79 | SC-22-Solana-Anchor - Solana avec Anchor | Python (SmartContracts + Found | READY | PRODUCTION | 15min | po-2024 |
+| 80 | SC-23-Cross-Chain - Interoperabilite Cross-Chain | Python (SmartContracts + Found | READY | PRODUCTION | 15min | po-2024 |
+| 81 | SC-24 : Deploiement sur Testnets | Python (SmartContracts + Found | READY | PRODUCTION | 30min | po-2024 |
+| 82 | SC-25 : Deploiement Mainnet (L2) | Python (SmartContracts + Found | READY | PRODUCTION | 15min | po-2024 |
+| 83 | SC-26 : Projet Final - DApp Complete | Python (SmartContracts + Found | READY | PRODUCTION | 15min | po-2024 |
+| 84 | SL-1 - Apprentissage Logique : CBH Search et Versi | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 85 | SL-2 --- Apprentissage et Connaissance (EBL & RBL) | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 86 | SL-3 --- Apprentissage Base sur la Pertinence (RBL | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 87 | SL-4 --- Programmation Logique Inductive (ILP) | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 88 | SL-5 : Integration Neuro-Symbolique | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 89 | SL-6 - ILP Moderne et Knowledge Graphs | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 90 | SL-7 - LLMs et Apprentissage Symbolique : Generati | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 91 | Configuration et Installation TweetyProject | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 92 | Logiques de Base - Propositionnelle et Premier Ord | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 93 | Logiques Avancees - DL, Modale, QBF, Conditional | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 94 | Révision de Croyances et Incohérence | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 95 | Argumentation Abstraite (Dung) | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 96 | Argumentation Structuree | Python 3 | READY | BETA | 30min | po-2024 |
+| 97 | Frameworks d'Argumentation Étendus | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 98 | Sémantiques de Classement et Argumentation Probabi | Python 3 | READY | PRODUCTION | 15min | po-2024 |
+| 99 | Dialogues Multi-Agents Argumentatifs | Python 3 | READY | PRODUCTION | 15min | po-2024 |
+| 100 | Préférences et Théorie du Vote | Python 3 | READY | PRODUCTION | 15min | po-2024 |
-### QuantConnect (102 notebooks) — BROKEN:12, DEMO:25, READY:65 | ALPHA:22, BETA:14, DRAFT:1, PRODUCTION:64, TEMPLATE:1
+### QuantConnect (101 notebooks) — BROKEN:12, DEMO:24, READY:65 | ALPHA:22, BETA:9, DRAFT:1, PRODUCTION:68, TEMPLATE:1
| # | Notebook | Kernel | Status | Maturity | Duration | Owner |
|---|----------|--------|--------|----------|----------|-------|
| 1 | M3b - HAR Asymetrique : Decomposition Semivariance | Python 3 | READY | PRODUCTION | 30min | po-2026 |
| 2 | ML Training Pipeline - Notebook de Recherche | Python 3 | READY | TEMPLATE | 30min | po-2026 |
-| 3 | Top-4 Sharpe > 0.5 Strategies: OOS Deep-Dive (Issu | Python 3 | READY | BETA | 15min | po-2026 |
+| 3 | Top-4 Sharpe > 0.5 Strategies: OOS Deep-Dive (Issu | Python 3 | READY | PRODUCTION | 15min | po-2026 |
| 4 | Research QuantBook: Adaptive Asset Allocation | Python 3 | READY | PRODUCTION | 45min | po-2026 |
| 5 | Research QuantBook: All-Weather Portfolio | Python 3 | READY | PRODUCTION | 30min | po-2026 |
| 6 | Alpha Correlation Analysis | Python 3 | BROKEN | BETA | 45min | po-2026 |
-| 7 | Research to Production | .NET (C#) | DEMO | BETA | 30min | po-2026 |
-| 8 | Research QuantBook: BTC ML Enhanced | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
-| 9 | Research QuantBook: Multi-Channel ZigZag Crypto | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
-| 10 | Initializing environment | .NET (C#) | DEMO | BETA | 1h30 | po-2026 |
-| 11 | Research QuantBook: Deep Learning LSTM pour SPY | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
-| 12 | Research QuantBook: DualMomentum (Antonacci) | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 13 | Research QuantBook: Dual Momentum No TLT | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 14 | Research QuantBook: EMA-Cross Alpha Model | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 15 | Research QuantBook: EMA Cross Equity | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 16 | Research QuantBook: EMA Crossover SPY Index | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 17 | Research QuantBook: Multi-Stock EMA Crossover | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 18 | Research QuantBook: ETF Pairs Trading | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 19 | Research QuantBook: Fama-French Factor ETF Rotatio | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 20 | Research QuantBook: ForexCarry (G10 FX Momentum) | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 21 | Research QuantBook: Framework Composite EMA-Trend | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 22 | Research QuantBook: Framework Composite FamaFrench | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 23 | Research QuantBook: Framework Composite Momentum + | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 24 | Framework Composite TrendWeather - Research | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 25 | Research QuantBook: FuturesTrend (Donchian Breakou | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 26 | Research QuantBook: Mean Reversion (Sector ETFs) | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 27 | Research QuantBook: ML Classification (RandomFores | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 28 | ML Deep Learning - LSTM/GRU pour Trading | Python 3 | BROKEN | BETA | 45min | po-2026 |
-| 29 | Research QuantBook: ML-Enhanced Pairs Trading | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 30 | Research QuantBook: ML Ensemble | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 31 | Research QuantBook: ML Feature Engineering | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 32 | ML Random Forest - Classification pour Trading | Python 3 | READY | BETA | 45min | po-2026 |
-| 33 | Research QuantBook: ML Regression | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
-| 34 | ML SVM - Support Vector Machine pour Trading | Python 3 | READY | BETA | 45min | po-2026 |
-| 35 | ML Text Classification for Trading | Python 3 | DEMO | ALPHA | 45min | po-2026 |
-| 36 | ML XGBoost - Gradient Boosting pour Trading | Python 3 | BROKEN | BETA | 45min | po-2026 |
-| 37 | Research QuantBook: MomentumStrategy (Sector ETF R | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 38 | Research QuantBook: Equity Multi-Layer EMA + ML Fi | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 39 | Research QuantBook: Option Wheel Strategy | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 40 | Research QuantBook: Options Wheel Tech Stocks | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 41 | Research QuantBook: Covered Call Strategy | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 42 | Research QuantBook: PairsTrading (Statistical Arbi | Python 3 | DEMO | ALPHA | 30min | po-2026 |
-| 43 | Research QuantBook: RegimeSwitching Alpha Model | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 44 | runner | Python 3 | BROKEN | DRAFT | 15min | po-2026 |
-| 45 | Research QuantBook: RiskParity (Inverse-Volatility | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 46 | Research QuantBook: RL Portfolio Allocation | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
-| 47 | Research QuantBook: Sector-Momentum (Dual Momentum | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 48 | Research QuantBook: Trend Following Competition | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 49 | Research QuantBook: TrendStocks Alpha Model | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 50 | Research QuantBook: TurnOfMonth (Calendar Anomaly) | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 51 | Research QuantBook: VIX-TermStructure (Short Volat | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
-| 52 | QC-Py-01 : Configuration et Premier Backtest Quant | Python 3 | DEMO | PRODUCTION | 30min | po-2026 |
-| 53 | QC-Py-02 : QuantConnect Platform Fundamentals - QC | Python 3 | DEMO | PRODUCTION | 30min | po-2026 |
-| 54 | QC-Py-03 - Data Management in QuantConnect | Python 3 | DEMO | PRODUCTION | 45min | po-2026 |
-| 55 | QC-Py-04 - Research Workflow with QuantBook | Python 3 | BROKEN | BETA | 1h | po-2026 |
-| 56 | QC-Py-05 - Universe Selection dans QuantConnect | Python 3 | DEMO | PRODUCTION | 45min | po-2026 |
-| 57 | QC-Py-06 : Options Trading dans QuantConnect | Python 3 | DEMO | PRODUCTION | 45min | po-2026 |
-| 58 | QC-Py-07 : Futures et Forex Trading dans QuantConn | Python 3 | DEMO | ALPHA | 45min | po-2026 |
-| 59 | QC-Py-08 - Multi-Asset Portfolio Strategies | Python 3 | DEMO | ALPHA | 45min | po-2026 |
-| 60 | QC-Py-09 : Types d'Ordres et Order Management dans | Python 3 | DEMO | PRODUCTION | 45min | po-2026 |
-| 61 | QC-Py-10 - Risk Management et Portfolio Management | Python 3 | DEMO | ALPHA | 45min | po-2026 |
-| 62 | QC-Py-11 - Indicateurs Techniques dans QuantConnec | Python 3 | DEMO | ALPHA | 45min | po-2026 |
-| 63 | QC-Py-12 - Backtesting et Analyse de Performance | Python 3 | DEMO | ALPHA | 1h30 | po-2026 |
-| 64 | QC-Py-13 - Alpha Models et Algorithm Framework | Python 3 | DEMO | ALPHA | 45min | po-2026 |
-| 65 | QC-Py-14 - Portfolio Construction et Execution Mod | Python 3 | DEMO | ALPHA | 1h | po-2026 |
-| 66 | QC-Py-15 - Parameter Optimization et Walk-Forward | Python 3 | READY | PRODUCTION | 1h | po-2026 |
-| 67 | QC-Py-16 - Alternative Data dans QuantConnect | Python 3 | DEMO | ALPHA | 45min | po-2026 |
-| 68 | QC-Py-17 - Sentiment Analysis pour le Trading | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 69 | QC-Py-18 - Feature Engineering pour Machine Learni | Python 3 | READY | PRODUCTION | 1h | po-2026 |
-| 70 | QC-Py-19 - Machine Learning Classification pour Di | Python 3 | READY | PRODUCTION | 1h | po-2026 |
-| 71 | QC-Py-20 - Machine Learning Regression pour Price | Python 3 | DEMO | ALPHA | 1h | po-2026 |
-| 72 | QC-Py-21 - Portfolio Optimization avec Machine Lea | Python 3 | DEMO | ALPHA | 1h | po-2026 |
-| 73 | QC-Py-22 - Modern Time Series Deep Learning (SOTA | Python 3 | READY | PRODUCTION | 1h | po-2026 |
-| 74 | QC-Py-23 - State Space Models (Mamba) pour Trading | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 75 | QC-Py-23b - PatchTST et iTransformer pour Previsio | Python 3 | READY | BETA | 45min | po-2026 |
-| 76 | QC-Py-24 - Modèles Génératifs pour Anomaly Detecti | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 77 | QC-Py-25 - Reinforcement Learning pour le Trading | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 78 | QC-Py-26 - LLM Trading Signals | Python 3 | DEMO | ALPHA | 45min | po-2026 |
-| 79 | QC-Py-27 - Production Deployment | Python 3 | DEMO | ALPHA | 30min | po-2026 |
-| 80 | QC-Py-28 - Market Regime Detection | Python 3 | DEMO | BETA | 45min | po-2026 |
-| 81 | QC-Py-30 - LSTM Training Multi-Asset (GPU) | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 82 | QC-Py-31 - Transformer Encoder Multi-Asset (GPU) | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 83 | QC-Py-32 - Reinforcement Learning DQN pour le Trad | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 84 | QC-Py-33 - Reinforcement Learning PPO pour le Trad | Python 3 | READY | BETA | 45min | po-2026 |
-| 85 | QC-Py-34 - SAC et A2C : Comparaison d'Agents RL po | Python 3 | READY | BETA | 45min | po-2026 |
-| 86 | QC-Py-35 - Reinforcement Learning pour la Construc | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 87 | QC-Py-40 : Paper Trading Binance - Mean Reversion | Python 3 | READY | PRODUCTION | 45min | po-2026 |
-| 88 | QC-Py-41 : Paper Trading IBKR - SP500 Momentum | Python 3 | READY | PRODUCTION | 30min | po-2026 |
-| 89 | QC-Py-Cloud-01 : Analyse de Sentiment FinBERT sur | Python 3 | READY | BETA | 30min | po-2026 |
-| 90 | QC-Py-Cloud-01 — Risk Parity Composite Multi-Asset | Python 3 | READY | ALPHA | 5min | po-2026 |
-| 91 | QC-Py-Cloud-02 : Classification de Texte et Sentim | Python 3 | DEMO | PRODUCTION | 15min | po-2026 |
-| 92 | QC-Py-Cloud-02 — Sector Rotation & Multi-Asset Mom | Python 3 | READY | ALPHA | 5min | po-2026 |
-| 93 | QC-Py-Cloud-03 — Dual Momentum : Asset Selection M | Python 3 | READY | ALPHA | 5min | po-2026 |
-| 94 | QC-Py-Cloud-03 : Parite de Risque (Risk Parity) | Python 3 | DEMO | PRODUCTION | 15min | po-2026 |
-| 95 | QC-Py-Cloud-04 — Mean Reversion on Sector ETFs | Python 3 | READY | ALPHA | 5min | po-2026 |
-| 96 | QC-Py-Cloud-04 : Reinforcement Learning - DQN Trad | Python 3 | READY | PRODUCTION | 15min | po-2026 |
-| 97 | QC-Py-Cloud-05 : Prevision par Reseau de Neurones | Python 3 | READY | PRODUCTION | 15min | po-2026 |
-| 98 | QC-Py-Cloud-05 — Regime Switching : Momentum in Bu | Python 3 | READY | ALPHA | 5min | po-2026 |
-| 99 | QC-Py-Cloud-06 — PCA Statistical Arbitrage Mean Re | Python 3 | READY | ALPHA | 5min | po-2026 |
-| 100 | QC-Py-Cloud-06 -- Volatility Targeting : Risk Mana | Python 3 | READY | ALPHA | 5min | po-2026 |
-| 101 | QC-Py-Cloud-07 — Temporal CNN Direction Prediction | Python 3 | READY | ALPHA | 5min | po-2026 |
-| 102 | Workflow : Téléchargement et gestion des datasets | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
+| 7 | Research QuantBook: BTC ML Enhanced | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
+| 8 | Research QuantBook: Multi-Channel ZigZag Crypto | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
+| 9 | Initializing environment | .NET (C#) | DEMO | BETA | 1h30 | po-2026 |
+| 10 | Research QuantBook: Deep Learning LSTM pour SPY | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
+| 11 | Research QuantBook: DualMomentum (Antonacci) | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 12 | Research QuantBook: Dual Momentum No TLT | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 13 | Research QuantBook: EMA-Cross Alpha Model | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 14 | Research QuantBook: EMA Cross Equity | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 15 | Research QuantBook: EMA Crossover SPY Index | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 16 | Research QuantBook: Multi-Stock EMA Crossover | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 17 | Research QuantBook: ETF Pairs Trading | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 18 | Research QuantBook: Fama-French Factor ETF Rotatio | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 19 | Research QuantBook: ForexCarry (G10 FX Momentum) | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 20 | Research QuantBook: Framework Composite EMA-Trend | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 21 | Research QuantBook: Framework Composite FamaFrench | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 22 | Research QuantBook: Framework Composite Momentum + | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 23 | Framework Composite TrendWeather - Research | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 24 | Research QuantBook: FuturesTrend (Donchian Breakou | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 25 | Research QuantBook: Mean Reversion (Sector ETFs) | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 26 | Research QuantBook: ML Classification (RandomFores | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 27 | ML Deep Learning - LSTM/GRU pour Trading | Python 3 | BROKEN | BETA | 45min | po-2026 |
+| 28 | Research QuantBook: ML-Enhanced Pairs Trading | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 29 | Research QuantBook: ML Ensemble | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 30 | Research QuantBook: ML Feature Engineering | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 31 | ML Random Forest - Classification pour Trading | Python 3 | READY | BETA | 45min | po-2026 |
+| 32 | Research QuantBook: ML Regression | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
+| 33 | ML SVM - Support Vector Machine pour Trading | Python 3 | READY | BETA | 45min | po-2026 |
+| 34 | ML Text Classification for Trading | Python 3 | DEMO | ALPHA | 45min | po-2026 |
+| 35 | ML XGBoost - Gradient Boosting pour Trading | Python 3 | BROKEN | BETA | 45min | po-2026 |
+| 36 | Research QuantBook: MomentumStrategy (Sector ETF R | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 37 | Research QuantBook: Equity Multi-Layer EMA + ML Fi | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 38 | Research QuantBook: Option Wheel Strategy | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 39 | Research QuantBook: Options Wheel Tech Stocks | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 40 | Research QuantBook: Covered Call Strategy | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 41 | Research QuantBook: PairsTrading (Statistical Arbi | Python 3 | DEMO | ALPHA | 30min | po-2026 |
+| 42 | Research QuantBook: RegimeSwitching Alpha Model | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 43 | runner | Python 3 | BROKEN | DRAFT | 15min | po-2026 |
+| 44 | Research QuantBook: RiskParity (Inverse-Volatility | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 45 | Research QuantBook: RL Portfolio Allocation | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
+| 46 | Research QuantBook: Sector-Momentum (Dual Momentum | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 47 | Research QuantBook: Trend Following Competition | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 48 | Research QuantBook: TrendStocks Alpha Model | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 49 | Research QuantBook: TurnOfMonth (Calendar Anomaly) | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 50 | Research QuantBook: VIX-TermStructure (Short Volat | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
+| 51 | QC-Py-01 : Configuration et Premier Backtest Quant | Python 3 | DEMO | PRODUCTION | 30min | po-2026 |
+| 52 | QC-Py-02 : QuantConnect Platform Fundamentals - QC | Python 3 | DEMO | PRODUCTION | 30min | po-2026 |
+| 53 | QC-Py-03 - Data Management in QuantConnect | Python 3 | DEMO | PRODUCTION | 45min | po-2026 |
+| 54 | QC-Py-04 - Research Workflow with QuantBook | Python 3 | BROKEN | BETA | 1h | po-2026 |
+| 55 | QC-Py-05 - Universe Selection dans QuantConnect | Python 3 | DEMO | PRODUCTION | 45min | po-2026 |
+| 56 | QC-Py-06 : Options Trading dans QuantConnect | Python 3 | DEMO | PRODUCTION | 45min | po-2026 |
+| 57 | QC-Py-07 : Futures et Forex Trading dans QuantConn | Python 3 | DEMO | ALPHA | 45min | po-2026 |
+| 58 | QC-Py-08 - Multi-Asset Portfolio Strategies | Python 3 | DEMO | ALPHA | 45min | po-2026 |
+| 59 | QC-Py-09 : Types d'Ordres et Order Management dans | Python 3 | DEMO | PRODUCTION | 45min | po-2026 |
+| 60 | QC-Py-10 - Risk Management et Portfolio Management | Python 3 | DEMO | ALPHA | 45min | po-2026 |
+| 61 | QC-Py-11 - Indicateurs Techniques dans QuantConnec | Python 3 | DEMO | ALPHA | 45min | po-2026 |
+| 62 | QC-Py-12 - Backtesting et Analyse de Performance | Python 3 | DEMO | ALPHA | 1h30 | po-2026 |
+| 63 | QC-Py-13 - Alpha Models et Algorithm Framework | Python 3 | DEMO | ALPHA | 45min | po-2026 |
+| 64 | QC-Py-14 - Portfolio Construction et Execution Mod | Python 3 | DEMO | ALPHA | 1h | po-2026 |
+| 65 | QC-Py-15 - Parameter Optimization et Walk-Forward | Python 3 | READY | PRODUCTION | 1h | po-2026 |
+| 66 | QC-Py-16 - Alternative Data dans QuantConnect | Python 3 | DEMO | ALPHA | 45min | po-2026 |
+| 67 | QC-Py-17 - Sentiment Analysis pour le Trading | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 68 | QC-Py-18 - Feature Engineering pour Machine Learni | Python 3 | READY | PRODUCTION | 1h | po-2026 |
+| 69 | QC-Py-19 - Machine Learning Classification pour Di | Python 3 | READY | PRODUCTION | 1h | po-2026 |
+| 70 | QC-Py-20 - Machine Learning Regression pour Price | Python 3 | DEMO | ALPHA | 1h | po-2026 |
+| 71 | QC-Py-21 - Portfolio Optimization avec Machine Lea | Python 3 | DEMO | ALPHA | 1h | po-2026 |
+| 72 | QC-Py-22 - Modern Time Series Deep Learning (SOTA | Python 3 | READY | PRODUCTION | 1h | po-2026 |
+| 73 | QC-Py-23 - State Space Models (Mamba) pour Trading | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 74 | QC-Py-23b - PatchTST et iTransformer pour Previsio | Python 3 | READY | BETA | 45min | po-2026 |
+| 75 | QC-Py-24 - Modèles Génératifs pour Anomaly Detecti | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 76 | QC-Py-25 - Reinforcement Learning pour le Trading | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 77 | QC-Py-26 - LLM Trading Signals | Python 3 | DEMO | ALPHA | 45min | po-2026 |
+| 78 | QC-Py-27 - Production Deployment | Python 3 | DEMO | ALPHA | 30min | po-2026 |
+| 79 | QC-Py-28 - Market Regime Detection | Python 3 | DEMO | BETA | 45min | po-2026 |
+| 80 | QC-Py-30 - LSTM Training Multi-Asset (GPU) | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 81 | QC-Py-31 - Transformer Encoder Multi-Asset (GPU) | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 82 | QC-Py-32 - Reinforcement Learning DQN pour le Trad | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 83 | QC-Py-33 - Reinforcement Learning PPO pour le Trad | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 84 | QC-Py-34 - SAC et A2C : Comparaison d'Agents RL po | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 85 | QC-Py-35 - Reinforcement Learning pour la Construc | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 86 | QC-Py-40 : Paper Trading Binance - Mean Reversion | Python 3 | READY | PRODUCTION | 45min | po-2026 |
+| 87 | QC-Py-41 : Paper Trading IBKR - SP500 Momentum | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 88 | QC-Py-Cloud-01 : Analyse de Sentiment FinBERT sur | Python 3 | READY | PRODUCTION | 30min | po-2026 |
+| 89 | QC-Py-Cloud-01 — Risk Parity Composite Multi-Asset | Python 3 | READY | ALPHA | 5min | po-2026 |
+| 90 | QC-Py-Cloud-02 : Classification de Texte et Sentim | Python 3 | DEMO | PRODUCTION | 15min | po-2026 |
+| 91 | QC-Py-Cloud-02 — Sector Rotation & Multi-Asset Mom | Python 3 | READY | ALPHA | 5min | po-2026 |
+| 92 | QC-Py-Cloud-03 — Dual Momentum : Asset Selection M | Python 3 | READY | ALPHA | 5min | po-2026 |
+| 93 | QC-Py-Cloud-03 : Parite de Risque (Risk Parity) | Python 3 | DEMO | PRODUCTION | 15min | po-2026 |
+| 94 | QC-Py-Cloud-04 — Mean Reversion on Sector ETFs | Python 3 | READY | ALPHA | 5min | po-2026 |
+| 95 | QC-Py-Cloud-04 : Reinforcement Learning - DQN Trad | Python 3 | READY | PRODUCTION | 15min | po-2026 |
+| 96 | QC-Py-Cloud-05 : Prevision par Reseau de Neurones | Python 3 | READY | PRODUCTION | 15min | po-2026 |
+| 97 | QC-Py-Cloud-05 — Regime Switching : Momentum in Bu | Python 3 | READY | ALPHA | 5min | po-2026 |
+| 98 | QC-Py-Cloud-06 — PCA Statistical Arbitrage Mean Re | Python 3 | READY | ALPHA | 5min | po-2026 |
+| 99 | QC-Py-Cloud-06 -- Volatility Targeting : Risk Mana | Python 3 | READY | ALPHA | 5min | po-2026 |
+| 100 | QC-Py-Cloud-07 — Temporal CNN Direction Prediction | Python 3 | READY | ALPHA | 5min | po-2026 |
+| 101 | Workflow : Téléchargement et gestion des datasets | Python 3 | BROKEN | PRODUCTION | 45min | po-2026 |
-### GameTheory (25 notebooks) — READY:25 | ALPHA:2, BETA:21, PRODUCTION:2
+### GameTheory (25 notebooks) — READY:25 | ALPHA:2, BETA:9, PRODUCTION:14
| # | Notebook | Kernel | Status | Maturity | Duration | Owner |
|---|----------|--------|--------|----------|----------|-------|
-| 1 | GameTheory-1-Setup | Python 3 | READY | BETA | 45min | po-2024 |
+| 1 | GameTheory-1-Setup | Python 3 | READY | PRODUCTION | 45min | po-2024 |
| 2 | GameTheory-10-ForwardInduction-SPE | Python 3 | READY | BETA | 30min | po-2024 |
| 3 | GameTheory-11-BayesianGames | Python 3 | READY | BETA | 45min | po-2024 |
-| 4 | GameTheory-12-ReputationGames | Python 3 | READY | BETA | 30min | po-2024 |
-| 5 | GameTheory-13 : Jeux a Information Imparfaite et C | Python (GameTheory WSL + OpenS | READY | BETA | 45min | po-2024 |
+| 4 | GameTheory-12-ReputationGames | Python 3 | READY | PRODUCTION | 30min | po-2024 |
+| 5 | GameTheory-13 : Jeux a Information Imparfaite et C | Python (GameTheory WSL + OpenS | READY | PRODUCTION | 45min | po-2024 |
| 6 | GameTheory-14 : Jeux Differentiels et Equilibres d | Python 3 | READY | BETA | 30min | po-2024 |
| 7 | GameTheory-15-CooperativeGames | Python (GameTheory WSL + OpenS | READY | PRODUCTION | 45min | po-2024 |
| 8 | GameTheory 15b - Jeux Cooperatifs en Lean : Formal | Lean 4 (WSL) | READY | PRODUCTION | 45min | po-2024 |
-| 9 | GameTheory 15c - Jeux Cooperatifs Lean (Python) | Python (GameTheory WSL + OpenS | READY | BETA | 30min | po-2024 |
-| 10 | GameTheory-16 : Theorie des Mecanismes et Principe | Python (GameTheory WSL + OpenS | READY | BETA | 30min | po-2024 |
-| 11 | GameTheory-17 : Apprentissage par Renforcement Mul | Python (GameTheory WSL + OpenS | READY | BETA | 30min | po-2024 |
+| 9 | GameTheory 15c - Jeux Cooperatifs Lean (Python) | Python (GameTheory WSL + OpenS | READY | PRODUCTION | 30min | po-2024 |
+| 10 | GameTheory-16 : Theorie des Mecanismes et Principe | Python (GameTheory WSL + OpenS | READY | PRODUCTION | 30min | po-2024 |
+| 11 | GameTheory-17 : Apprentissage par Renforcement Mul | Python (GameTheory WSL + OpenS | READY | PRODUCTION | 30min | po-2024 |
| 12 | GameTheory-2-NormalForm | Python 3 | READY | BETA | 45min | po-2024 |
-| 13 | GameTheory 2b - Formalisation Lean : Definitions d | Lean 4 (WSL) | READY | BETA | 45min | po-2024 |
+| 13 | GameTheory 2b - Formalisation Lean : Definitions d | Lean 4 (WSL) | READY | PRODUCTION | 45min | po-2024 |
| 14 | GameTheory-3-Topology2x2 | Python (GameTheory WSL + OpenS | READY | BETA | 45min | po-2024 |
| 15 | GameTheory-4-NashEquilibrium | Python (GameTheory WSL + OpenS | READY | BETA | 30min | po-2024 |
-| 16 | GameTheory 4b - Theoreme d'Existence de Nash (Lean | Lean 4 (WSL) | READY | BETA | 30min | po-2024 |
+| 16 | GameTheory 4b - Theoreme d'Existence de Nash (Lean | Lean 4 (WSL) | READY | PRODUCTION | 30min | po-2024 |
| 17 | GameTheory 4c - Theoreme d'Existence de Nash (Pyth | Python 3 | READY | ALPHA | 30min | po-2024 |
| 18 | GameTheory-5-ZeroSum-Minimax | Python (GameTheory WSL + OpenS | READY | BETA | 30min | po-2024 |
| 19 | GameTheory-6-EvolutionTrust | Python (GameTheory WSL + OpenS | READY | BETA | 45min | po-2024 |
-| 20 | GameTheory-7-ExtensiveForm | Python 3 | READY | BETA | 30min | po-2024 |
+| 20 | GameTheory-7-ExtensiveForm | Python 3 | READY | PRODUCTION | 30min | po-2024 |
| 21 | GameTheory-9-BackwardInduction | Python 3 | READY | BETA | 30min | po-2024 |
-| 22 | SocialChoice 01 - Theoreme d'Arrow : Preuve Formel | Python 3 | READY | BETA | 30min | po-2024 |
+| 22 | SocialChoice 01 - Theoreme d'Arrow : Preuve Formel | Python 3 | READY | PRODUCTION | 30min | po-2024 |
| 23 | SocialChoice 02 - Choix Social Formel en Lean 4 | Lean 4 (WSL) | READY | ALPHA | 45min | po-2024 |
-| 24 | SocialChoice 03 - Methodes de Vote et Paradoxes | Python 3 | READY | BETA | 45min | po-2024 |
-| 25 | SocialChoice 04 - Agregation Computationnelle : SA | Python 3 (WSL) | READY | BETA | 45min | po-2024 |
+| 24 | SocialChoice 03 - Methodes de Vote et Paradoxes | Python 3 | READY | PRODUCTION | 45min | po-2024 |
+| 25 | SocialChoice 04 - Agregation Computationnelle : SA | Python 3 (WSL) | READY | PRODUCTION | 45min | po-2024 |
-### Sudoku (32 notebooks) — DEMO:1, READY:31 | BETA:24, PRODUCTION:8
+### Sudoku (32 notebooks) — DEMO:1, READY:31 | BETA:10, PRODUCTION:22
| # | Notebook | Kernel | Status | Maturity | Duration | Owner |
|---|----------|--------|--------|----------|----------|-------|
-| 1 | Sudoku-0 : Environnement et Classes de Base (C#) | .NET (C#) | READY | BETA | 30min | po-2023 |
+| 1 | Sudoku-0 : Environnement et Classes de Base (C#) | .NET (C#) | READY | PRODUCTION | 30min | po-2023 |
| 2 | Sudoku-1 : Resolution par Backtracking | .NET (C#) | READY | BETA | 30min | po-2023 |
| 3 | Sudoku-1 : Resolution par Backtracking (Python) | Python 3 | READY | BETA | 30min | po-2023 |
| 4 | Sudoku-10 : Resolution avec OR-Tools (C#) | .NET (C#) | READY | BETA | 45min | po-2023 |
@@ -480,58 +480,58 @@ Total notebooks: 504
| 6 | Sudoku-11-Choco-Csharp : Solveur Choco via IKVM | .NET (C#) | READY | BETA | 30min | po-2023 |
| 7 | Notebook 11: Resolution de Sudoku avec Choco Const | Python 3 | READY | PRODUCTION | 30min | po-2023 |
| 8 | Sudoku-12 : Resolution avec Z3 SMT Solver (C#) | .NET (C#) | READY | BETA | 45min | po-2023 |
-| 9 | Sudoku-12-Z3-Python : Z3 SMT Solver (Python) | Python 3 | READY | BETA | 30min | po-2023 |
+| 9 | Sudoku-12-Z3-Python : Z3 SMT Solver (Python) | Python 3 | READY | PRODUCTION | 30min | po-2023 |
| 10 | Sudoku-12 : Theorie des Automates Symboliques et C | .NET (C#) | READY | BETA | 45min | po-2023 |
| 11 | Sudoku-13 : Automates avec BDD/MDD - Approche Pure | .NET (C#) | READY | BETA | 45min | po-2023 |
| 12 | Résolution de Sudoku avec Infer.NET | .NET (C#) | READY | BETA | 45min | po-2023 |
-| 13 | Sudoku-15-Infer-Python : Resolution Probabiliste a | Python 3 | READY | BETA | 30min | po-2023 |
-| 14 | Sudoku-16 : Résolution par Réseaux de Neurones | Python 3 | DEMO | BETA | 1h | po-2023 |
+| 13 | Sudoku-15-Infer-Python : Resolution Probabiliste a | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 14 | Sudoku-16 : Résolution par Réseaux de Neurones | Python 3 | DEMO | PRODUCTION | 1h | po-2023 |
| 15 | Notebook 17: Resolution de Sudoku avec Large Langu | Python 3 | READY | PRODUCTION | 30min | po-2023 |
| 16 | Comparaison des Solveurs de Sudoku | Python 3 | READY | BETA | 45min | po-2023 |
-| 17 | Resolution de Sudoku avec Algorithm X et Dancing L | .NET (C#) | READY | BETA | 30min | po-2023 |
+| 17 | Resolution de Sudoku avec Algorithm X et Dancing L | .NET (C#) | READY | PRODUCTION | 30min | po-2023 |
| 18 | Sudoku-Python-DancingLinks : Dancing Links / Algor | Python 3 | READY | PRODUCTION | 30min | po-2023 |
-| 19 | Sudoku-3 : Resolution par Algorithme Genetique (C# | .NET (C#) | READY | BETA | 45min | po-2023 |
-| 20 | Sudoku-Python-Genetic : Algorithme Genetique (Pyth | Python 3 | READY | BETA | 30min | po-2023 |
-| 21 | Résolution de Sudoku par Recuit Simulé | .NET (C#) | READY | BETA | 45min | po-2023 |
+| 19 | Sudoku-3 : Resolution par Algorithme Genetique (C# | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
+| 20 | Sudoku-Python-Genetic : Algorithme Genetique (Pyth | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 21 | Résolution de Sudoku par Recuit Simulé | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
| 22 | Sudoku-4 : Recuit Simule (Python) | Python 3 | READY | PRODUCTION | 45min | po-2023 |
-| 23 | Sudoku-5 : Particle Swarm Optimization (PSO) | .NET (C#) | READY | BETA | 45min | po-2023 |
-| 24 | Sudoku-5 : Particle Swarm Optimization (Python) | Python 3 | READY | BETA | 30min | po-2023 |
-| 25 | Sudoku-6 : Resolution par CSP Academique (AIMA) | .NET (C#) | READY | BETA | 45min | po-2023 |
-| 26 | Sudoku-6 : Resolution par CSP Academique (Python) | Python 3 | READY | BETA | 45min | po-2023 |
+| 23 | Sudoku-5 : Particle Swarm Optimization (PSO) | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
+| 24 | Sudoku-5 : Particle Swarm Optimization (Python) | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 25 | Sudoku-6 : Resolution par CSP Academique (AIMA) | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
+| 26 | Sudoku-6 : Resolution par CSP Academique (Python) | Python 3 | READY | PRODUCTION | 45min | po-2023 |
| 27 | Sudoku-7 : Resolution par Propagation de Contraint | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
-| 28 | Le Sudoku comme CSP | Python 3 | READY | BETA | 30min | po-2023 |
+| 28 | Le Sudoku comme CSP | Python 3 | READY | PRODUCTION | 30min | po-2023 |
| 29 | Résolution de Sudoku par Stratégies Humaines | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
| 30 | Sudoku-8 : Resolution par Strategies Humaines (Pyt | Python 3 | READY | BETA | 45min | po-2023 |
| 31 | Notebook 9: Resolution de Sudoku par Coloration de | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
-| 32 | Sudoku-9-GraphColoring-Python : Coloration de Grap | Python 3 | READY | BETA | 30min | po-2023 |
+| 32 | Sudoku-9-GraphColoring-Python : Coloration de Grap | Python 3 | READY | PRODUCTION | 30min | po-2023 |
-### Probas (43 notebooks) — READY:43 | BETA:33, PRODUCTION:10
+### Probas (43 notebooks) — READY:43 | BETA:14, PRODUCTION:29
| # | Notebook | Kernel | Status | Maturity | Duration | Owner |
|---|----------|--------|--------|----------|----------|-------|
-| 1 | PyMC-1 : Configuration et Premier Modele | Python 3 | READY | BETA | 15min | po-2023 |
-| 2 | PyMC-10 : Crowdsourcing - Agregation de Labels et | Python 3 | READY | BETA | 30min | po-2023 |
-| 3 | PyMC-11 — Modeles de Sequences et Chaines de Marko | Python 3 | READY | BETA | 45min | po-2023 |
-| 4 | PyMC-12-Recommenders : Systemes de Recommandation | Python 3 | READY | BETA | 45min | po-2023 |
-| 5 | PyMC-13-Debugging : Troubleshooting et Bonnes Prat | Python 3 | READY | BETA | 30min | po-2023 |
+| 1 | PyMC-1 : Configuration et Premier Modele | Python 3 | READY | PRODUCTION | 15min | po-2023 |
+| 2 | PyMC-10 : Crowdsourcing - Agregation de Labels et | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 3 | PyMC-11 — Modeles de Sequences et Chaines de Marko | Python 3 | READY | PRODUCTION | 45min | po-2023 |
+| 4 | PyMC-12-Recommenders : Systemes de Recommandation | Python 3 | READY | PRODUCTION | 45min | po-2023 |
+| 5 | PyMC-13-Debugging : Troubleshooting et Bonnes Prat | Python 3 | READY | PRODUCTION | 30min | po-2023 |
| 6 | PyMC-14-Decision-Utility-Foundations : Axiomes et | Python 3 | READY | PRODUCTION | 30min | po-2023 |
| 7 | PyMC-15-Decision-Utility-Money : Utilite de l'Arge | Python 3 | READY | PRODUCTION | 30min | po-2023 |
| 8 | PyMC-16-Decision-Multi-Attribute : Utilite Multi-A | Python 3 | READY | PRODUCTION | 45min | po-2023 |
| 9 | PyMC-17-Decision-Networks : Reseaux de Decision | Python 3 | READY | PRODUCTION | 30min | po-2023 |
-| 10 | PyMC-18 : Valeur de l'Information | Python 3 | READY | BETA | 30min | po-2023 |
-| 11 | PyMC-19 : Systemes Experts et Decisions Robustes | Python 3 | READY | BETA | 30min | po-2023 |
-| 12 | PyMC-2 : Distributions Gaussiennes et Melanges | Python 3 | READY | BETA | 30min | po-2023 |
-| 13 | PyMC-20 : MDPs, Bandits et POMDPs | Python 3 | READY | BETA | 30min | po-2023 |
-| 14 | PyMC-3 : Graphes de Facteurs et Inference Discrete | Python 3 | READY | BETA | 15min | po-2023 |
-| 15 | PyMC-4 : Reseaux Bayesiens | Python 3 | READY | BETA | 30min | po-2023 |
-| 16 | PyMC-5 : Modeles de Competences (IRT et DINA) | Python 3 | READY | BETA | 30min | po-2023 |
-| 17 | PyMC-6 : TrueSkill - Classement et Apprentissage e | Python 3 | READY | BETA | 30min | po-2023 |
-| 18 | PyMC-7 : Classification Bayesienne et Tests A/B | Python 3 | READY | BETA | 30min | po-2023 |
-| 19 | PyMC-8 : Selection de Modeles et Comparaison Bayes | Python 3 | READY | BETA | 30min | po-2023 |
-| 20 | PyMC-9 : Modeles de Sujets (Topic Models) et LDA | Python 3 | READY | BETA | 30min | po-2023 |
+| 10 | PyMC-18 : Valeur de l'Information | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 11 | PyMC-19 : Systemes Experts et Decisions Robustes | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 12 | PyMC-2 : Distributions Gaussiennes et Melanges | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 13 | PyMC-20 : MDPs, Bandits et POMDPs | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 14 | PyMC-3 : Graphes de Facteurs et Inference Discrete | Python 3 | READY | PRODUCTION | 15min | po-2023 |
+| 15 | PyMC-4 : Reseaux Bayesiens | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 16 | PyMC-5 : Modeles de Competences (IRT et DINA) | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 17 | PyMC-6 : TrueSkill - Classement et Apprentissage e | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 18 | PyMC-7 : Classification Bayesienne et Tests A/B | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 19 | PyMC-8 : Selection de Modeles et Comparaison Bayes | Python 3 | READY | PRODUCTION | 30min | po-2023 |
+| 20 | PyMC-9 : Modeles de Sujets (Topic Models) et LDA | Python 3 | READY | PRODUCTION | 30min | po-2023 |
| 21 | Infer-1-Setup : Introduction et Installation | .NET (C#) | READY | BETA | 45min | po-2023 |
-| 22 | Infer-10-Crowdsourcing : Agregation de Labels et F | .NET (C#) | READY | BETA | 45min | po-2023 |
-| 23 | Infer-11-Sequences : Hidden Markov Models et Serie | .NET (C#) | READY | BETA | 1h | po-2023 |
+| 22 | Infer-10-Crowdsourcing : Agregation de Labels et F | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
+| 23 | Infer-11-Sequences : Hidden Markov Models et Serie | .NET (C#) | READY | PRODUCTION | 1h | po-2023 |
| 24 | Infer-12-Recommenders : Systemes de Recommandation | .NET (C#) | READY | BETA | 1h | po-2023 |
| 25 | Infer-13-Debugging : Troubleshooting et Bonnes Pra | .NET (C#) | READY | BETA | 45min | po-2023 |
| 26 | Infer-14-Decision-Utility-Foundations : Axiomes et | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
@@ -540,7 +540,7 @@ Total notebooks: 504
| 29 | Infer-17-Decision-Networks : Reseaux de Decision | .NET (C#) | READY | BETA | 45min | po-2023 |
| 30 | Infer-18-Decision-Value-Information : Valeur de l' | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
| 31 | Infer-19-Decision-Expert-Systems : Decisions Robus | .NET (C#) | READY | PRODUCTION | 45min | po-2023 |
-| 32 | Infer-2-Gaussian-Mixtures : Distributions Gaussien | .NET (C#) | READY | BETA | 1h | po-2023 |
+| 32 | Infer-2-Gaussian-Mixtures : Distributions Gaussien | .NET (C#) | READY | PRODUCTION | 1h | po-2023 |
| 33 | Infer-20-Decision-Sequential : MDPs, Bandits et PO | .NET (C#) | READY | BETA | 45min | po-2023 |
| 34 | Infer-3-Factor-Graphs : Graphes de Facteurs et Inf | .NET (C#) | READY | BETA | 45min | po-2023 |
| 35 | Infer-4-Bayesian-Networks : Reseaux Bayesiens Clas | .NET (C#) | READY | BETA | 45min | po-2023 |
@@ -553,11 +553,11 @@ Total notebooks: 504
| 42 | HMM Gaussian Alpha -- Generation de signaux direct | Python 3 | READY | PRODUCTION | 45min | po-2023 |
| 43 | Le Framework Rational Speech Act (RSA) | Python 3 | READY | BETA | 30min | po-2023 |
-### IIT (1 notebooks) — READY:1 | BETA:1
+### IIT (1 notebooks) — READY:1 | PRODUCTION:1
| # | Notebook | Kernel | Status | Maturity | Duration | Owner |
|---|----------|--------|--------|----------|----------|-------|
-| 1 | IIT - Introduction à PyPhi et Integrated Informati | pyphi | READY | BETA | 30min | po-2025 |
+| 1 | IIT - Introduction à PyPhi et Integrated Informati | pyphi | READY | PRODUCTION | 30min | po-2025 |
### RL (6 notebooks) — READY:6 | BETA:1, PRODUCTION:5
@@ -573,8 +573,8 @@ Total notebooks: 504
## Requirements
-- **API**: 114 notebooks
+- **API**: 115 notebooks
- **GPU**: 77 notebooks
-- **Cloud**: 102 notebooks
-- **WSL**: 25 notebooks
+- **Cloud**: 101 notebooks
+- **WSL**: 26 notebooks
- **Local**: 244 notebooks
\ No newline at end of file
diff --git a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-0-init.ipynb b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-0-init.ipynb
index 9abd8b3bc..b4d7f4487 100644
--- a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-0-init.ipynb
+++ b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-0-init.ipynb
@@ -5,10 +5,10 @@
"id": "6196daf0",
"metadata": {
"papermill": {
- "duration": 0.022834,
- "end_time": "2026-05-01T10:41:30.519516+00:00",
+ "duration": 0.01587,
+ "end_time": "2026-05-31T19:37:01.769844",
"exception": false,
- "start_time": "2026-05-01T10:41:30.496682+00:00",
+ "start_time": "2026-05-31T19:37:01.753974",
"status": "completed"
},
"tags": []
@@ -42,10 +42,10 @@
"id": "80571e1e",
"metadata": {
"papermill": {
- "duration": 0.022074,
- "end_time": "2026-05-01T10:41:30.563898+00:00",
+ "duration": 0.017281,
+ "end_time": "2026-05-31T19:37:01.802668",
"exception": false,
- "start_time": "2026-05-01T10:41:30.541824+00:00",
+ "start_time": "2026-05-31T19:37:01.785387",
"status": "completed"
},
"tags": []
@@ -66,30 +66,35 @@
"id": "a3661e07",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-01T10:41:30.611873Z",
- "iopub.status.busy": "2026-05-01T10:41:30.611554Z",
- "iopub.status.idle": "2026-05-01T10:41:39.149596Z",
- "shell.execute_reply": "2026-05-01T10:41:39.147987Z"
+ "iopub.execute_input": "2026-05-31T19:37:01.836453Z",
+ "iopub.status.busy": "2026-05-31T19:37:01.836034Z",
+ "iopub.status.idle": "2026-05-31T19:37:09.353080Z",
+ "shell.execute_reply": "2026-05-31T19:37:09.345894Z"
},
"papermill": {
- "duration": 8.564884,
- "end_time": "2026-05-01T10:41:39.152149+00:00",
+ "duration": 7.548767,
+ "end_time": "2026-05-31T19:37:09.366782",
"exception": false,
- "start_time": "2026-05-01T10:41:30.587265+00:00",
+ "start_time": "2026-05-31T19:37:01.818015",
"status": "completed"
},
"tags": []
},
"outputs": [
{
- "output_type": "stream",
"name": "stdout",
- "text": "--- Verification compatibilite semantic-kernel/openai ---\n"
+ "output_type": "stream",
+ "text": [
+ "--- Verification compatibilite semantic-kernel/openai ---\n"
+ ]
},
{
- "output_type": "stream",
"name": "stdout",
- "text": "Import semantic_kernel OK\n--- Fin verification compatibilite ---\n"
+ "output_type": "stream",
+ "text": [
+ "Import semantic_kernel OK\n",
+ "--- Fin verification compatibilite ---\n"
+ ]
}
],
"source": [
@@ -143,10 +148,10 @@
"id": "pmpm31xh56",
"metadata": {
"papermill": {
- "duration": 0.023269,
- "end_time": "2026-05-01T10:41:39.198676+00:00",
+ "duration": 0.083549,
+ "end_time": "2026-05-31T19:37:09.557127",
"exception": false,
- "start_time": "2026-05-01T10:41:39.175407+00:00",
+ "start_time": "2026-05-31T19:37:09.473578",
"status": "completed"
},
"tags": []
@@ -169,85 +174,594 @@
"id": "dd1eb173",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-01T10:41:39.246214Z",
- "iopub.status.busy": "2026-05-01T10:41:39.245546Z",
- "iopub.status.idle": "2026-05-01T10:43:04.786505Z",
- "shell.execute_reply": "2026-05-01T10:43:04.784910Z"
+ "iopub.execute_input": "2026-05-31T19:37:09.720826Z",
+ "iopub.status.busy": "2026-05-31T19:37:09.720295Z",
+ "iopub.status.idle": "2026-05-31T19:38:07.968957Z",
+ "shell.execute_reply": "2026-05-31T19:38:07.967861Z"
},
"papermill": {
- "duration": 85.56825,
- "end_time": "2026-05-01T10:43:04.788769+00:00",
+ "duration": 58.27579,
+ "end_time": "2026-05-31T19:38:07.969923",
"exception": false,
- "start_time": "2026-05-01T10:41:39.220519+00:00",
+ "start_time": "2026-05-31T19:37:09.694133",
"status": "completed"
},
"tags": []
},
"outputs": [
{
- "output_type": "stream",
"name": "stderr",
- "text": "\n[notice] A new release of pip is available: 24.0 -> 26.1.1\n[notice] To update, run: python.exe -m pip install --upgrade pip\n18:46:27 [INFO] [Orchestration.Setup] --- Vérification des dépendances ---\n"
+ "output_type": "stream",
+ "text": [
+ " WARNING: Failed to remove contents in a temporary directory 'C:\\Users\\jsboi\\miniconda3\\Lib\\site-packages\\~ydantic_core'.\n",
+ " You can safely remove it manually.\n",
+ "ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
+ "markitdown-mcp 0.0.1a4 requires mcp~=1.8.0, but you have mcp 1.27.0 which is incompatible.\n",
+ "streamlit 1.53.1 requires pandas<3,>=1.4.0, but you have pandas 3.0.3 which is incompatible.\n",
+ "agent-framework-foundry 1.3.0 requires azure-ai-projects<3.0,>=2.1.0, but you have azure-ai-projects 1.0.0 which is incompatible.\n",
+ "datasets 4.8.5 requires fsspec[http]<=2026.2.0,>=2023.1.0, but you have fsspec 2026.3.0 which is incompatible.\n",
+ "litellm 1.83.7 requires openai==2.30.0, but you have openai 2.38.0 which is incompatible.\n",
+ "litellm 1.83.7 requires pydantic==2.12.5, but you have pydantic 2.13.4 which is incompatible.\n",
+ "litellm 1.83.7 requires python-dotenv==1.0.1, but you have python-dotenv 1.2.2 which is incompatible.\n",
+ "21:38:06 [INFO] [Orchestration.Setup] --- Vérification des dépendances ---\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:27 [INFO] [Orchestration.Setup] ✔️ Dépendance 'jpype' trouvée.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:06 [INFO] [Orchestration.Setup] ✔️ Dépendance 'jpype' trouvée.\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:27 [INFO] [Orchestration.Setup] ✔️ Dépendance 'semantic_kernel' trouvée.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:06 [INFO] [Orchestration.Setup] ✔️ Dépendance 'semantic_kernel' trouvée.\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:27 [INFO] [Orchestration.Setup] ✔️ Dépendance 'dotenv' trouvée.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:06 [INFO] [Orchestration.Setup] ✔️ Dépendance 'dotenv' trouvée.\n"
+ ]
},
{
- "output_type": "stream",
"name": "stdout",
- "text": "Requirement already satisfied: semantic-kernel in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (1.41.3)\nRequirement already satisfied: python-dotenv in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (1.2.2)\nRequirement already satisfied: ipywidgets in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (8.1.8)\nRequirement already satisfied: jpype1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (1.7.1)\nRequirement already satisfied: requests in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (2.33.1)\nRequirement already satisfied: tqdm in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (4.67.3)\nRequirement already satisfied: pandas in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (3.0.2)\nRequirement already satisfied: azure-ai-projects~=1.0.0b12 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (1.0.0)\nRequirement already satisfied: azure-ai-agents>=1.2.0b3 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (1.2.0b6)\nRequirement already satisfied: aiohttp~=3.8 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (3.13.3)\nRequirement already satisfied: cloudevents~=1.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (1.12.0)\nRequirement already satisfied: pydantic!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.13,>=2.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (2.12.5)\nRequirement already satisfied: pydantic-settings~=2.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (2.11.0)\nRequirement already satisfied: defusedxml~=0.7 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (0.7.1)\nRequirement already satisfied: azure-identity>=1.13 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (1.25.1)\nRequirement already satisfied: numpy>=1.25.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (2.3.4)\nRequirement already satisfied: openai>=2.0.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (2.26.0)\nRequirement already satisfied: openapi_core<0.20,>=0.18 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (0.19.5)\nRequirement already satisfied: websockets<16,>=13 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (15.0.1)\nRequirement already satisfied: aiortc>=1.9.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (1.14.0)\nRequirement already satisfied: opentelemetry-api~=1.24 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (1.39.1)\nRequirement already satisfied: opentelemetry-sdk~=1.24 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (1.39.1)\nRequirement already satisfied: prance<25.4.9,>=23.6.21 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (23.6.21.0)\nRequirement already satisfied: pybars4~=0.9 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (0.9.13)\nRequirement already satisfied: jinja2~=3.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (3.1.6)\nRequirement already satisfied: nest-asyncio~=1.6 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (1.6.0)\nRequirement already satisfied: scipy>=1.15.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (1.17.0)\nRequirement already satisfied: typing-extensions>=4.13 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (4.15.0)\nRequirement already satisfied: mcp>=1.26.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from semantic-kernel) (1.26.0)\nRequirement already satisfied: comm>=0.1.3 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipywidgets) (0.2.3)\nRequirement already satisfied: ipython>=6.1.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipywidgets) (9.9.0)\nRequirement already satisfied: traitlets>=4.3.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipywidgets) (5.14.3)\nRequirement already satisfied: widgetsnbextension~=4.0.14 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipywidgets) (4.0.15)\nRequirement already satisfied: jupyterlab_widgets~=3.0.15 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipywidgets) (3.0.16)\nRequirement already satisfied: packaging in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from jpype1) (25.0)\nRequirement already satisfied: charset_normalizer<4,>=2 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from requests) (3.4.4)\nRequirement already satisfied: idna<4,>=2.5 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from requests) (3.11)\nRequirement already satisfied: urllib3<3,>=1.26 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from requests) (2.5.0)\nRequirement already satisfied: certifi>=2023.5.7 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from requests) (2025.10.5)\nRequirement already satisfied: colorama in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from tqdm) (0.4.6)\nRequirement already satisfied: python-dateutil>=2.8.2 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from pandas) (2.9.0.post0)\nRequirement already satisfied: tzdata in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from pandas) (2025.2)\nRequirement already satisfied: aiohappyeyeballs>=2.5.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiohttp~=3.8->semantic-kernel) (2.6.1)\nRequirement already satisfied: aiosignal>=1.4.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiohttp~=3.8->semantic-kernel) (1.4.0)\nRequirement already satisfied: attrs>=17.3.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiohttp~=3.8->semantic-kernel) (25.4.0)\nRequirement already satisfied: frozenlist>=1.1.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiohttp~=3.8->semantic-kernel) (1.8.0)\nRequirement already satisfied: multidict<7.0,>=4.5 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiohttp~=3.8->semantic-kernel) (6.7.1)\nRequirement already satisfied: propcache>=0.2.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiohttp~=3.8->semantic-kernel) (0.4.1)\nRequirement already satisfied: yarl<2.0,>=1.17.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiohttp~=3.8->semantic-kernel) (1.22.0)\nRequirement already satisfied: aioice<1.0.0,>=0.10.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiortc>=1.9.0->semantic-kernel) (0.10.2)\nRequirement already satisfied: av<17.0.0,>=14.0.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiortc>=1.9.0->semantic-kernel) (16.1.0)\nRequirement already satisfied: cryptography>=44.0.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiortc>=1.9.0->semantic-kernel) (46.0.3)\nRequirement already satisfied: google-crc32c>=1.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiortc>=1.9.0->semantic-kernel) (1.8.0)\nRequirement already satisfied: pyee>=13.0.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiortc>=1.9.0->semantic-kernel) (13.0.0)\nRequirement already satisfied: pylibsrtp>=0.10.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiortc>=1.9.0->semantic-kernel) (1.0.0)\nRequirement already satisfied: pyopenssl>=25.0.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aiortc>=1.9.0->semantic-kernel) (25.3.0)\nRequirement already satisfied: isodate>=0.6.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from azure-ai-agents>=1.2.0b3->semantic-kernel) (0.7.2)\nRequirement already satisfied: azure-core>=1.30.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from azure-ai-agents>=1.2.0b3->semantic-kernel) (1.40.0)\nRequirement already satisfied: azure-storage-blob>=12.15.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from azure-ai-projects~=1.0.0b12->semantic-kernel) (12.28.0)\nRequirement already satisfied: msal>=1.30.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from azure-identity>=1.13->semantic-kernel) (1.34.0)\nRequirement already satisfied: msal-extensions>=1.2.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from azure-identity>=1.13->semantic-kernel) (1.3.1)\nRequirement already satisfied: deprecation<3.0,>=2.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from cloudevents~=1.0->semantic-kernel) (2.1.0)\nRequirement already satisfied: decorator>=4.3.2 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipython>=6.1.0->ipywidgets) (5.2.1)\nRequirement already satisfied: ipython-pygments-lexers>=1.0.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipython>=6.1.0->ipywidgets) (1.1.1)\nRequirement already satisfied: jedi>=0.18.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipython>=6.1.0->ipywidgets) (0.19.2)\nRequirement already satisfied: matplotlib-inline>=0.1.5 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipython>=6.1.0->ipywidgets) (0.2.1)\nRequirement already satisfied: prompt_toolkit<3.1.0,>=3.0.41 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipython>=6.1.0->ipywidgets) (3.0.52)\nRequirement already satisfied: pygments>=2.11.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipython>=6.1.0->ipywidgets) (2.19.2)\nRequirement already satisfied: stack_data>=0.6.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from ipython>=6.1.0->ipywidgets) (0.6.3)\nRequirement already satisfied: MarkupSafe>=2.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from jinja2~=3.1->semantic-kernel) (3.0.3)\nRequirement already satisfied: anyio>=4.5 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (4.11.0)\nRequirement already satisfied: httpx-sse>=0.4 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (0.4.3)\nRequirement already satisfied: httpx>=0.27.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (0.28.1)\nRequirement already satisfied: jsonschema>=4.20.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (4.26.0)\nRequirement already satisfied: pyjwt>=2.10.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from pyjwt[crypto]>=2.10.1->mcp>=1.26.0->semantic-kernel) (2.10.1)\nRequirement already satisfied: python-multipart>=0.0.9 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (0.0.20)\nRequirement already satisfied: pywin32>=310 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (311)\nRequirement already satisfied: sse-starlette>=1.6.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (3.0.2)\nRequirement already satisfied: starlette>=0.27 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (0.49.1)\nRequirement already satisfied: typing-inspection>=0.4.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (0.4.2)\nRequirement already satisfied: uvicorn>=0.31.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (0.38.0)\nRequirement already satisfied: distro<2,>=1.7.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from openai>=2.0.0->semantic-kernel) (1.9.0)\nRequirement already satisfied: jiter<1,>=0.10.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from openai>=2.0.0->semantic-kernel) (0.13.0)\nRequirement already satisfied: sniffio in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from openai>=2.0.0->semantic-kernel) (1.3.1)\nRequirement already satisfied: jsonschema-path<0.4.0,>=0.3.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (0.3.4)\nRequirement already satisfied: more-itertools in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (10.8.0)\nRequirement already satisfied: openapi-schema-validator<0.7.0,>=0.6.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (0.6.3)\nRequirement already satisfied: openapi-spec-validator<0.8.0,>=0.7.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (0.7.2)\nRequirement already satisfied: parse in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (1.20.2)\nRequirement already satisfied: werkzeug<3.1.2 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (3.1.1)\nRequirement already satisfied: importlib-metadata<8.8.0,>=6.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from opentelemetry-api~=1.24->semantic-kernel) (8.7.1)\nRequirement already satisfied: opentelemetry-semantic-conventions==0.60b1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from opentelemetry-sdk~=1.24->semantic-kernel) (0.60b1)\nRequirement already satisfied: chardet>=3.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from prance<25.4.9,>=23.6.21->semantic-kernel) (5.2.0)\nRequirement already satisfied: ruamel.yaml>=0.17.10 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from prance<25.4.9,>=23.6.21->semantic-kernel) (0.19.1)\nRequirement already satisfied: six~=1.15 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from prance<25.4.9,>=23.6.21->semantic-kernel) (1.17.0)\nRequirement already satisfied: PyMeta3>=0.5.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from pybars4~=0.9->semantic-kernel) (0.5.1)\nRequirement already satisfied: annotated-types>=0.6.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from pydantic!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.13,>=2.0->semantic-kernel) (0.7.0)\nRequirement already satisfied: pydantic-core==2.41.5 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from pydantic!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.13,>=2.0->semantic-kernel) (2.41.5)\nRequirement already satisfied: dnspython>=2.0.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aioice<1.0.0,>=0.10.1->aiortc>=1.9.0->semantic-kernel) (2.8.0)\nRequirement already satisfied: ifaddr>=0.2.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from aioice<1.0.0,>=0.10.1->aiortc>=1.9.0->semantic-kernel) (0.2.0)\nRequirement already satisfied: cffi>=2.0.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from cryptography>=44.0.0->aiortc>=1.9.0->semantic-kernel) (2.0.0)\nRequirement already satisfied: httpcore==1.* in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from httpx>=0.27.1->mcp>=1.26.0->semantic-kernel) (1.0.9)\nRequirement already satisfied: h11>=0.16 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from httpcore==1.*->httpx>=0.27.1->mcp>=1.26.0->semantic-kernel) (0.16.0)\nRequirement already satisfied: zipp>=3.20 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from importlib-metadata<8.8.0,>=6.0->opentelemetry-api~=1.24->semantic-kernel) (3.23.0)\nRequirement already satisfied: parso<0.9.0,>=0.8.4 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from jedi>=0.18.1->ipython>=6.1.0->ipywidgets) (0.8.5)\nRequirement already satisfied: jsonschema-specifications>=2023.03.6 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from jsonschema>=4.20.0->mcp>=1.26.0->semantic-kernel) (2025.9.1)\nRequirement already satisfied: referencing>=0.28.4 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from jsonschema>=4.20.0->mcp>=1.26.0->semantic-kernel) (0.36.2)\nRequirement already satisfied: rpds-py>=0.25.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from jsonschema>=4.20.0->mcp>=1.26.0->semantic-kernel) (0.30.0)\nRequirement already satisfied: PyYAML>=5.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from jsonschema-path<0.4.0,>=0.3.1->openapi_core<0.20,>=0.18->semantic-kernel) (6.0.3)\nRequirement already satisfied: pathable<0.5.0,>=0.4.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from jsonschema-path<0.4.0,>=0.3.1->openapi_core<0.20,>=0.18->semantic-kernel) (0.4.4)\nRequirement already satisfied: rfc3339-validator in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from openapi-schema-validator<0.7.0,>=0.6.0->openapi_core<0.20,>=0.18->semantic-kernel) (0.1.4)\nRequirement already satisfied: lazy-object-proxy<2.0.0,>=1.7.1 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from openapi-spec-validator<0.8.0,>=0.7.1->openapi_core<0.20,>=0.18->semantic-kernel) (1.12.0)\nRequirement already satisfied: wcwidth in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from prompt_toolkit<3.1.0,>=3.0.41->ipython>=6.1.0->ipywidgets) (0.4.0)\nRequirement already satisfied: executing>=1.2.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from stack_data>=0.6.0->ipython>=6.1.0->ipywidgets) (2.2.1)\nRequirement already satisfied: asttokens>=2.1.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from stack_data>=0.6.0->ipython>=6.1.0->ipywidgets) (3.0.1)\nRequirement already satisfied: pure-eval in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from stack_data>=0.6.0->ipython>=6.1.0->ipywidgets) (0.2.3)\nRequirement already satisfied: click>=7.0 in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from uvicorn>=0.31.1->mcp>=1.26.0->semantic-kernel) (8.3.0)\nRequirement already satisfied: pycparser in c:\\users\\jsboi\\appdata\\local\\programs\\python\\python311\\lib\\site-packages (from cffi>=2.0.0->cryptography>=44.0.0->aiortc>=1.9.0->semantic-kernel) (2.23)\nNote: you may need to restart the kernel to use updated packages.\n"
+ "output_type": "stream",
+ "text": [
+ "Requirement already satisfied: semantic-kernel in C:\\ProgramData\\miniconda3\\Lib\\site-packages (1.42.0)\n",
+ "Requirement already satisfied: python-dotenv in C:\\ProgramData\\miniconda3\\Lib\\site-packages (1.2.2)\n",
+ "Requirement already satisfied: ipywidgets in C:\\ProgramData\\miniconda3\\Lib\\site-packages (8.1.8)\n",
+ "Requirement already satisfied: jpype1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (1.7.0)\n",
+ "Collecting jpype1\n",
+ " Using cached jpype1-1.7.1-cp313-cp313-win_amd64.whl.metadata (4.3 kB)\n",
+ "Requirement already satisfied: requests in C:\\ProgramData\\miniconda3\\Lib\\site-packages (2.33.1)\n",
+ "Collecting requests\n",
+ " Using cached requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)\n",
+ "Requirement already satisfied: tqdm in C:\\ProgramData\\miniconda3\\Lib\\site-packages (4.67.3)\n",
+ "Requirement already satisfied: pandas in C:\\ProgramData\\miniconda3\\Lib\\site-packages (3.0.2)\n",
+ "Collecting pandas\n",
+ " Using cached pandas-3.0.3-cp313-cp313-win_amd64.whl.metadata (19 kB)\n",
+ "Requirement already satisfied: azure-ai-projects~=1.0.0b12 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from semantic-kernel) (1.0.0)\n",
+ "Requirement already satisfied: azure-ai-agents>=1.2.0b3 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from semantic-kernel) (1.2.0b3)\n",
+ "Requirement already satisfied: aiohttp~=3.8 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from semantic-kernel) (3.13.5)\n",
+ "Requirement already satisfied: cloudevents~=1.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from semantic-kernel) (1.12.0)\n",
+ "Requirement already satisfied: pydantic!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.14,>=2.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from semantic-kernel) (2.10.6)\n",
+ "Requirement already satisfied: pydantic-settings~=2.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from semantic-kernel) (2.12.0)\n",
+ "Requirement already satisfied: defusedxml~=0.7 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from semantic-kernel) (0.7.1)\n",
+ "Requirement already satisfied: azure-identity>=1.13 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from semantic-kernel) (1.24.0)\n",
+ "Requirement already satisfied: numpy>=1.26.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from semantic-kernel) (2.2.6)\n",
+ "Collecting openai>=2.0.0 (from semantic-kernel)\n",
+ " Using cached openai-2.38.0-py3-none-any.whl.metadata (31 kB)\n",
+ "Requirement already satisfied: openapi_core<0.20,>=0.18 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from semantic-kernel) (0.19.5)\n",
+ "Requirement already satisfied: websockets<16,>=13 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from semantic-kernel) (15.0.1)\n",
+ "Requirement already satisfied: aiortc>=1.9.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from semantic-kernel) (1.13.0)\n",
+ "Requirement already satisfied: opentelemetry-api~=1.24 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from semantic-kernel) (1.41.1)\n",
+ "Requirement already satisfied: opentelemetry-sdk~=1.24 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from semantic-kernel) (1.41.1)\n",
+ "Requirement already satisfied: prance<25.4.9,>=23.6.21 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from semantic-kernel) (23.6.21.0)\n",
+ "Requirement already satisfied: pybars4~=0.9 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from semantic-kernel) (0.9.13)\n",
+ "Requirement already satisfied: jinja2~=3.1 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from semantic-kernel) (3.1.6)\n",
+ "Requirement already satisfied: nest-asyncio~=1.6 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from semantic-kernel) (1.6.0)\n",
+ "Requirement already satisfied: scipy>=1.15.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from semantic-kernel) (1.17.0)\n",
+ "Requirement already satisfied: typing-extensions>=4.13 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from semantic-kernel) (4.15.0)\n",
+ "Requirement already satisfied: mcp>=1.26.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from semantic-kernel) (1.27.0)\n",
+ "Requirement already satisfied: aiohappyeyeballs>=2.5.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiohttp~=3.8->semantic-kernel) (2.6.1)\n",
+ "Requirement already satisfied: aiosignal>=1.4.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiohttp~=3.8->semantic-kernel) (1.4.0)\n",
+ "Requirement already satisfied: attrs>=17.3.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from aiohttp~=3.8->semantic-kernel) (26.1.0)\n",
+ "Requirement already satisfied: frozenlist>=1.1.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiohttp~=3.8->semantic-kernel) (1.7.0)\n",
+ "Requirement already satisfied: multidict<7.0,>=4.5 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiohttp~=3.8->semantic-kernel) (6.6.4)\n",
+ "Requirement already satisfied: propcache>=0.2.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiohttp~=3.8->semantic-kernel) (0.3.2)\n",
+ "Requirement already satisfied: yarl<2.0,>=1.17.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiohttp~=3.8->semantic-kernel) (1.20.1)\n",
+ "Requirement already satisfied: isodate>=0.6.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from azure-ai-projects~=1.0.0b12->semantic-kernel) (0.7.2)\n",
+ "Requirement already satisfied: azure-core>=1.30.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from azure-ai-projects~=1.0.0b12->semantic-kernel) (1.41.0)\n",
+ "Requirement already satisfied: azure-storage-blob>=12.15.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from azure-ai-projects~=1.0.0b12->semantic-kernel) (12.26.0)\n",
+ "Requirement already satisfied: deprecation<3.0,>=2.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from cloudevents~=1.0->semantic-kernel) (2.1.0)\n",
+ "Requirement already satisfied: packaging in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from deprecation<3.0,>=2.0->cloudevents~=1.0->semantic-kernel) (26.1)\n",
+ "Requirement already satisfied: MarkupSafe>=2.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from jinja2~=3.1->semantic-kernel) (3.0.3)\n",
+ "Requirement already satisfied: jsonschema<5.0.0,>=4.18.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (4.23.0)\n",
+ "Requirement already satisfied: jsonschema-path<0.4.0,>=0.3.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (0.3.4)\n",
+ "Requirement already satisfied: more-itertools in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (10.8.0)\n",
+ "Requirement already satisfied: openapi-schema-validator<0.7.0,>=0.6.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (0.6.3)\n",
+ "Requirement already satisfied: openapi-spec-validator<0.8.0,>=0.7.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (0.7.2)\n",
+ "Requirement already satisfied: parse in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (1.20.2)\n",
+ "Requirement already satisfied: werkzeug<3.1.2 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from openapi_core<0.20,>=0.18->semantic-kernel) (3.1.1)\n",
+ "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from jsonschema<5.0.0,>=4.18.0->openapi_core<0.20,>=0.18->semantic-kernel) (2025.9.1)\n",
+ "Requirement already satisfied: referencing>=0.28.4 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from jsonschema<5.0.0,>=4.18.0->openapi_core<0.20,>=0.18->semantic-kernel) (0.36.2)\n",
+ "Requirement already satisfied: rpds-py>=0.7.1 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from jsonschema<5.0.0,>=4.18.0->openapi_core<0.20,>=0.18->semantic-kernel) (0.30.0)\n",
+ "Requirement already satisfied: PyYAML>=5.1 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from jsonschema-path<0.4.0,>=0.3.1->openapi_core<0.20,>=0.18->semantic-kernel) (6.0.3)\n",
+ "Requirement already satisfied: pathable<0.5.0,>=0.4.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from jsonschema-path<0.4.0,>=0.3.1->openapi_core<0.20,>=0.18->semantic-kernel) (0.4.4)\n",
+ "Requirement already satisfied: charset_normalizer<4,>=2 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from requests) (3.4.4)\n",
+ "Requirement already satisfied: idna<4,>=2.5 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from requests) (3.11)\n",
+ "Requirement already satisfied: urllib3<3,>=1.26 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from requests) (2.6.3)\n",
+ "Requirement already satisfied: certifi>=2023.5.7 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from requests) (2026.1.4)\n",
+ "Requirement already satisfied: rfc3339-validator in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from openapi-schema-validator<0.7.0,>=0.6.0->openapi_core<0.20,>=0.18->semantic-kernel) (0.1.4)\n",
+ "Requirement already satisfied: lazy-object-proxy<2.0.0,>=1.7.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from openapi-spec-validator<0.8.0,>=0.7.1->openapi_core<0.20,>=0.18->semantic-kernel) (1.12.0)\n",
+ "Requirement already satisfied: importlib-metadata<8.8.0,>=6.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from opentelemetry-api~=1.24->semantic-kernel) (8.5.0)\n",
+ "Requirement already satisfied: zipp>=3.20 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from importlib-metadata<8.8.0,>=6.0->opentelemetry-api~=1.24->semantic-kernel) (3.23.0)\n",
+ "Requirement already satisfied: opentelemetry-semantic-conventions==0.62b1 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from opentelemetry-sdk~=1.24->semantic-kernel) (0.62b1)\n",
+ "Requirement already satisfied: chardet>=3.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from prance<25.4.9,>=23.6.21->semantic-kernel) (5.2.0)\n",
+ "Requirement already satisfied: ruamel.yaml>=0.17.10 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from prance<25.4.9,>=23.6.21->semantic-kernel) (0.18.16)\n",
+ "Requirement already satisfied: six~=1.15 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from prance<25.4.9,>=23.6.21->semantic-kernel) (1.17.0)\n",
+ "Requirement already satisfied: PyMeta3>=0.5.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from pybars4~=0.9->semantic-kernel) (0.5.1)\n",
+ "Requirement already satisfied: annotated-types>=0.6.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from pydantic!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.14,>=2.0->semantic-kernel) (0.7.0)\n",
+ "Requirement already satisfied: pydantic-core==2.27.2 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from pydantic!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.14,>=2.0->semantic-kernel) (2.27.2)\n",
+ "Requirement already satisfied: typing-inspection>=0.4.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from pydantic-settings~=2.0->semantic-kernel) (0.4.2)\n",
+ "Requirement already satisfied: comm>=0.1.3 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from ipywidgets) (0.2.3)\n",
+ "Requirement already satisfied: ipython>=6.1.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from ipywidgets) (9.13.0)\n",
+ "Requirement already satisfied: traitlets>=4.3.1 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from ipywidgets) (5.14.3)\n",
+ "Requirement already satisfied: widgetsnbextension~=4.0.14 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from ipywidgets) (4.0.14)\n",
+ "Requirement already satisfied: jupyterlab_widgets~=3.0.15 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from ipywidgets) (3.0.15)\n",
+ "Requirement already satisfied: colorama in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from tqdm) (0.4.6)\n",
+ "Requirement already satisfied: python-dateutil>=2.8.2 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from pandas) (2.9.0.post0)\n",
+ "Requirement already satisfied: tzdata in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from pandas) (2025.2)\n",
+ "Requirement already satisfied: aioice<1.0.0,>=0.10.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiortc>=1.9.0->semantic-kernel) (0.10.1)\n",
+ "Requirement already satisfied: av<15.0.0,>=14.0.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiortc>=1.9.0->semantic-kernel) (14.4.0)\n",
+ "Requirement already satisfied: cffi>=1.0.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from aiortc>=1.9.0->semantic-kernel) (2.0.0)\n",
+ "Requirement already satisfied: cryptography>=44.0.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from aiortc>=1.9.0->semantic-kernel) (45.0.7)\n",
+ "Requirement already satisfied: google-crc32c>=1.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiortc>=1.9.0->semantic-kernel) (1.7.1)\n",
+ "Requirement already satisfied: pyee>=13.0.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiortc>=1.9.0->semantic-kernel) (13.0.0)\n",
+ "Requirement already satisfied: pylibsrtp>=0.10.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiortc>=1.9.0->semantic-kernel) (0.12.0)\n",
+ "Requirement already satisfied: pyopenssl>=25.0.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aiortc>=1.9.0->semantic-kernel) (25.1.0)\n",
+ "Requirement already satisfied: dnspython>=2.0.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aioice<1.0.0,>=0.10.1->aiortc>=1.9.0->semantic-kernel) (2.7.0)\n",
+ "Requirement already satisfied: ifaddr>=0.2.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from aioice<1.0.0,>=0.10.1->aiortc>=1.9.0->semantic-kernel) (0.2.0)\n",
+ "Requirement already satisfied: msal>=1.30.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from azure-identity>=1.13->semantic-kernel) (1.33.0)\n",
+ "Requirement already satisfied: msal-extensions>=1.2.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from azure-identity>=1.13->semantic-kernel) (1.3.1)\n",
+ "Requirement already satisfied: pycparser in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from cffi>=1.0.0->aiortc>=1.9.0->semantic-kernel) (2.23)\n",
+ "Requirement already satisfied: decorator>=5.1.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from ipython>=6.1.0->ipywidgets) (5.2.1)\n",
+ "Requirement already satisfied: ipython-pygments-lexers>=1.0.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from ipython>=6.1.0->ipywidgets) (1.1.1)\n",
+ "Requirement already satisfied: jedi>=0.18.2 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from ipython>=6.1.0->ipywidgets) (0.19.2)\n",
+ "Requirement already satisfied: matplotlib-inline>=0.1.6 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from ipython>=6.1.0->ipywidgets) (0.1.7)\n",
+ "Requirement already satisfied: prompt_toolkit<3.1.0,>=3.0.41 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from ipython>=6.1.0->ipywidgets) (3.0.52)\n",
+ "Requirement already satisfied: psutil>=7 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from ipython>=6.1.0->ipywidgets) (7.2.2)\n",
+ "Requirement already satisfied: pygments>=2.14.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from ipython>=6.1.0->ipywidgets) (2.19.2)\n",
+ "Requirement already satisfied: stack_data>=0.6.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from ipython>=6.1.0->ipywidgets) (0.6.3)\n",
+ "Requirement already satisfied: wcwidth in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from prompt_toolkit<3.1.0,>=3.0.41->ipython>=6.1.0->ipywidgets) (0.2.13)\n",
+ "Requirement already satisfied: parso<0.9.0,>=0.8.4 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from jedi>=0.18.2->ipython>=6.1.0->ipywidgets) (0.8.5)\n",
+ "Requirement already satisfied: anyio>=4.5 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from mcp>=1.26.0->semantic-kernel) (4.12.1)\n",
+ "Requirement already satisfied: httpx-sse>=0.4 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (0.4.3)\n",
+ "Requirement already satisfied: httpx>=0.27.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from mcp>=1.26.0->semantic-kernel) (0.28.1)\n",
+ "Collecting pydantic!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.14,>=2.0 (from semantic-kernel)\n",
+ " Using cached pydantic-2.13.4-py3-none-any.whl.metadata (109 kB)\n",
+ "Requirement already satisfied: pyjwt>=2.10.1 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from pyjwt[crypto]>=2.10.1->mcp>=1.26.0->semantic-kernel) (2.10.1)\n",
+ "Requirement already satisfied: python-multipart>=0.0.9 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (0.0.27)\n",
+ "Requirement already satisfied: pywin32>=310 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (311)\n",
+ "Requirement already satisfied: sse-starlette>=1.6.1 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (3.4.1)\n",
+ "Requirement already satisfied: starlette>=0.27 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (0.50.0)\n",
+ "Requirement already satisfied: uvicorn>=0.31.1 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from mcp>=1.26.0->semantic-kernel) (0.41.0)\n",
+ "Collecting pydantic-core==2.46.4 (from pydantic!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.14,>=2.0->semantic-kernel)\n",
+ " Using cached pydantic_core-2.46.4-cp313-cp313-win_amd64.whl.metadata (6.7 kB)\n",
+ "Requirement already satisfied: httpcore==1.* in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from httpx>=0.27.1->mcp>=1.26.0->semantic-kernel) (1.0.9)\n",
+ "Requirement already satisfied: h11>=0.16 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from httpcore==1.*->httpx>=0.27.1->mcp>=1.26.0->semantic-kernel) (0.16.0)\n",
+ "Requirement already satisfied: distro<2,>=1.7.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from openai>=2.0.0->semantic-kernel) (1.9.0)\n",
+ "Requirement already satisfied: jiter<1,>=0.10.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from openai>=2.0.0->semantic-kernel) (0.12.0)\n",
+ "Requirement already satisfied: sniffio in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from openai>=2.0.0->semantic-kernel) (1.3.1)\n",
+ "Requirement already satisfied: ruamel.yaml.clib>=0.2.7 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from ruamel.yaml>=0.17.10->prance<25.4.9,>=23.6.21->semantic-kernel) (0.2.14)\n",
+ "Requirement already satisfied: executing>=1.2.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from stack_data>=0.6.0->ipython>=6.1.0->ipywidgets) (2.2.1)\n",
+ "Requirement already satisfied: asttokens>=2.1.0 in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from stack_data>=0.6.0->ipython>=6.1.0->ipywidgets) (3.0.0)\n",
+ "Requirement already satisfied: pure-eval in C:\\Users\\jsboi\\AppData\\Roaming\\Python\\Python313\\site-packages (from stack_data>=0.6.0->ipython>=6.1.0->ipywidgets) (0.2.3)\n",
+ "Requirement already satisfied: click>=7.0 in C:\\ProgramData\\miniconda3\\Lib\\site-packages (from uvicorn>=0.31.1->mcp>=1.26.0->semantic-kernel) (8.1.8)\n",
+ "Using cached requests-2.34.2-py3-none-any.whl (73 kB)\n",
+ "Using cached jpype1-1.7.1-cp313-cp313-win_amd64.whl (357 kB)\n",
+ "Using cached pandas-3.0.3-cp313-cp313-win_amd64.whl (9.8 MB)\n",
+ "Using cached pydantic-2.13.4-py3-none-any.whl (472 kB)\n",
+ "Using cached pydantic_core-2.46.4-cp313-cp313-win_amd64.whl (2.1 MB)\n",
+ "Using cached openai-2.38.0-py3-none-any.whl (1.3 MB)\n",
+ "Installing collected packages: requests, pydantic-core, jpype1, pydantic, pandas, openai\n",
+ "\n",
+ " Attempting uninstall: requests\n",
+ "\n",
+ " Found existing installation: requests 2.33.1\n",
+ "\n",
+ " Uninstalling requests-2.33.1:\n",
+ "\n",
+ " ---------------------------------------- 0/6 [requests]\n",
+ " Successfully uninstalled requests-2.33.1\n",
+ " ---------------------------------------- 0/6 [requests]\n",
+ " ---------------------------------------- 0/6 [requests]\n",
+ " Attempting uninstall: pydantic-core\n",
+ " ---------------------------------------- 0/6 [requests]\n",
+ " Found existing installation: pydantic_core 2.27.2\n",
+ " ---------------------------------------- 0/6 [requests]\n",
+ " Uninstalling pydantic_core-2.27.2:\n",
+ " ---------------------------------------- 0/6 [requests]\n",
+ " Successfully uninstalled pydantic_core-2.27.2\n",
+ " ---------------------------------------- 0/6 [requests]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " Attempting uninstall: jpype1\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " Found existing installation: jpype1 1.7.0\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " Uninstalling jpype1-1.7.0:\n",
+ " ------ --------------------------------- 1/6 [pydantic-core]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " Successfully uninstalled jpype1-1.7.0\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " Attempting uninstall: pydantic\n",
+ " ------------- -------------------------- 2/6 [jpype1]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " Found existing installation: pydantic 2.10.6\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " Uninstalling pydantic-2.10.6:\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " Successfully uninstalled pydantic-2.10.6\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " Attempting uninstall: pandas\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " Found existing installation: pandas 3.0.2\n",
+ " -------------------- ------------------- 3/6 [pydantic]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " Uninstalling pandas-3.0.2:\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " Successfully uninstalled pandas-3.0.2\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " Attempting uninstall: openai\n",
+ " -------------------------- ------------- 4/6 [pandas]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " Found existing installation: openai 1.109.1\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " Uninstalling openai-1.109.1:\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " Successfully uninstalled openai-1.109.1\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " --------------------------------- ------ 5/6 [openai]\n",
+ " ---------------------------------------- 6/6 [openai]\n",
+ "\n",
+ "Successfully installed jpype1-1.7.1 openai-2.33.0 pandas-3.0.3 pydantic-2.12.5 pydantic-core-2.41.5 requests-2.34.2\n",
+ "Note: you may need to restart the kernel to use updated packages.\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.Setup] ✔️ Dépendance 'pandas' trouvée.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:07 [INFO] [Orchestration.Setup] ✔️ Dépendance 'pandas' trouvée.\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.Setup] ✔️ Dépendance 'requests' trouvée.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:07 [INFO] [Orchestration.Setup] ✔️ Dépendance 'requests' trouvée.\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.Setup] \n✅ Dépendances principales vérifiées.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:07 [INFO] [Orchestration.Setup] \n",
+ "✅ Dépendances principales vérifiées.\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.Setup] --- Chargement Configuration LLM ---\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:07 [INFO] [Orchestration.Setup] --- Chargement Configuration LLM ---\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [ERROR] [Orchestration.Setup] ❌ Configuration OpenAI standard incomplète dans .env (OPENAI_API_KEY, OPENAI_CHAT_MODEL_ID requis).\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:07 [ERROR] [Orchestration.Setup] ❌ Configuration OpenAI standard incomplète dans .env (OPENAI_API_KEY, OPENAI_CHAT_MODEL_ID requis).\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [WARNING] [Orchestration.Setup] Configuration LLM incomplete. Verifiez votre fichier .env (OPENAI_API_KEY, OPENAI_CHAT_MODEL_ID).\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:07 [WARNING] [Orchestration.Setup] Configuration LLM incomplete. Verifiez votre fichier .env (OPENAI_API_KEY, OPENAI_CHAT_MODEL_ID).\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [WARNING] [Orchestration.Setup] Les cellules utilisant le service LLM fonctionneront en mode degrade.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:07 [WARNING] [Orchestration.Setup] Les cellules utilisant le service LLM fonctionneront en mode degrade.\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.Setup] --- Fin Configuration Initiale ---\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:07 [INFO] [Orchestration.Setup] --- Fin Configuration Initiale ---\n"
+ ]
}
],
"source": [
@@ -371,10 +885,10 @@
"id": "c689b59e",
"metadata": {
"papermill": {
- "duration": 0.050521,
- "end_time": "2026-05-01T10:43:04.881025+00:00",
+ "duration": 0.021562,
+ "end_time": "2026-05-31T19:38:08.012230",
"exception": false,
- "start_time": "2026-05-01T10:43:04.830504+00:00",
+ "start_time": "2026-05-31T19:38:07.990668",
"status": "completed"
},
"tags": []
@@ -391,30 +905,34 @@
"id": "ab60fc96",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-01T10:43:04.973644Z",
- "iopub.status.busy": "2026-05-01T10:43:04.972218Z",
- "iopub.status.idle": "2026-05-01T10:43:04.994366Z",
- "shell.execute_reply": "2026-05-01T10:43:04.992853Z"
+ "iopub.execute_input": "2026-05-31T19:38:08.057846Z",
+ "iopub.status.busy": "2026-05-31T19:38:08.057405Z",
+ "iopub.status.idle": "2026-05-31T19:38:08.071078Z",
+ "shell.execute_reply": "2026-05-31T19:38:08.069327Z"
},
"papermill": {
- "duration": 0.06857,
- "end_time": "2026-05-01T10:43:04.996875+00:00",
+ "duration": 0.037229,
+ "end_time": "2026-05-31T19:38:08.072399",
"exception": false,
- "start_time": "2026-05-01T10:43:04.928305+00:00",
+ "start_time": "2026-05-31T19:38:08.035170",
"status": "completed"
},
"tags": []
},
"outputs": [
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [WARNING] [Orchestration.Config] ⚠️ Configuration OpenAI standard incomplète dans .env (OPENAI_API_KEY, OPENAI_CHAT_MODEL_ID requis).\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [WARNING] [Orchestration.Config] ⚠️ Configuration OpenAI standard incomplète dans .env (OPENAI_API_KEY, OPENAI_CHAT_MODEL_ID requis).\n"
+ ]
},
{
- "output_type": "stream",
"name": "stdout",
- "text": "⚠️ Configuration OpenAI standard incomplète dans .env (OPENAI_API_KEY, OPENAI_CHAT_MODEL_ID requis).\n"
+ "output_type": "stream",
+ "text": [
+ "⚠️ Configuration OpenAI standard incomplète dans .env (OPENAI_API_KEY, OPENAI_CHAT_MODEL_ID requis).\n"
+ ]
}
],
"source": [
@@ -470,10 +988,10 @@
"id": "s3yp5wc2bg",
"metadata": {
"papermill": {
- "duration": 0.041323,
- "end_time": "2026-05-01T10:43:05.083891+00:00",
+ "duration": 0.027431,
+ "end_time": "2026-05-31T19:38:08.127570",
"exception": false,
- "start_time": "2026-05-01T10:43:05.042568+00:00",
+ "start_time": "2026-05-31T19:38:08.100139",
"status": "completed"
},
"tags": []
@@ -504,10 +1022,10 @@
"id": "478a85e7",
"metadata": {
"papermill": {
- "duration": 0.06134,
- "end_time": "2026-05-01T10:43:05.195798+00:00",
+ "duration": 0.029975,
+ "end_time": "2026-05-31T19:38:08.185771",
"exception": false,
- "start_time": "2026-05-01T10:43:05.134458+00:00",
+ "start_time": "2026-05-31T19:38:08.155796",
"status": "completed"
},
"tags": []
@@ -535,10 +1053,10 @@
"id": "a59062ad",
"metadata": {
"papermill": {
- "duration": 0.040261,
- "end_time": "2026-05-01T10:43:05.281784+00:00",
+ "duration": 0.024831,
+ "end_time": "2026-05-31T19:38:08.235535",
"exception": false,
- "start_time": "2026-05-01T10:43:05.241523+00:00",
+ "start_time": "2026-05-31T19:38:08.210704",
"status": "completed"
},
"tags": []
@@ -580,140 +1098,113 @@
"id": "cc5a8f2e",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-01T10:43:05.366407Z",
- "iopub.status.busy": "2026-05-01T10:43:05.365390Z",
- "iopub.status.idle": "2026-05-01T10:43:06.883996Z",
- "shell.execute_reply": "2026-05-01T10:43:06.882441Z"
+ "iopub.execute_input": "2026-05-31T19:38:08.281784Z",
+ "iopub.status.busy": "2026-05-31T19:38:08.281524Z",
+ "iopub.status.idle": "2026-05-31T19:38:08.320736Z",
+ "shell.execute_reply": "2026-05-31T19:38:08.319645Z"
},
"papermill": {
- "duration": 1.565075,
- "end_time": "2026-05-01T10:43:06.886634+00:00",
+ "duration": 0.066192,
+ "end_time": "2026-05-31T19:38:08.321631",
"exception": false,
- "start_time": "2026-05-01T10:43:05.321559+00:00",
+ "start_time": "2026-05-31T19:38:08.255439",
"status": "completed"
},
"tags": []
},
"outputs": [
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] \n--- Configuration Auto-Suffisante de la JVM (Option B - Embarquée) ---\n"
- },
- {
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] 🔍 Recherche JDK portable dans l'arborescence projet...\n"
+ "text": [
+ "21:38:08 [INFO] [Orchestration.JPype] \n",
+ "--- Configuration Auto-Suffisante de la JVM (Option B - Embarquée) ---\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ✅ JDK portable trouvé: C:\\dev\\CoursIA\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\jdk-17-portable\\zulu17.50.19-ca-jdk17.0.11-win_x64\n"
- },
- {
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] 🏠 JAVA_HOME configuré dynamiquement: C:\\dev\\CoursIA\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\jdk-17-portable\\zulu17.50.19-ca-jdk17.0.11-win_x64\n"
+ "text": [
+ "21:38:08 [INFO] [Orchestration.JPype] 🔍 Recherche JDK portable dans l'arborescence projet...\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] 📦 Construction du classpath Tweety...\n"
- },
- {
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] Scan des JARs dans: MyIA.AI.Notebooks\\SymbolicAI\\libs\n"
+ "text": [
+ "21:38:08 [WARNING] [Orchestration.JPype] ⚠️ JDK portable non trouvé dans les chemins standards\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ✅ 37 JARs trouvés dans MyIA.AI.Notebooks\\SymbolicAI\\libs\n"
- },
- {
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ✅ Classpath construit: 37 JARs Tweety\n"
+ "text": [
+ "21:38:08 [ERROR] [Orchestration.JPype] ❌ Impossible de localiser un JDK portable - JVM pourrait échouer\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] 🚀 Démarrage JVM avec 37 JARs Tweety...\n"
- },
- {
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ✅ JVM démarrée avec succès et domaines enregistrés\n"
+ "text": [
+ "21:38:08 [INFO] [Orchestration.JPype] 📦 Construction du classpath Tweety...\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ☕ Java 17.0.11 opérationnel\n"
- },
- {
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] 🎯 Test des classes critiques Tweety...\n"
+ "text": [
+ "21:38:08 [INFO] [Orchestration.JPype] Scan des JARs dans: MyIA.AI.Notebooks\\SymbolicAI\\libs\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ✅ InformationObject: Accessible\n"
- },
- {
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ✅ PlParser: Accessible\n"
+ "text": [
+ "21:38:08 [ERROR] [Orchestration.JPype] ❌ Aucun JAR Tweety trouvé dans les chemins standards\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ✅ PlFormula: Accessible\n"
- },
- {
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ✅ BaseRevisionOperator: Accessible\n"
+ "text": [
+ "21:38:08 [CRITICAL] [Orchestration.JPype] ❌ ERREUR CRITIQUE Configuration Java: Classpath Tweety vide - JARs manquants\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] 🏆 Test Tweety RÉUSSI: 4/4 classes accessibles\n"
- },
- {
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] \n🎉 🏆 SUCCÈS TOTAL - INFRASTRUCTURE TWEETY AUTO-SUFFISANTE! 🏆 🎉\n"
+ "text": [
+ "21:38:08 [CRITICAL] [Orchestration.JPype] PropositionalLogicAgent fonctionnera en mode dégradé (LLM seulement)\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ✅ PropositionalLogicAgent prêt pour exécution native\n"
- },
- {
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ✅ Pipeline argumentatif avec intégration formelle/informelle opérationnel\n"
+ "text": [
+ "21:38:08 [WARNING] [Orchestration.JPype] \n",
+ "🔴 STATUT FINAL: JVM/Tweety NON OPÉRATIONNELS\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] \n🟢 STATUT FINAL: JVM + Tweety OPÉRATIONNELS\n"
- },
- {
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] Pipeline peut atteindre son potentiel maximal (8/10)\n"
+ "text": [
+ "21:38:08 [WARNING] [Orchestration.JPype] Pipeline fonctionnera en mode dégradé (5/10)\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] --- Fin Configuration JPype Auto-Suffisante ---\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [INFO] [Orchestration.JPype] --- Fin Configuration JPype Auto-Suffisante ---\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.JPype] ✅ Tweety opérationnel - PropositionalLogicAgent en mode natif\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [WARNING] [Orchestration.JPype] ⚠️ JVM non prête - PropositionalLogicAgent en mode dégradé\n"
+ ]
}
],
"source": [
@@ -980,10 +1471,10 @@
"id": "7hq2u546fkr",
"metadata": {
"papermill": {
- "duration": 0.041263,
- "end_time": "2026-05-01T10:43:06.967357+00:00",
+ "duration": 0.023613,
+ "end_time": "2026-05-31T19:38:08.366684",
"exception": false,
- "start_time": "2026-05-01T10:43:06.926094+00:00",
+ "start_time": "2026-05-31T19:38:08.343071",
"status": "completed"
},
"tags": []
@@ -1020,10 +1511,10 @@
"id": "d201514e",
"metadata": {
"papermill": {
- "duration": 0.040603,
- "end_time": "2026-05-01T10:43:07.051023+00:00",
+ "duration": 0.023354,
+ "end_time": "2026-05-31T19:38:08.412113",
"exception": false,
- "start_time": "2026-05-01T10:43:07.010420+00:00",
+ "start_time": "2026-05-31T19:38:08.388759",
"status": "completed"
},
"tags": []
@@ -1043,10 +1534,10 @@
"id": "a13a208e",
"metadata": {
"papermill": {
- "duration": 0.040341,
- "end_time": "2026-05-01T10:43:07.132591+00:00",
+ "duration": 0.019893,
+ "end_time": "2026-05-31T19:38:08.455815",
"exception": false,
- "start_time": "2026-05-01T10:43:07.092250+00:00",
+ "start_time": "2026-05-31T19:38:08.435922",
"status": "completed"
},
"tags": []
@@ -1097,25 +1588,27 @@
"id": "a303fa9c",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-01T10:43:07.233368Z",
- "iopub.status.busy": "2026-05-01T10:43:07.232310Z",
- "iopub.status.idle": "2026-05-01T10:43:07.553644Z",
- "shell.execute_reply": "2026-05-01T10:43:07.552125Z"
+ "iopub.execute_input": "2026-05-31T19:38:08.538734Z",
+ "iopub.status.busy": "2026-05-31T19:38:08.537403Z",
+ "iopub.status.idle": "2026-05-31T19:38:08.578141Z",
+ "shell.execute_reply": "2026-05-31T19:38:08.577137Z"
},
"papermill": {
- "duration": 0.375617,
- "end_time": "2026-05-01T10:43:07.555912+00:00",
+ "duration": 0.10111,
+ "end_time": "2026-05-31T19:38:08.579071",
"exception": false,
- "start_time": "2026-05-01T10:43:07.180295+00:00",
+ "start_time": "2026-05-31T19:38:08.477961",
"status": "completed"
},
"tags": []
},
"outputs": [
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [root] Classe RhetoricalAnalysisState définie.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [INFO] [root] Classe RhetoricalAnalysisState définie.\n"
+ ]
}
],
"source": [
@@ -1320,10 +1813,10 @@
"id": "0d4166a2",
"metadata": {
"papermill": {
- "duration": 0.041865,
- "end_time": "2026-05-01T10:43:07.637984+00:00",
+ "duration": 0.021532,
+ "end_time": "2026-05-31T19:38:08.622562",
"exception": false,
- "start_time": "2026-05-01T10:43:07.596119+00:00",
+ "start_time": "2026-05-31T19:38:08.601030",
"status": "completed"
},
"tags": []
@@ -1378,25 +1871,27 @@
"id": "61903410",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-01T10:43:07.726388Z",
- "iopub.status.busy": "2026-05-01T10:43:07.725654Z",
- "iopub.status.idle": "2026-05-01T10:43:07.770231Z",
- "shell.execute_reply": "2026-05-01T10:43:07.768575Z"
+ "iopub.execute_input": "2026-05-31T19:38:08.671219Z",
+ "iopub.status.busy": "2026-05-31T19:38:08.670947Z",
+ "iopub.status.idle": "2026-05-31T19:38:08.698990Z",
+ "shell.execute_reply": "2026-05-31T19:38:08.697868Z"
},
"papermill": {
- "duration": 0.090866,
- "end_time": "2026-05-01T10:43:07.772405+00:00",
+ "duration": 0.057792,
+ "end_time": "2026-05-31T19:38:08.700252",
"exception": false,
- "start_time": "2026-05-01T10:43:07.681539+00:00",
+ "start_time": "2026-05-31T19:38:08.642460",
"status": "completed"
},
"tags": []
},
"outputs": [
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [root] Classe StateManagerPlugin définie.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [INFO] [root] Classe StateManagerPlugin définie.\n"
+ ]
}
],
"source": [
@@ -1559,10 +2054,10 @@
"id": "a754dbe1",
"metadata": {
"papermill": {
- "duration": 0.042102,
- "end_time": "2026-05-01T10:43:07.855826+00:00",
+ "duration": 0.021984,
+ "end_time": "2026-05-31T19:38:08.746493",
"exception": false,
- "start_time": "2026-05-01T10:43:07.813724+00:00",
+ "start_time": "2026-05-31T19:38:08.724509",
"status": "completed"
},
"tags": []
@@ -1606,50 +2101,62 @@
"id": "95c09e20",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-01T10:43:07.950898Z",
- "iopub.status.busy": "2026-05-01T10:43:07.950159Z",
- "iopub.status.idle": "2026-05-01T10:43:08.980262Z",
- "shell.execute_reply": "2026-05-01T10:43:08.978586Z"
+ "iopub.execute_input": "2026-05-31T19:38:08.798434Z",
+ "iopub.status.busy": "2026-05-31T19:38:08.798079Z",
+ "iopub.status.idle": "2026-05-31T19:38:08.820216Z",
+ "shell.execute_reply": "2026-05-31T19:38:08.818737Z"
},
"papermill": {
- "duration": 1.080619,
- "end_time": "2026-05-01T10:43:08.982995+00:00",
+ "duration": 0.046471,
+ "end_time": "2026-05-31T19:38:08.821260",
"exception": false,
- "start_time": "2026-05-01T10:43:07.902376+00:00",
+ "start_time": "2026-05-31T19:38:08.774789",
"status": "completed"
},
"tags": []
},
"outputs": [
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.LLM] --- Configuration du Service LLM Global ---\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [INFO] [Orchestration.LLM] --- Configuration du Service LLM Global ---\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.LLM] Configuration Service Global: OpenAIChatCompletion...\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [INFO] [Orchestration.LLM] Configuration Service Global: OpenAIChatCompletion...\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [WARNING] [Orchestration.LLM] Service LLM global non configure: The OpenAI API key is required.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [WARNING] [Orchestration.LLM] Service LLM global non configure: The OpenAI API key is required.\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [WARNING] [Orchestration.LLM] Les fonctionnalites dependent du service LLM seront en mode degrade.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [WARNING] [Orchestration.LLM] Les fonctionnalites dependent du service LLM seront en mode degrade.\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [WARNING] [Orchestration.LLM] Service LLM global non disponible (None). Mode degrade active.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [WARNING] [Orchestration.LLM] Service LLM global non disponible (None). Mode degrade active.\n"
+ ]
},
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [root] --- Fin Définitions Composants Partagés ---\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [INFO] [root] --- Fin Définitions Composants Partagés ---\n"
+ ]
}
],
"source": [
@@ -1710,10 +2217,10 @@
"id": "76c485ec",
"metadata": {
"papermill": {
- "duration": 0.049772,
- "end_time": "2026-05-01T10:43:09.091445+00:00",
+ "duration": 0.021267,
+ "end_time": "2026-05-31T19:38:08.870988",
"exception": false,
- "start_time": "2026-05-01T10:43:09.041673+00:00",
+ "start_time": "2026-05-31T19:38:08.849721",
"status": "completed"
},
"tags": []
@@ -1742,10 +2249,10 @@
"id": "f7a615c6",
"metadata": {
"papermill": {
- "duration": 0.050612,
- "end_time": "2026-05-01T10:43:09.193131+00:00",
+ "duration": 0.019883,
+ "end_time": "2026-05-31T19:38:08.910384",
"exception": false,
- "start_time": "2026-05-01T10:43:09.142519+00:00",
+ "start_time": "2026-05-31T19:38:08.890501",
"status": "completed"
},
"tags": []
@@ -1797,25 +2304,27 @@
"id": "8bafcee0",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-01T10:43:09.290911Z",
- "iopub.status.busy": "2026-05-01T10:43:09.290002Z",
- "iopub.status.idle": "2026-05-01T10:43:09.304802Z",
- "shell.execute_reply": "2026-05-01T10:43:09.303004Z"
+ "iopub.execute_input": "2026-05-31T19:38:08.958900Z",
+ "iopub.status.busy": "2026-05-31T19:38:08.958450Z",
+ "iopub.status.idle": "2026-05-31T19:38:08.966044Z",
+ "shell.execute_reply": "2026-05-31T19:38:08.965056Z"
},
"papermill": {
- "duration": 0.064825,
- "end_time": "2026-05-01T10:43:09.307468+00:00",
+ "duration": 0.031244,
+ "end_time": "2026-05-31T19:38:08.966968",
"exception": false,
- "start_time": "2026-05-01T10:43:09.242643+00:00",
+ "start_time": "2026-05-31T19:38:08.935724",
"status": "completed"
},
"tags": []
},
"outputs": [
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.AgentPM.Defs] Plugin PM (vide) et prompts semantiques (V17 - CODE-ONLY) definis.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:08 [INFO] [Orchestration.AgentPM.Defs] Plugin PM (vide) et prompts semantiques (V17 - CODE-ONLY) definis.\n"
+ ]
}
],
"source": [
@@ -1925,10 +2434,10 @@
"id": "036e58ad",
"metadata": {
"papermill": {
- "duration": 0.048027,
- "end_time": "2026-05-01T10:43:09.400973+00:00",
+ "duration": 0.03349,
+ "end_time": "2026-05-31T19:38:09.055277",
"exception": false,
- "start_time": "2026-05-01T10:43:09.352946+00:00",
+ "start_time": "2026-05-31T19:38:09.021787",
"status": "completed"
},
"tags": []
@@ -1968,16 +2477,16 @@
"id": "7a1a3c2e",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-01T10:43:09.488907Z",
- "iopub.status.busy": "2026-05-01T10:43:09.488142Z",
- "iopub.status.idle": "2026-05-01T10:43:09.511454Z",
- "shell.execute_reply": "2026-05-01T10:43:09.509717Z"
+ "iopub.execute_input": "2026-05-31T19:38:09.124379Z",
+ "iopub.status.busy": "2026-05-31T19:38:09.124121Z",
+ "iopub.status.idle": "2026-05-31T19:38:09.136726Z",
+ "shell.execute_reply": "2026-05-31T19:38:09.135648Z"
},
"papermill": {
- "duration": 0.067428,
- "end_time": "2026-05-01T10:43:09.514051+00:00",
+ "duration": 0.048476,
+ "end_time": "2026-05-31T19:38:09.137669",
"exception": false,
- "start_time": "2026-05-01T10:43:09.446623+00:00",
+ "start_time": "2026-05-31T19:38:09.089193",
"status": "completed"
},
"tags": []
@@ -2031,8 +2540,6 @@
" prompt_config_conclusion = None\n",
" \n",
" if SK_HAS_INPUT_VARIABLE:\n",
- " # Configuration des variables d'entree avec allow_dangerously_set_content=True\n",
- " # Necessaire pour Semantic Kernel 1.0+ qui requiert un encodage explicite\n",
" input_variables_define_tasks = [\n",
" InputVariable(\n",
" name=\"analysis_state_snapshot\",\n",
@@ -2063,7 +2570,6 @@
" )\n",
" ]\n",
"\n",
- " # Configuration du template pour DefineTasksAndDelegate\n",
" prompt_config_define = PromptTemplateConfig(\n",
" template=prompt_define_tasks_v10,\n",
" name=\"semantic_DefineTasksAndDelegate\",\n",
@@ -2071,7 +2577,6 @@
" input_variables=input_variables_define_tasks\n",
" )\n",
"\n",
- " # Configuration du template pour WriteAndSetConclusion\n",
" prompt_config_conclusion = PromptTemplateConfig(\n",
" template=prompt_write_conclusion_v6,\n",
" name=\"semantic_WriteAndSetConclusion\",\n",
@@ -2083,7 +2588,6 @@
" # Ajout de la fonction DefineTasksAndDelegate\n",
" try:\n",
" if prompt_config_define:\n",
- " # SK 1.0+ avec PromptTemplateConfig\n",
" kernel.add_function(\n",
" prompt_template_config=prompt_config_define,\n",
" plugin_name=plugin_name,\n",
@@ -2092,7 +2596,6 @@
" )\n",
" logger.debug(f\"Fonction {plugin_name}.semantic_DefineTasksAndDelegate (V11 avec config) ajoutee.\")\n",
" else:\n",
- " # Fallback pour anciennes versions\n",
" kernel.add_function(\n",
" prompt=prompt_define_tasks_v10,\n",
" plugin_name=plugin_name, \n",
@@ -2107,7 +2610,6 @@
" # Ajout de la fonction WriteAndSetConclusion\n",
" try:\n",
" if prompt_config_conclusion:\n",
- " # SK 1.0+ avec PromptTemplateConfig\n",
" kernel.add_function(\n",
" prompt_template_config=prompt_config_conclusion,\n",
" plugin_name=plugin_name,\n",
@@ -2116,7 +2618,6 @@
" )\n",
" logger.debug(f\"Fonction {plugin_name}.semantic_WriteAndSetConclusion (V11 avec config) ajoutee.\")\n",
" else:\n",
- " # Fallback pour anciennes versions\n",
" kernel.add_function(\n",
" prompt=prompt_write_conclusion_v6,\n",
" plugin_name=plugin_name, \n",
@@ -2128,7 +2629,8 @@
" except Exception as e: \n",
" logger.error(f\"Echec ajout {plugin_name}.semantic_WriteAndSetConclusion: {e}\")\n",
"\n",
- " logger.info(f\"Kernel {plugin_name} configure (V11).\")"
+ " logger.info(f\"Kernel {plugin_name} configure (V11).\")\n",
+ " print(f\"Kernel {plugin_name} configure avec succes : plugin natif + 2 fonctions semantiques\")"
]
},
{
@@ -2136,10 +2638,10 @@
"id": "1b9bb59a",
"metadata": {
"papermill": {
- "duration": 0.041241,
- "end_time": "2026-05-01T10:43:09.597536+00:00",
+ "duration": 0.032867,
+ "end_time": "2026-05-31T19:38:09.192475",
"exception": false,
- "start_time": "2026-05-01T10:43:09.556295+00:00",
+ "start_time": "2026-05-31T19:38:09.159608",
"status": "completed"
},
"tags": []
@@ -2185,25 +2687,27 @@
"id": "f2a524ce",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-01T10:43:09.683699Z",
- "iopub.status.busy": "2026-05-01T10:43:09.682926Z",
- "iopub.status.idle": "2026-05-01T10:43:09.694148Z",
- "shell.execute_reply": "2026-05-01T10:43:09.692239Z"
+ "iopub.execute_input": "2026-05-31T19:38:09.237169Z",
+ "iopub.status.busy": "2026-05-31T19:38:09.236843Z",
+ "iopub.status.idle": "2026-05-31T19:38:09.242682Z",
+ "shell.execute_reply": "2026-05-31T19:38:09.241620Z"
},
"papermill": {
- "duration": 0.060405,
- "end_time": "2026-05-01T10:43:09.696813+00:00",
+ "duration": 0.027361,
+ "end_time": "2026-05-31T19:38:09.243468",
"exception": false,
- "start_time": "2026-05-01T10:43:09.636408+00:00",
+ "start_time": "2026-05-31T19:38:09.216107",
"status": "completed"
},
"tags": []
},
"outputs": [
{
- "output_type": "stream",
"name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.AgentPM.Instructions] Instructions Systeme PM_INSTRUCTIONS (V15 - CODE-ONLY) definies.\n"
+ "output_type": "stream",
+ "text": [
+ "21:38:09 [INFO] [Orchestration.AgentPM.Instructions] Instructions Systeme PM_INSTRUCTIONS (V15 - CODE-ONLY) definies.\n"
+ ]
}
],
"source": [
@@ -2254,10 +2758,10 @@
"id": "61dwms8dzi",
"metadata": {
"papermill": {
- "duration": 0.043944,
- "end_time": "2026-05-01T10:43:09.781786+00:00",
+ "duration": 0.020422,
+ "end_time": "2026-05-31T19:38:09.285630",
"exception": false,
- "start_time": "2026-05-01T10:43:09.737842+00:00",
+ "start_time": "2026-05-31T19:38:09.265208",
"status": "completed"
},
"tags": []
@@ -2341,14 +2845,14 @@
},
"papermill": {
"default_parameters": {},
- "duration": 103.999589,
- "end_time": "2026-05-01T10:43:10.815510+00:00",
+ "duration": 70.010343,
+ "end_time": "2026-05-31T19:38:09.980761",
"environment_variables": {},
"exception": null,
- "input_path": "D:\\dev\\CoursIA\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-0-init.ipynb",
- "output_path": "D:\\dev\\CoursIA\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-0-init_output.ipynb",
+ "input_path": "d:\\dev\\CoursIA-2\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-0-init.ipynb",
+ "output_path": "d:\\dev\\CoursIA-2\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-0-init.ipynb",
"parameters": {},
- "start_time": "2026-05-01T10:41:26.815921+00:00",
+ "start_time": "2026-05-31T19:36:59.970418",
"version": "2.7.0"
}
},
diff --git a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-1-informal_agent.ipynb b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-1-informal_agent.ipynb
index e54ccad3c..b5afffd08 100644
--- a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-1-informal_agent.ipynb
+++ b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-1-informal_agent.ipynb
@@ -5,10 +5,10 @@
"id": "6d3a6f45",
"metadata": {
"papermill": {
- "duration": 0.004081,
- "end_time": "2026-05-02T18:28:27.192481",
+ "duration": 0.012883,
+ "end_time": "2026-05-31T19:45:51.503417",
"exception": false,
- "start_time": "2026-05-02T18:28:27.188400",
+ "start_time": "2026-05-31T19:45:51.490534",
"status": "completed"
},
"tags": []
@@ -60,10 +60,10 @@
"id": "20a76428",
"metadata": {
"papermill": {
- "duration": 0.00501,
- "end_time": "2026-05-02T18:28:27.203364",
+ "duration": 0.019031,
+ "end_time": "2026-05-31T19:45:51.541204",
"exception": false,
- "start_time": "2026-05-02T18:28:27.198354",
+ "start_time": "2026-05-31T19:45:51.522173",
"status": "completed"
},
"tags": []
@@ -74,29 +74,31 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 1,
"id": "766dfff1",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-02T18:28:27.216633Z",
- "iopub.status.busy": "2026-05-02T18:28:27.216222Z",
- "iopub.status.idle": "2026-05-02T18:28:31.034950Z",
- "shell.execute_reply": "2026-05-02T18:28:31.033865Z"
+ "iopub.execute_input": "2026-05-31T19:45:51.612007Z",
+ "iopub.status.busy": "2026-05-31T19:45:51.610458Z",
+ "iopub.status.idle": "2026-05-31T19:45:54.785637Z",
+ "shell.execute_reply": "2026-05-31T19:45:54.784614Z"
},
"papermill": {
- "duration": 3.827448,
- "end_time": "2026-05-02T18:28:31.036427",
+ "duration": 3.217109,
+ "end_time": "2026-05-31T19:45:54.786619",
"exception": false,
- "start_time": "2026-05-02T18:28:27.208979",
+ "start_time": "2026-05-31T19:45:51.569510",
"status": "completed"
},
"tags": []
},
"outputs": [
{
+ "name": "stdout",
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.AgentInformal.Defs] Classe InformalAnalysisPlugin (V12) et constantes définies.\n"
+ "text": [
+ "InformalAnalysisPlugin (V12) defini : 2 fonctions natives (explore_fallacy_hierarchy, get_fallacy_details) + taxonomie CSV\n"
+ ]
}
],
"source": [
@@ -115,7 +117,7 @@
"try:\n",
" import pandas as pd\n",
"except ImportError:\n",
- " logging.critical(\"❌ Pandas n'est pas installé ou importable. Exécutez la cellule 1.\")\n",
+ " logging.critical(\"Pandas n'est pas installé ou importable. Executez la cellule 1.\")\n",
" raise\n",
"\n",
"logger = logging.getLogger(\"Orchestration.AgentInformal.Defs\")\n",
@@ -131,7 +133,7 @@
"FALLACY_CSV_LOCAL_PATH = DATA_DIR / \"argumentum_fallacies_taxonomy.csv\"\n",
"ROOT_PK = 0 # PK de la racine dans le CSV\n",
"\n",
- "# --- Plugin Spécifique InformalAnalyzer (Refactorisé V12) ---\n",
+ "# --- Plugin Specifique InformalAnalyzer (Refactore V12) ---\n",
"class InformalAnalysisPlugin:\n",
" \"\"\"\n",
" Plugin SK pour l'identification d'arguments et l'exploration de la taxonomie des sophismes via CSV/Pandas.\n",
@@ -151,15 +153,14 @@
" self._taxonomy_load_success = False\n",
" self._last_load_time = 0\n",
" self._cache_ttl_seconds = 3600 # Recharger toutes les heures max\n",
- " self._logger.info(\"Instance InformalAnalysisPlugin créée.\")\n",
+ " self._logger.info(\"Instance InformalAnalysisPlugin creee.\")\n",
"\n",
- " # --- Méthodes Internes ---\n",
+ " # --- Methodes Internes ---\n",
" def _internal_download_data(self, url: str, local_path: pathlib.Path) -> bool:\n",
- " # ... (Code _internal_download_data inchangé) ...\n",
" if local_path.exists():\n",
- " self._logger.info(f\"Fichier local trouvé: {local_path}\")\n",
+ " self._logger.info(f\"Fichier local trouve: {local_path}\")\n",
" return True\n",
- " self._logger.info(f\"Tentative de téléchargement de {url} vers {local_path}...\")\n",
+ " self._logger.info(f\"Tentative de telechargement de {url} vers {local_path}...\")\n",
" try:\n",
" DATA_DIR.mkdir(parents=True, exist_ok=True)\n",
" headers = {'User-Agent': 'SemanticKernel-Python-Agent'}\n",
@@ -168,24 +169,23 @@
" with open(local_path, 'wb') as f:\n",
" for chunk in response.iter_content(chunk_size=8192):\n",
" f.write(chunk)\n",
- " self._logger.info(f\" -> Téléchargement de {local_path.name} terminé avec succès.\")\n",
+ " self._logger.info(f\" -> Telechargement de {local_path.name} termine avec succes.\")\n",
" return True\n",
" except requests.exceptions.RequestException as e:\n",
- " self._logger.error(f\"Erreur réseau/HTTP lors du téléchargement de {url}: {e}\")\n",
+ " self._logger.error(f\"Erreur reseau/HTTP lors du telechargement de {url}: {e}\")\n",
" return False\n",
" except IOError as e:\n",
- " self._logger.error(f\"Erreur d'écriture du fichier local {local_path}: {e}\")\n",
+ " self._logger.error(f\"Erreur d'ecriture du fichier local {local_path}: {e}\")\n",
" return False\n",
" except Exception as e:\n",
- " self._logger.error(f\"Erreur inattendue pendant le téléchargement: {e}\", exc_info=True)\n",
+ " self._logger.error(f\"Erreur inattendue pendant le telechargement: {e}\", exc_info=True)\n",
" return False\n",
"\n",
" def _internal_load_and_prepare_dataframe(self) -> Optional[pd.DataFrame]:\n",
- " # ... (Code _internal_load_and_prepare_dataframe inchangé) ...\n",
" if not self._internal_download_data(FALLACY_CSV_URL, FALLACY_CSV_LOCAL_PATH):\n",
" return None\n",
" try:\n",
- " self._logger.info(f\"Lecture et préparation du DataFrame depuis: {FALLACY_CSV_LOCAL_PATH}...\")\n",
+ " self._logger.info(f\"Lecture et preparation du DataFrame depuis: {FALLACY_CSV_LOCAL_PATH}...\")\n",
" df = pd.read_csv(FALLACY_CSV_LOCAL_PATH, encoding='utf-8')\n",
" self._logger.debug(f\"Colonnes brutes lues: {list(df.columns)}\")\n",
" if 'PK' not in df.columns:\n",
@@ -195,27 +195,26 @@
" df.dropna(subset=['PK'], inplace=True)\n",
" df['PK'] = df['PK'].astype(int)\n",
" df.set_index('PK', inplace=True, verify_integrity=True)\n",
- " self._logger.debug(f\"Index 'PK' défini. Lignes: {len(df)}\")\n",
+ " self._logger.debug(f\"Index 'PK' defini. Lignes: {len(df)}\")\n",
" numeric_cols = ['depth']\n",
" for col in numeric_cols:\n",
" if col in df.columns:\n",
" df[col] = pd.to_numeric(df[col], errors='coerce')\n",
- " self._logger.debug(f\"Colonne '{col}' convertie en numérique.\")\n",
+ " self._logger.debug(f\"Colonne '{col}' convertie en numerique.\")\n",
" if df.empty:\n",
- " self._logger.warning(\"DataFrame vide après préparation.\")\n",
+ " self._logger.warning(\"DataFrame vide apres preparation.\")\n",
" return None\n",
- " df = df.where(pd.notnull(df), None) # Remplace NaN par None\n",
- " self._logger.info(f\" -> DataFrame chargé et préparé ({len(df)} lignes).\")\n",
+ " df = df.where(pd.notnull(df), None)\n",
+ " self._logger.info(f\" -> DataFrame charge et prepare ({len(df)} lignes).\")\n",
" return df\n",
" except ValueError as ve:\n",
- " self._logger.error(f\"Erreur préparation DataFrame (PKs dupliqués?): {ve}\", exc_info=True)\n",
+ " self._logger.error(f\"Erreur preparation DataFrame (PKs dupliques?): {ve}\", exc_info=True)\n",
" return None\n",
" except Exception as e:\n",
- " self._logger.error(f\"Erreur inattendue chargement/préparation DataFrame: {e}\", exc_info=True)\n",
+ " self._logger.error(f\"Erreur inattendue chargement/preparation DataFrame: {e}\", exc_info=True)\n",
" return None\n",
"\n",
" def _get_taxonomy_dataframe(self) -> Optional[pd.DataFrame]:\n",
- " # ... (Code _get_taxonomy_dataframe inchangé) ...\n",
" current_time = time.time()\n",
" if self._dataframe is not None and self._taxonomy_load_success and \\\n",
" (current_time - self._last_load_time) < self._cache_ttl_seconds:\n",
@@ -229,36 +228,34 @@
" self._taxonomy_load_success = self._dataframe is not None\n",
" self._last_load_time = current_time\n",
" if not self._taxonomy_load_success:\n",
- " self._logger.error(\"Échec chargement taxonomie.\")\n",
+ " self._logger.error(\"Echec chargement taxonomie.\")\n",
" self._dataframe = None\n",
" else:\n",
- " self._logger.info(\"Taxonomie chargée/rechargée.\")\n",
+ " self._logger.info(\"Taxonomie chargee/rechargee.\")\n",
" return self._dataframe\n",
"\n",
" def _internal_get_node_details(self, pk: int, df: pd.DataFrame) -> Dict[str, Any]:\n",
- " # ... (Code _internal_get_node_details inchangé) ...\n",
" details = {\"pk\": pk, \"error\": None}\n",
" if df is None:\n",
- " details[\"error\"] = \"DataFrame taxonomie non chargé.\"\n",
- " self._logger.warning(f\"_internal_get_node_details: DF non chargé (PK: {pk}).\")\n",
+ " details[\"error\"] = \"DataFrame taxonomie non charge.\"\n",
+ " self._logger.warning(f\"_internal_get_node_details: DF non charge (PK: {pk}).\")\n",
" return details\n",
" try:\n",
" row_data = df.loc[pk]\n",
" details.update(row_data.to_dict())\n",
- " self._logger.debug(f\"Détails trouvés pour PK {pk}.\")\n",
+ " self._logger.debug(f\"Details trouves pour PK {pk}.\")\n",
" except KeyError:\n",
- " details[\"error\"] = f\"PK {pk} non trouvé.\"\n",
+ " details[\"error\"] = f\"PK {pk} non trouve.\"\n",
" self._logger.warning(details[\"error\"])\n",
" except Exception as e:\n",
- " details[\"error\"] = f\"Erreur interne récupération détails PK {pk}.\"\n",
+ " details[\"error\"] = f\"Erreur interne recuperation details PK {pk}.\"\n",
" self._logger.error(f\"{details['error']}: {e}\", exc_info=True)\n",
" return details\n",
"\n",
" def _internal_get_children_details(self, parent_pk: int, df: pd.DataFrame, max_children: int) -> List[Dict[str, Any]]:\n",
- " # ... (Code _internal_get_children_details inchangé) ...\n",
" children_details = []\n",
" if df is None:\n",
- " self._logger.warning(f\"_internal_get_children_details: DF non chargé (Parent PK: {parent_pk}).\")\n",
+ " self._logger.warning(f\"_internal_get_children_details: DF non charge (Parent PK: {parent_pk}).\")\n",
" return children_details\n",
" try:\n",
" if 'FK_Parent' not in df.columns:\n",
@@ -270,22 +267,21 @@
" children_df = df[df['FK_Parent'] == parent_pk]\n",
" if not children_df.empty:\n",
" children_df = children_df.sort_index().head(max_children)\n",
- " self._logger.debug(f\"Trouvé {len(children_df)} enfants pour Parent PK {parent_pk} (max {max_children}).\")\n",
+ " self._logger.debug(f\"Trouve {len(children_df)} enfants pour Parent PK {parent_pk} (max {max_children}).\")\n",
" for child_pk in children_df.index:\n",
" children_details.append(self._internal_get_node_details(child_pk, df))\n",
" else:\n",
- " self._logger.debug(f\"Aucun enfant trouvé pour Parent PK {parent_pk}.\")\n",
+ " self._logger.debug(f\"Aucun enfant trouve pour Parent PK {parent_pk}.\")\n",
" except Exception as e:\n",
" self._logger.error(f\"Erreur recherche enfants Parent PK {parent_pk}: {e}\", exc_info=True)\n",
" return children_details\n",
"\n",
- " # --- Méthodes Façade (@kernel_function) ---\n",
+ " # --- Methodes Facade (@kernel_function) ---\n",
" @kernel_function(\n",
- " description=f\"Explore la hiérarchie des sophismes à partir d'un PK donné (ex: {ROOT_PK} pour la racine). Retourne les détails JSON du nœud courant et de ses enfants directs.\",\n",
+ " description=f\"Explore la hierarchie des sophismes a partir d'un PK donne (ex: {ROOT_PK} pour la racine). Retourne les details JSON du noeud courant et de ses enfants directs.\",\n",
" name=\"explore_fallacy_hierarchy\"\n",
" )\n",
" def explore_fallacy_hierarchy( self, current_pk_str: str, max_children: int = 15 ) -> str:\n",
- " # ... (Code explore_fallacy_hierarchy inchangé) ...\n",
" self._logger.info(f\"Appel explore_fallacy_hierarchy: PK='{current_pk_str}', max_children={max_children}\")\n",
" result_error = {\"error\": \"Erreur inattendue.\"}\n",
" try:\n",
@@ -300,21 +296,20 @@
" current_node_details = self._internal_get_node_details(current_pk, df)\n",
" children_details = self._internal_get_children_details(current_pk, df, max_children)\n",
" result = { \"current_node\": current_node_details, \"children\": children_details }\n",
- " self._logger.info(f\" -> Exploration PK {current_pk} terminée. Nœud trouvé: {current_node_details.get('error') is None}. Enfants: {len(children_details)}.\")\n",
+ " self._logger.info(f\" -> Exploration PK {current_pk} terminee. Noeud trouve: {current_node_details.get('error') is None}. Enfants: {len(children_details)}.\")\n",
" try:\n",
" return json.dumps(result, indent=2, ensure_ascii=False, default=str)\n",
" except Exception as e_json:\n",
- " self._logger.error(f\"Erreur sérialisation JSON exploration PK {current_pk}: {e_json}\")\n",
- " result_error[\"error\"] = f\"Erreur sérialisation JSON: {e_json}\"\n",
+ " self._logger.error(f\"Erreur serialisation JSON exploration PK {current_pk}: {e_json}\")\n",
+ " result_error[\"error\"] = f\"Erreur serialisation JSON: {e_json}\"\n",
" result_error[\"pk_requested\"] = current_pk\n",
" return json.dumps(result_error)\n",
"\n",
" @kernel_function(\n",
- " description=\"Récupère les détails complets (nom, description, exemple, etc.) d'un sophisme spécifique via son PK numérique depuis la taxonomie CSV.\",\n",
+ " description=\"Recupere les details complets (nom, description, exemple, etc.) d'un sophisme specifique via son PK numerique depuis la taxonomie CSV.\",\n",
" name=\"get_fallacy_details\"\n",
" )\n",
" def get_fallacy_details(self, fallacy_pk_str: str) -> str:\n",
- " # ... (Code get_fallacy_details inchangé) ...\n",
" self._logger.info(f\"Appel get_fallacy_details: PK='{fallacy_pk_str}'\")\n",
" result_error = {\"error\": \"Erreur inattendue.\"}\n",
" try:\n",
@@ -328,18 +323,19 @@
" return json.dumps({\"pk_requested\": fallacy_pk, \"error\": \"Taxonomie sophismes non disponible.\"})\n",
" details = self._internal_get_node_details(fallacy_pk, df)\n",
" if details.get(\"error\"):\n",
- " self._logger.warning(f\" -> Erreur récupération détails PK {fallacy_pk}: {details['error']}\")\n",
+ " self._logger.warning(f\" -> Erreur recuperation details PK {fallacy_pk}: {details['error']}\")\n",
" else:\n",
- " self._logger.info(f\" -> Détails récupérés pour PK {fallacy_pk}.\")\n",
+ " self._logger.info(f\" -> Details recuperes pour PK {fallacy_pk}.\")\n",
" try:\n",
" return json.dumps(details, indent=2, ensure_ascii=False, default=str)\n",
" except Exception as e_json:\n",
- " self._logger.error(f\"Erreur sérialisation JSON détails PK {fallacy_pk}: {e_json}\")\n",
- " result_error[\"error\"] = f\"Erreur sérialisation JSON: {e_json}\"\n",
+ " self._logger.error(f\"Erreur serialisation JSON details PK {fallacy_pk}: {e_json}\")\n",
+ " result_error[\"error\"] = f\"Erreur serialisation JSON: {e_json}\"\n",
" result_error[\"pk_requested\"] = fallacy_pk\n",
" return json.dumps(result_error)\n",
"\n",
- "logger.info(\"Classe InformalAnalysisPlugin (V12) et constantes définies.\")"
+ "logger.info(\"Classe InformalAnalysisPlugin (V12) et constantes definies.\")\n",
+ "print(\"InformalAnalysisPlugin (V12) defini : 2 fonctions natives (explore_fallacy_hierarchy, get_fallacy_details) + taxonomie CSV\")"
]
},
{
@@ -347,10 +343,10 @@
"id": "tbl3y7y60u",
"metadata": {
"papermill": {
- "duration": 0.003706,
- "end_time": "2026-05-02T18:28:31.043521",
+ "duration": 0.007449,
+ "end_time": "2026-05-31T19:45:54.804054",
"exception": false,
- "start_time": "2026-05-02T18:28:31.039815",
+ "start_time": "2026-05-31T19:45:54.796605",
"status": "completed"
},
"tags": []
@@ -408,10 +404,10 @@
"id": "a5216d7f",
"metadata": {
"papermill": {
- "duration": 0.003101,
- "end_time": "2026-05-02T18:28:31.049735",
+ "duration": 0.006008,
+ "end_time": "2026-05-31T19:45:54.815615",
"exception": false,
- "start_time": "2026-05-02T18:28:31.046634",
+ "start_time": "2026-05-31T19:45:54.809607",
"status": "completed"
},
"tags": []
@@ -422,56 +418,64 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 2,
"id": "7e4e7b65",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-02T18:28:31.059235Z",
- "iopub.status.busy": "2026-05-02T18:28:31.058534Z",
- "iopub.status.idle": "2026-05-02T18:28:31.068164Z",
- "shell.execute_reply": "2026-05-02T18:28:31.066983Z"
+ "iopub.execute_input": "2026-05-31T19:45:54.847856Z",
+ "iopub.status.busy": "2026-05-31T19:45:54.846491Z",
+ "iopub.status.idle": "2026-05-31T19:45:54.893378Z",
+ "shell.execute_reply": "2026-05-31T19:45:54.886790Z"
},
"papermill": {
- "duration": 0.015299,
- "end_time": "2026-05-02T18:28:31.069580",
+ "duration": 0.076371,
+ "end_time": "2026-05-31T19:45:54.900032",
"exception": false,
- "start_time": "2026-05-02T18:28:31.054281",
+ "start_time": "2026-05-31T19:45:54.823661",
"status": "completed"
},
"tags": []
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Prompt identify_args_v7 + fonction setup_informal_kernel definis\n"
+ ]
+ }
+ ],
"source": [
- "# %% CELLULE [5.2] - Prompt Sémantique et Fonction Setup (Informal)\n",
+ "# %% CELLULE [5.2] - Prompt Semantique et Fonction Setup (Informal)\n",
"# (Remplace une partie de l'ancienne cellule 83ec3fe2)\n",
"\n",
"import semantic_kernel as sk\n",
"import logging\n",
"\n",
- "# S'assurer que les dépendances sont là\n",
- "if 'InformalAnalysisPlugin' not in globals(): raise NameError(\"Classe InformalAnalysisPlugin non définie.\")\n",
+ "# S'assurer que les dependances sont la\n",
+ "if 'InformalAnalysisPlugin' not in globals(): raise NameError(\"Classe InformalAnalysisPlugin non definie.\")\n",
"\n",
"logger = logging.getLogger(\"Orchestration.AgentInformal.Setup\")\n",
"\n",
- "# --- Fonction Sémantique (Prompt) pour Identification Arguments ---\n",
+ "# --- Fonction Semantique (Prompt) pour Identification Arguments ---\n",
"prompt_identify_args_v7 = \"\"\"\n",
"[Instructions]\n",
"Analysez le texte argumentatif fourni ($input) et identifiez les principaux arguments ou affirmations distincts.\n",
- "Listez chaque argument de manière concise, un par ligne. Retournez UNIQUEMENT la liste, sans numérotation ou préambule.\n",
- "Focalisez-vous sur les affirmations principales défendues ou attaquées.\n",
+ "Listez chaque argument de maniere concise, un par ligne. Retournez UNIQUEMENT la liste, sans numerotation ou preamble.\n",
+ "Focalisez-vous sur les affirmations principales defendues ou attaquees.\n",
"\n",
- "[Texte à Analyser]\n",
+ "[Texte a Analyser]\n",
"{{$input}}\n",
"+++++\n",
- "[Arguments Identifiés (un par ligne)]\n",
+ "[Arguments Identifies (un par ligne)]\n",
"\"\"\"\n",
- "logger.debug(\"Prompt sémantique 'prompt_identify_args_v7' défini.\")\n",
+ "logger.debug(\"Prompt semantique 'prompt_identify_args_v7' defini.\")\n",
"\n",
- "# --- Fonction setup_informal_kernel (V13 - Simplifiée) ---\n",
+ "# --- Fonction setup_informal_kernel (V13 - Simplifiee) ---\n",
"def setup_informal_kernel(kernel: sk.Kernel, llm_service):\n",
" \"\"\"\n",
" Configure le kernel pour l'InformalAnalysisAgent.\n",
- " Ajoute une instance du InformalAnalysisPlugin et la fonction sémantique.\n",
+ " Ajoute une instance du InformalAnalysisPlugin et la fonction semantique.\n",
" \"\"\"\n",
" plugin_name = \"InformalAnalyzer\"\n",
" logger.info(f\"Configuration Kernel pour {plugin_name} (V13 - Plugin autonome)...\")\n",
@@ -479,41 +483,44 @@
" informal_plugin_instance = InformalAnalysisPlugin()\n",
"\n",
" if plugin_name in kernel.plugins:\n",
- " logger.warning(f\"Plugin '{plugin_name}' déjà présent. Remplacement.\")\n",
+ " logger.warning(f\"Plugin '{plugin_name}' deja present. Remplacement.\")\n",
" kernel.add_plugin(informal_plugin_instance, plugin_name=plugin_name)\n",
- " logger.debug(f\"Instance du plugin '{plugin_name}' ajoutée/mise à jour dans le kernel.\")\n",
+ " logger.debug(f\"Instance du plugin '{plugin_name}' ajoutee/mise a jour dans le kernel.\")\n",
"\n",
" default_settings = None\n",
" if llm_service:\n",
" try:\n",
" default_settings = kernel.get_prompt_execution_settings_from_service_id(llm_service.service_id)\n",
- " logger.debug(f\"Settings LLM récupérés pour {plugin_name}.\")\n",
+ " logger.debug(f\"Settings LLM recuperes pour {plugin_name}.\")\n",
" except Exception as e:\n",
- " logger.warning(f\"Impossible de récupérer les settings LLM pour {plugin_name}: {e}\")\n",
+ " logger.warning(f\"Impossible de recuperer les settings LLM pour {plugin_name}: {e}\")\n",
"\n",
" try:\n",
" kernel.add_function(\n",
" prompt=prompt_identify_args_v7,\n",
" plugin_name=plugin_name,\n",
" function_name=\"semantic_IdentifyArguments\",\n",
- " description=\"Identifie les arguments clés dans un texte.\",\n",
+ " description=\"Identifie les arguments cles dans un texte.\",\n",
" prompt_execution_settings=default_settings\n",
" )\n",
- " logger.debug(f\"Fonction {plugin_name}.semantic_IdentifyArguments ajoutée/mise à jour.\")\n",
+ " logger.debug(f\"Fonction {plugin_name}.semantic_IdentifyArguments ajoutee/mise a jour.\")\n",
" except ValueError as ve:\n",
- " logger.warning(f\"Problème ajout/MàJ semantic_IdentifyArguments: {ve}\")\n",
+ " logger.warning(f\"Probleme ajout/MaJ semantic_IdentifyArguments: {ve}\")\n",
"\n",
" native_facades = [\"explore_fallacy_hierarchy\", \"get_fallacy_details\"]\n",
" if plugin_name in kernel.plugins:\n",
" for func_name in native_facades:\n",
" if func_name not in kernel.plugins[plugin_name]:\n",
- " logger.error(f\"ERREUR CRITIQUE: Fonction native {plugin_name}.{func_name} non enregistrée!\")\n",
+ " logger.error(f\"ERREUR CRITIQUE: Fonction native {plugin_name}.{func_name} non enregistree!\")\n",
" else:\n",
- " logger.debug(f\"Fonction native {plugin_name}.{func_name} trouvée.\")\n",
+ " logger.debug(f\"Fonction native {plugin_name}.{func_name} trouvee.\")\n",
" else:\n",
- " logger.error(f\"ERREUR CRITIQUE: Plugin {plugin_name} non trouvé après ajout!\")\n",
+ " logger.error(f\"ERREUR CRITIQUE: Plugin {plugin_name} non trouve apres ajout!\")\n",
+ "\n",
+ " logger.info(f\"Kernel {plugin_name} configure (V13).\")\n",
+ " print(f\"Kernel {plugin_name} configure avec succes : plugin taxonomie + identification arguments\")\n",
"\n",
- " logger.info(f\"Kernel {plugin_name} configuré (V13).\")\n"
+ "print(\"Prompt identify_args_v7 + fonction setup_informal_kernel definis\")"
]
},
{
@@ -521,10 +528,10 @@
"id": "q3godrj4fdd",
"metadata": {
"papermill": {
- "duration": 0.004339,
- "end_time": "2026-05-02T18:28:31.077717",
+ "duration": 0.03321,
+ "end_time": "2026-05-31T19:45:54.959676",
"exception": false,
- "start_time": "2026-05-02T18:28:31.073378",
+ "start_time": "2026-05-31T19:45:54.926466",
"status": "completed"
},
"tags": []
@@ -577,10 +584,10 @@
"id": "c485a4dd",
"metadata": {
"papermill": {
- "duration": 0.002805,
- "end_time": "2026-05-02T18:28:31.083406",
+ "duration": 0.028715,
+ "end_time": "2026-05-31T19:45:55.022941",
"exception": false,
- "start_time": "2026-05-02T18:28:31.080601",
+ "start_time": "2026-05-31T19:45:54.994226",
"status": "completed"
},
"tags": []
@@ -591,29 +598,31 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 3,
"id": "35fbe045",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-02T18:28:31.091033Z",
- "iopub.status.busy": "2026-05-02T18:28:31.090363Z",
- "iopub.status.idle": "2026-05-02T18:28:31.098789Z",
- "shell.execute_reply": "2026-05-02T18:28:31.097584Z"
+ "iopub.execute_input": "2026-05-31T19:45:55.096983Z",
+ "iopub.status.busy": "2026-05-31T19:45:55.090584Z",
+ "iopub.status.idle": "2026-05-31T19:45:55.161612Z",
+ "shell.execute_reply": "2026-05-31T19:45:55.150487Z"
},
"papermill": {
- "duration": 0.013731,
- "end_time": "2026-05-02T18:28:31.100107",
+ "duration": 0.112725,
+ "end_time": "2026-05-31T19:45:55.169234",
"exception": false,
- "start_time": "2026-05-02T18:28:31.086376",
+ "start_time": "2026-05-31T19:45:55.056509",
"status": "completed"
},
"tags": []
},
"outputs": [
{
+ "name": "stdout",
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.AgentInformal.Instructions] Instructions Systeme INFORMAL_AGENT_INSTRUCTIONS (V16 - add_answer AVANT texte) definies.\n"
+ "text": [
+ "Instructions systeme InformalAnalysisAgent (V16) definies : 2136 caracteres\n"
+ ]
}
],
"source": [
@@ -686,7 +695,8 @@
" ROOT_PK=ROOT_PK\n",
")\n",
"\n",
- "logger.info(\"Instructions Systeme INFORMAL_AGENT_INSTRUCTIONS (V16 - add_answer AVANT texte) definies.\")"
+ "logger.info(\"Instructions Systeme INFORMAL_AGENT_INSTRUCTIONS (V16 - add_answer AVANT texte) definies.\")\n",
+ "print(f\"Instructions systeme InformalAnalysisAgent (V16) definies : {len(INFORMAL_AGENT_INSTRUCTIONS)} caracteres\")"
]
},
{
@@ -694,10 +704,10 @@
"id": "hwbni0263e",
"metadata": {
"papermill": {
- "duration": 0.00274,
- "end_time": "2026-05-02T18:28:31.106643",
+ "duration": 0.012686,
+ "end_time": "2026-05-31T19:45:55.196142",
"exception": false,
- "start_time": "2026-05-02T18:28:31.103903",
+ "start_time": "2026-05-31T19:45:55.183456",
"status": "completed"
},
"tags": []
@@ -772,10 +782,10 @@
"id": "b6de359b",
"metadata": {
"papermill": {
- "duration": 0.002752,
- "end_time": "2026-05-02T18:28:31.112179",
+ "duration": 0.023704,
+ "end_time": "2026-05-31T19:45:55.248028",
"exception": false,
- "start_time": "2026-05-02T18:28:31.109427",
+ "start_time": "2026-05-31T19:45:55.224324",
"status": "completed"
},
"tags": []
@@ -796,20 +806,20 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 4,
"id": "b10179f1",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-02T18:28:31.119083Z",
- "iopub.status.busy": "2026-05-02T18:28:31.118838Z",
- "iopub.status.idle": "2026-05-02T18:28:31.137299Z",
- "shell.execute_reply": "2026-05-02T18:28:31.136036Z"
+ "iopub.execute_input": "2026-05-31T19:45:55.319705Z",
+ "iopub.status.busy": "2026-05-31T19:45:55.315510Z",
+ "iopub.status.idle": "2026-05-31T19:45:55.438695Z",
+ "shell.execute_reply": "2026-05-31T19:45:55.431161Z"
},
"papermill": {
- "duration": 0.023869,
- "end_time": "2026-05-02T18:28:31.138792",
+ "duration": 0.173228,
+ "end_time": "2026-05-31T19:45:55.443963",
"exception": false,
- "start_time": "2026-05-02T18:28:31.114923",
+ "start_time": "2026-05-31T19:45:55.270735",
"status": "completed"
},
"tags": []
@@ -1147,10 +1157,10 @@
"id": "nox3y9m51r",
"metadata": {
"papermill": {
- "duration": 0.0031,
- "end_time": "2026-05-02T18:28:31.148260",
+ "duration": 0.011328,
+ "end_time": "2026-05-31T19:45:55.473614",
"exception": false,
- "start_time": "2026-05-02T18:28:31.145160",
+ "start_time": "2026-05-31T19:45:55.462286",
"status": "completed"
},
"tags": []
@@ -1243,14 +1253,14 @@
},
"papermill": {
"default_parameters": {},
- "duration": 6.547964,
- "end_time": "2026-05-02T18:28:31.711243",
+ "duration": 6.271094,
+ "end_time": "2026-05-31T19:45:56.053510",
"environment_variables": {},
"exception": null,
- "input_path": "d:\\dev\\CoursIA\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-1-informal_agent.ipynb",
- "output_path": "d:\\dev\\CoursIA\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-1-informal_agent.ipynb",
+ "input_path": "d:\\dev\\CoursIA-2\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-1-informal_agent.ipynb",
+ "output_path": "d:\\dev\\CoursIA-2\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-1-informal_agent.ipynb",
"parameters": {},
- "start_time": "2026-05-02T18:28:25.163279",
+ "start_time": "2026-05-31T19:45:49.782416",
"version": "2.6.0"
}
},
diff --git a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-2-pl_agent.ipynb b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-2-pl_agent.ipynb
index 63a32e42e..7dfbb95f0 100644
--- a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-2-pl_agent.ipynb
+++ b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-2-pl_agent.ipynb
@@ -5,10 +5,10 @@
"id": "de29a2a6",
"metadata": {
"papermill": {
- "duration": 0.004067,
- "end_time": "2026-05-02T18:28:46.945949",
+ "duration": 0.023081,
+ "end_time": "2026-05-31T19:46:01.500639",
"exception": false,
- "start_time": "2026-05-02T18:28:46.941882",
+ "start_time": "2026-05-31T19:46:01.477558",
"status": "completed"
},
"tags": []
@@ -43,10 +43,10 @@
"id": "wfkdwfjyel",
"metadata": {
"papermill": {
- "duration": 0.003167,
- "end_time": "2026-05-02T18:28:46.952844",
+ "duration": 0.014459,
+ "end_time": "2026-05-31T19:46:01.532146",
"exception": false,
- "start_time": "2026-05-02T18:28:46.949677",
+ "start_time": "2026-05-31T19:46:01.517687",
"status": "completed"
},
"tags": []
@@ -91,10 +91,10 @@
"id": "a206b3be",
"metadata": {
"papermill": {
- "duration": 0.003118,
- "end_time": "2026-05-02T18:28:46.959160",
+ "duration": 0.010979,
+ "end_time": "2026-05-31T19:46:01.550289",
"exception": false,
- "start_time": "2026-05-02T18:28:46.956042",
+ "start_time": "2026-05-31T19:46:01.539310",
"status": "completed"
},
"tags": []
@@ -108,10 +108,10 @@
"id": "hl91yh2jaq",
"metadata": {
"papermill": {
- "duration": 0.003088,
- "end_time": "2026-05-02T18:28:46.965259",
+ "duration": 0.006117,
+ "end_time": "2026-05-31T19:46:01.567739",
"exception": false,
- "start_time": "2026-05-02T18:28:46.962171",
+ "start_time": "2026-05-31T19:46:01.561622",
"status": "completed"
},
"tags": []
@@ -175,29 +175,31 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 1,
"id": "40cf9168",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-02T18:28:46.974209Z",
- "iopub.status.busy": "2026-05-02T18:28:46.973966Z",
- "iopub.status.idle": "2026-05-02T18:28:49.975989Z",
- "shell.execute_reply": "2026-05-02T18:28:49.974637Z"
+ "iopub.execute_input": "2026-05-31T19:46:01.587309Z",
+ "iopub.status.busy": "2026-05-31T19:46:01.586761Z",
+ "iopub.status.idle": "2026-05-31T19:46:03.059147Z",
+ "shell.execute_reply": "2026-05-31T19:46:03.058488Z"
},
"papermill": {
- "duration": 3.009965,
- "end_time": "2026-05-02T18:28:49.978286",
+ "duration": 1.505184,
+ "end_time": "2026-05-31T19:46:03.081194",
"exception": false,
- "start_time": "2026-05-02T18:28:46.968321",
+ "start_time": "2026-05-31T19:46:01.576010",
"status": "completed"
},
"tags": []
},
"outputs": [
{
+ "name": "stdout",
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.AgentPL.Defs] Classe PropositionalLogicPlugin (V12 avec callback fix) définie.\n"
+ "text": [
+ "PropositionalLogicPlugin (V12) defini : 2 fonctions natives (execute_pl_query, execute_and_log_pl_query) + interface JPype/Tweety\n"
+ ]
}
],
"source": [
@@ -219,7 +221,7 @@
"if not plugin_logger.handlers and not plugin_logger.propagate:\n",
" handler = logging.StreamHandler(); formatter = logging.Formatter('%(asctime)s [%(levelname)s] [%(name)s] %(message)s', datefmt='%H:%M:%S'); handler.setFormatter(formatter); plugin_logger.addHandler(handler); plugin_logger.setLevel(logging.INFO)\n",
"\n",
- "# --- Plugin Spécifique PLAnalyzer (V12 - Fix callback params) ---\n",
+ "# --- Plugin Specifique PLAnalyzer (V12 - Fix callback params) ---\n",
"class PropositionalLogicPlugin:\n",
" \"\"\"\n",
" Plugin SK pour l'analyse en logique propositionnelle via Tweety/JPype.\n",
@@ -234,33 +236,33 @@
" _parser_instance: Optional[Any] = None\n",
" _reasoner_instance: Optional[Any] = None\n",
" _log_callback: Optional[Callable] = None # Callback vers StateManager.log_query_result\n",
- " _query_log: List[Dict] = None # Log interne des requêtes pour cross-validation\n",
+ " _query_log: List[Dict] = None # Log interne des requetes pour cross-validation\n",
"\n",
" def __init__(self, log_callback: Optional[Callable] = None):\n",
" self._logger = plugin_logger\n",
" self._jvm_ok = False\n",
" self._log_callback = log_callback\n",
" self._query_log = [] # Initialiser le log interne\n",
- " self._logger.info(\"Instance PropositionalLogicPlugin créée (V12 avec callback fix).\")\n",
+ " self._logger.info(\"Instance PropositionalLogicPlugin creee (V12 avec callback fix).\")\n",
" self._initialize_jvm_components()\n",
"\n",
" def set_log_callback(self, callback: Callable):\n",
- " \"\"\"Configure le callback pour logger automatiquement les résultats de requêtes.\"\"\"\n",
+ " \"\"\"Configure le callback pour logger automatiquement les resultats de requetes.\"\"\"\n",
" self._log_callback = callback\n",
- " self._logger.info(\"Callback de logging configuré pour PropositionalLogicPlugin.\")\n",
+ " self._logger.info(\"Callback de logging configure pour PropositionalLogicPlugin.\")\n",
"\n",
" def get_query_log(self) -> List[Dict]:\n",
- " \"\"\"Retourne le log interne des requêtes exécutées.\"\"\"\n",
+ " \"\"\"Retourne le log interne des requetes executees.\"\"\"\n",
" return self._query_log.copy()\n",
"\n",
" def _initialize_jvm_components(self):\n",
- " \"\"\"Vérifie la JVM et charge les classes/instances Tweety.\"\"\"\n",
- " global jvm_ready # Vérifier la variable globale définie dans la cellule JPype\n",
+ " \"\"\"Verifie la JVM et charge les classes/instances Tweety.\"\"\"\n",
+ " global jvm_ready # Verifier la variable globale definie dans la cellule JPype\n",
" if 'jvm_ready' in globals() and jvm_ready and 'jpype' in globals() and jpype.isJVMStarted():\n",
- " self._logger.info(\"JVM détectée comme prête. Chargement classes Tweety...\")\n",
+ " self._logger.info(\"JVM detectee comme prete. Chargement classes Tweety...\")\n",
" self._jvm_ok = True\n",
" else:\n",
- " self._logger.critical(\"JVM non prête lors init Plugin PL! Fonctions natives échoueront.\")\n",
+ " self._logger.critical(\"JVM non prete lors init Plugin PL! Fonctions natives echoueront.\")\n",
" self._jvm_ok = False\n",
" return\n",
"\n",
@@ -270,15 +272,15 @@
" self._PlFormula = jpype.JClass(\"org.tweetyproject.logics.pl.syntax.PlFormula\")\n",
" self._parser_instance = self._PlParser()\n",
" self._reasoner_instance = self._SatReasoner()\n",
- " self._logger.info(\"Classes et instances Java Tweety chargées.\")\n",
+ " self._logger.info(\"Classes et instances Java Tweety chargees.\")\n",
" except Exception as e:\n",
" self._logger.critical(f\"Erreur chargement classes/instances Tweety: {e}\", exc_info=True)\n",
" self._jvm_ok = False\n",
"\n",
- " # --- Méthodes Internes ---\n",
+ " # --- Methodes Internes ---\n",
" def _internal_parse_formula(self, formula_string: str) -> Optional[Any]:\n",
" if not self._jvm_ok or not self._parser_instance:\n",
- " self._logger.error(f\"Parse formula: JVM/Parser non prêt ('{formula_string[:60]}...').\")\n",
+ " self._logger.error(f\"Parse formula: JVM/Parser non pret ('{formula_string[:60]}...').\")\n",
" return None\n",
" try:\n",
" self._logger.debug(f\"Parsing formule: '{formula_string}'\")\n",
@@ -293,13 +295,13 @@
"\n",
" def _internal_parse_belief_set(self, belief_set_string: str) -> Optional[Any]:\n",
" if not self._jvm_ok or not self._parser_instance:\n",
- " self._logger.error(f\"Parse BS: JVM/Parser non prêt (BS: '{belief_set_string[:60]}...').\")\n",
+ " self._logger.error(f\"Parse BS: JVM/Parser non pret (BS: '{belief_set_string[:60]}...').\")\n",
" return None\n",
" try:\n",
" belief_set_string_cleaned = belief_set_string.replace(\"\\\\\\\\n\", \"\\\\n\")\n",
- " self._logger.debug(f\"Parsing belief set (nettoyé): '{belief_set_string_cleaned[:100]}...'\")\n",
+ " self._logger.debug(f\"Parsing belief set (nettoyey): '{belief_set_string_cleaned[:100]}...'\")\n",
" parsed_bs = self._parser_instance.parseBeliefBase(belief_set_string_cleaned)\n",
- " self._logger.debug(f\" -> BS parsé (type: {type(parsed_bs)}, taille: {parsed_bs.size()}).\")\n",
+ " self._logger.debug(f\" -> BS parse (type: {type(parsed_bs)}, taille: {parsed_bs.size()}).\")\n",
" return parsed_bs\n",
" except jpype.JException as e_java:\n",
" error_msg = f\"Erreur Java parsing BS (extrait: '{belief_set_string[:60]}...'): {e_java.getClass().getName()}: {e_java.getMessage()}\"\n",
@@ -311,84 +313,84 @@
"\n",
" def _internal_execute_query(self, belief_set_obj: Any, formula_obj: Any) -> Optional[bool]:\n",
" if not self._jvm_ok or not self._reasoner_instance or not self._PlFormula:\n",
- " self._logger.error(\"Execute query: JVM/Reasoner/Formula non prêt.\")\n",
+ " self._logger.error(\"Execute query: JVM/Reasoner/Formula non pret.\")\n",
" return None\n",
" try:\n",
" if not isinstance(formula_obj, self._PlFormula):\n",
- " raise TypeError(f\"Objet requête n'est pas un PlFormula (type: {type(formula_obj)})\")\n",
- " self._logger.debug(f\"Exécution requête avec raisonneur '{self._reasoner_instance.getClass().getName()}'...\")\n",
+ " raise TypeError(f\"Objet requete n'est pas un PlFormula (type: {type(formula_obj)})\")\n",
+ " self._logger.debug(f\"Execution requete avec raisonneur '{self._reasoner_instance.getClass().getName()}'...\")\n",
" result_java_boolean = self._reasoner_instance.query(belief_set_obj, formula_obj)\n",
- " self._logger.debug(f\" -> Résultat brut Java: {result_java_boolean}\")\n",
+ " self._logger.debug(f\" -> Resultat brut Java: {result_java_boolean}\")\n",
" if result_java_boolean is None:\n",
- " self._logger.warning(\"Requête Tweety a retourné null (indéterminé?).\")\n",
+ " self._logger.warning(\"Requete Tweety a retourne null (indetermine?).\")\n",
" return None\n",
" else:\n",
" result_python_bool = bool(result_java_boolean)\n",
- " self._logger.info(f\" -> Résultat requête Python: {result_python_bool}\")\n",
+ " self._logger.info(f\" -> Resultat requete Python: {result_python_bool}\")\n",
" return result_python_bool\n",
" except jpype.JException as e_java:\n",
- " error_msg = f\"Erreur Java exécution requête: {e_java.getClass().getName()}: {e_java.getMessage()}\"\n",
+ " error_msg = f\"Erreur Java execution requete: {e_java.getClass().getName()}: {e_java.getMessage()}\"\n",
" self._logger.error(error_msg)\n",
- " raise RuntimeError(f\"Erreur Exécution Requête Tweety: {e_java.getMessage()}\") from e_java\n",
+ " raise RuntimeError(f\"Erreur Execution Requete Tweety: {e_java.getMessage()}\") from e_java\n",
" except Exception as e:\n",
- " self._logger.error(f\"Erreur Python exécution requête: {e}\", exc_info=True)\n",
- " raise RuntimeError(f\"Erreur Python Exécution Requête: {e}\") from e\n",
+ " self._logger.error(f\"Erreur Python execution requete: {e}\", exc_info=True)\n",
+ " raise RuntimeError(f\"Erreur Python Execution Requete: {e}\") from e\n",
"\n",
- " # --- Méthode Façade (ancienne, conservée pour compatibilité) ---\n",
+ " # --- Methode Facade (ancienne, conservee pour compatibilite) ---\n",
" @kernel_function(\n",
- " description=\"Exécute une requête en Logique Propositionnelle (syntaxe Tweety: !,||,=>,<=>,^^) sur un Belief Set fourni. Retourne le résultat (ACCEPTED, REJECTED, Unknown, ou FUNC_ERROR). NOTE: Préférez execute_and_log_pl_query qui enregistre automatiquement le résultat.\",\n",
+ " description=\"Execute une requete en Logique Propositionnelle (syntaxe Tweety: !,||,=>,<=>,^^) sur un Belief Set fourni. Retourne le resultat (ACCEPTED, REJECTED, Unknown, ou FUNC_ERROR). NOTE: Preferez execute_and_log_pl_query qui enregistre automatiquement le resultat.\",\n",
" name=\"execute_pl_query\"\n",
" )\n",
" def execute_pl_query(self, belief_set_content: str, query_string: str) -> str:\n",
" self._logger.info(f\"Appel execute_pl_query: Query='{query_string}' sur BS ('{belief_set_content[:60]}...')\")\n",
" if not self._jvm_ok:\n",
- " self._logger.error(\"execute_pl_query: JVM non prête.\")\n",
- " return \"FUNC_ERROR: JVM non prête ou composants Tweety non chargés.\"\n",
+ " self._logger.error(\"execute_pl_query: JVM non prete.\")\n",
+ " return \"FUNC_ERROR: JVM non prete ou composants Tweety non charges.\"\n",
" try:\n",
" belief_set_obj = self._internal_parse_belief_set(belief_set_content)\n",
- " if belief_set_obj is None: return \"FUNC_ERROR: Échec parsing Belief Set. Vérifiez syntaxe.\"\n",
+ " if belief_set_obj is None: return \"FUNC_ERROR: Echec parsing Belief Set. Verifiez syntaxe.\"\n",
" formula_obj = self._internal_parse_formula(query_string)\n",
- " if formula_obj is None: return f\"FUNC_ERROR: Échec parsing requête '{query_string}'. Vérifiez syntaxe.\"\n",
+ " if formula_obj is None: return f\"FUNC_ERROR: Echec parsing requete '{query_string}'. Verifiez syntaxe.\"\n",
" result_bool: Optional[bool] = self._internal_execute_query(belief_set_obj, formula_obj)\n",
" if result_bool is None:\n",
" result_str = f\"Tweety Result: Unknown for query '{query_string}'.\"\n",
- " self._logger.warning(f\"Requête '{query_string}' -> indéterminé (None).\")\n",
+ " self._logger.warning(f\"Requete '{query_string}' -> indetermine (None).\")\n",
" else:\n",
" result_label = \"ACCEPTED (True)\" if result_bool else \"REJECTED (False)\"\n",
" result_str = f\"Tweety Result: Query '{query_string}' is {result_label}.\"\n",
- " self._logger.info(f\" -> Résultat formaté requête '{query_string}': {result_label}\")\n",
+ " self._logger.info(f\" -> Resultat formate requete '{query_string}': {result_label}\")\n",
" return result_str\n",
" except RuntimeError as e_runtime:\n",
- " self._logger.error(f\"Erreur exécution (parsing/query): {e_runtime}\")\n",
+ " self._logger.error(f\"Erreur execution (parsing/query): {e_runtime}\")\n",
" return f\"FUNC_ERROR: {e_runtime}\"\n",
" except Exception as e_py:\n",
" error_msg = f\"Erreur Python inattendue dans execute_pl_query: {e_py}\"\n",
" self._logger.error(error_msg, exc_info=True)\n",
" return f\"FUNC_ERROR: {error_msg}\"\n",
"\n",
- " # --- Nouvelle Méthode Fusionnée (V12 - Fix callback params) ---\n",
+ " # --- Nouvelle Methode Fusionnee (V12 - Fix callback params) ---\n",
" @kernel_function(\n",
- " description=\"Exécute une requête PL ET enregistre automatiquement le résultat dans l'état. RECOMMANDÉE pour toutes les requêtes PL car elle garantit le logging pour la cross-validation.\",\n",
+ " description=\"Execute une requete PL ET enregistre automatiquement le resultat dans l'etat. RECOMMANDEE pour toutes les requetes PL car elle garantit le logging pour la cross-validation.\",\n",
" name=\"execute_and_log_pl_query\"\n",
" )\n",
" def execute_and_log_pl_query(self, belief_set_id: str, belief_set_content: str, query_string: str) -> str:\n",
" \"\"\"\n",
- " Exécute une requête PL et enregistre automatiquement le résultat.\n",
+ " Execute une requete PL et enregistre automatiquement le resultat.\n",
" \n",
" Args:\n",
" belief_set_id: ID du belief set (ex: \"propositional_bs_1\")\n",
" belief_set_content: Contenu du belief set en syntaxe Tweety\n",
- " query_string: Requête PL à exécuter\n",
+ " query_string: Requete PL a executer\n",
" \n",
" Returns:\n",
- " Résultat formaté incluant confirmation du logging\n",
+ " Resultat formate incluant confirmation du logging\n",
" \"\"\"\n",
" self._logger.info(f\"Appel execute_and_log_pl_query: Query='{query_string}' sur BS '{belief_set_id}'\")\n",
" \n",
- " # 1. Exécuter la requête\n",
+ " # 1. Executer la requete\n",
" result_str = self.execute_pl_query(belief_set_content, query_string)\n",
" \n",
- " # 2. Parser le résultat pour extraire le statut\n",
+ " # 2. Parser le resultat pour extraire le statut\n",
" if \"ACCEPTED (True)\" in result_str:\n",
" status = \"ACCEPTED\"\n",
" elif \"REJECTED (False)\" in result_str:\n",
@@ -400,7 +402,7 @@
" else:\n",
" status = \"UNKNOWN\"\n",
" \n",
- " # 3. Créer l'entrée de log\n",
+ " # 3. Creer l'entree de log\n",
" log_entry = {\n",
" \"belief_set_id\": belief_set_id,\n",
" \"query\": query_string,\n",
@@ -411,11 +413,11 @@
" \n",
" # 4. Logger en interne (toujours)\n",
" self._query_log.append(log_entry)\n",
- " self._logger.info(f\"Requête loggée en interne: {query_string} -> {status}\")\n",
+ " self._logger.info(f\"Requete loggee en interne: {query_string} -> {status}\")\n",
" \n",
" # 5. Appeler le callback externe si disponible (StateManager.log_query_result)\n",
" # V12 FIX: Use correct parameter names matching StateManagerPlugin.log_query_result(belief_set_id, query, raw_result)\n",
- " callback_status = \"non configuré\"\n",
+ " callback_status = \"non configure\"\n",
" if self._log_callback is not None:\n",
" try:\n",
" # StateManagerPlugin.log_query_result expects: (belief_set_id: str, query: str, raw_result: str)\n",
@@ -425,16 +427,17 @@
" raw_result=result_str # Fixed: was 'result' + 'details', now just 'raw_result'\n",
" )\n",
" callback_status = \"OK\"\n",
- " self._logger.info(f\"Callback logging externe appelé avec succès.\")\n",
+ " self._logger.info(f\"Callback logging externe appele avec succes.\")\n",
" except Exception as e:\n",
" callback_status = f\"ERREUR: {e}\"\n",
" self._logger.error(f\"Erreur appel callback logging: {e}\")\n",
" \n",
- " # 6. Retourner résultat enrichi\n",
+ " # 6. Retourner resultat enrichi\n",
" return f\"{result_str}\\n[LOGGED: BS={belief_set_id}, Status={status}, Callback={callback_status}]\"\n",
"\n",
"\n",
- "logger.info(\"Classe PropositionalLogicPlugin (V12 avec callback fix) définie.\")"
+ "logger.info(\"Classe PropositionalLogicPlugin (V12 avec callback fix) definie.\")\n",
+ "print(\"PropositionalLogicPlugin (V12) defini : 2 fonctions natives (execute_pl_query, execute_and_log_pl_query) + interface JPype/Tweety\")"
]
},
{
@@ -442,10 +445,10 @@
"id": "4l79vo815z",
"metadata": {
"papermill": {
- "duration": 0.005535,
- "end_time": "2026-05-02T18:28:49.994431",
+ "duration": 0.024374,
+ "end_time": "2026-05-31T19:46:03.157895",
"exception": false,
- "start_time": "2026-05-02T18:28:49.988896",
+ "start_time": "2026-05-31T19:46:03.133521",
"status": "completed"
},
"tags": []
@@ -536,10 +539,10 @@
"id": "2e49f71c",
"metadata": {
"papermill": {
- "duration": 0.006928,
- "end_time": "2026-05-02T18:28:50.006742",
+ "duration": 0.004593,
+ "end_time": "2026-05-31T19:46:03.171660",
"exception": false,
- "start_time": "2026-05-02T18:28:49.999814",
+ "start_time": "2026-05-31T19:46:03.167067",
"status": "completed"
},
"tags": []
@@ -553,10 +556,10 @@
"id": "rvsvy6gztei",
"metadata": {
"papermill": {
- "duration": 0.007335,
- "end_time": "2026-05-02T18:28:50.021123",
+ "duration": 0.00495,
+ "end_time": "2026-05-31T19:46:03.180350",
"exception": false,
- "start_time": "2026-05-02T18:28:50.013788",
+ "start_time": "2026-05-31T19:46:03.175400",
"status": "completed"
},
"tags": []
@@ -616,25 +619,33 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 2,
"id": "94248ddd",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-02T18:28:50.037983Z",
- "iopub.status.busy": "2026-05-02T18:28:50.037177Z",
- "iopub.status.idle": "2026-05-02T18:28:50.064686Z",
- "shell.execute_reply": "2026-05-02T18:28:50.063379Z"
+ "iopub.execute_input": "2026-05-31T19:46:03.193144Z",
+ "iopub.status.busy": "2026-05-31T19:46:03.192808Z",
+ "iopub.status.idle": "2026-05-31T19:46:03.213444Z",
+ "shell.execute_reply": "2026-05-31T19:46:03.212437Z"
},
"papermill": {
- "duration": 0.038548,
- "end_time": "2026-05-02T18:28:50.066468",
+ "duration": 0.028362,
+ "end_time": "2026-05-31T19:46:03.214385",
"exception": false,
- "start_time": "2026-05-02T18:28:50.027920",
+ "start_time": "2026-05-31T19:46:03.186023",
"status": "completed"
},
"tags": []
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3 prompts semantiques PL (V10) + fonction setup_pl_kernel definis\n"
+ ]
+ }
+ ],
"source": [
"# %% CELLULE [6.2] - Prompts Semantiques et Fonction Setup (PL) - V10\n",
"# (Remplace une partie de l'ancienne cellule 7bbc31e5 et corrige l'indentation)\n",
@@ -660,23 +671,7 @@
"logger = logging.getLogger(\"Orchestration.AgentPL.Setup\")\n",
"\n",
"# --- Fonctions Semantiques PLAnalyzer (Prompts V10 - Tous operateurs Tweety) ---\n",
- "# BNF Tweety officielle (PlParser.java):\n",
- "# FORMULA ::== PROPOSITION | \"(\" FORMULA \")\" | FORMULA \">>\" FORMULA |\n",
- "# FORMULA \"||\" FORMULA | FORMULA \"&&\" FORMULA | FORMULA \"=>\" FORMULA | \n",
- "# FORMULA \"<=>\" FORMULA | FORMULA \"^^\" FORMULA | \"!\" FORMULA | \"+\" | \"-\"\n",
- "#\n",
- "# Operateurs supportes:\n",
- "# ! negation\n",
- "# && conjonction (et)\n",
- "# || disjonction (ou)\n",
- "# => implication (si...alors)\n",
- "# <=> bi-implication (si et seulement si)\n",
- "# ^^ ou exclusif (xor)\n",
- "# >> implication materielle (eviter, redondant avec =>)\n",
- "# + tautologie\n",
- "# - contradiction\n",
- "\n",
- "# V10: Prompts avec tous les operateurs Tweety valides (inclut &&)\n",
+ "\n",
"prompt_text_to_pl_v10 = \"\"\"\n",
"[Instructions]\n",
"Transformez le texte fourni en un belief set en Logique Propositionnelle (PL).\n",
@@ -770,11 +765,6 @@
" \"\"\"\n",
" Configure le kernel pour le PropositionalLogicAgent.\n",
" Ajoute une instance du PropositionalLogicPlugin et les fonctions semantiques.\n",
- " \n",
- " Args:\n",
- " kernel: Kernel Semantic Kernel a configurer\n",
- " llm_service: Service LLM pour les fonctions semantiques\n",
- " state_manager_plugin: Instance optionnelle du StateManagerPlugin pour configurer le callback logging\n",
" \"\"\"\n",
" plugin_name = \"PLAnalyzer\"\n",
" logger.info(f\"Configuration Kernel pour {plugin_name} (V12 - allow_dangerously_set_content)...\")\n",
@@ -812,63 +802,25 @@
" for func_name, prompt, description in semantic_functions_config:\n",
" try:\n",
" if SK_HAS_INPUT_VARIABLE:\n",
- " # SK 1.0+ avec PromptTemplateConfig et allow_dangerously_set_content\n",
- " # Determiner les variables d'entree selon la fonction\n",
" if func_name == \"semantic_TextToPLBeliefSet\":\n",
- " input_vars = [\n",
- " InputVariable(name=\"input\", description=\"Texte a traduire en PL\", \n",
- " is_required=True, allow_dangerously_set_content=True)\n",
- " ]\n",
+ " input_vars = [InputVariable(name=\"input\", description=\"Texte a traduire en PL\", is_required=True, allow_dangerously_set_content=True)]\n",
" elif func_name == \"semantic_GeneratePLQueries\":\n",
- " input_vars = [\n",
- " InputVariable(name=\"input\", description=\"Texte original\", \n",
- " is_required=True, allow_dangerously_set_content=True),\n",
- " InputVariable(name=\"belief_set\", description=\"Belief Set PL\", \n",
- " is_required=True, allow_dangerously_set_content=True)\n",
- " ]\n",
- " else: # semantic_InterpretPLResult\n",
- " input_vars = [\n",
- " InputVariable(name=\"input\", description=\"Texte original\", \n",
- " is_required=True, allow_dangerously_set_content=True),\n",
- " InputVariable(name=\"belief_set\", description=\"Belief Set PL\", \n",
- " is_required=True, allow_dangerously_set_content=True),\n",
- " InputVariable(name=\"queries\", description=\"Requetes testees\", \n",
- " is_required=True, allow_dangerously_set_content=True),\n",
- " InputVariable(name=\"tweety_result\", description=\"Resultats Tweety\", \n",
- " is_required=True, allow_dangerously_set_content=True)\n",
- " ]\n",
- " \n",
- " prompt_config = PromptTemplateConfig(\n",
- " template=prompt,\n",
- " name=func_name,\n",
- " description=description,\n",
- " input_variables=input_vars\n",
- " )\n",
+ " input_vars = [InputVariable(name=\"input\", description=\"Texte original\", is_required=True, allow_dangerously_set_content=True), InputVariable(name=\"belief_set\", description=\"Belief Set PL\", is_required=True, allow_dangerously_set_content=True)]\n",
+ " else:\n",
+ " input_vars = [InputVariable(name=\"input\", description=\"Texte original\", is_required=True, allow_dangerously_set_content=True), InputVariable(name=\"belief_set\", description=\"Belief Set PL\", is_required=True, allow_dangerously_set_content=True), InputVariable(name=\"queries\", description=\"Requetes testees\", is_required=True, allow_dangerously_set_content=True), InputVariable(name=\"tweety_result\", description=\"Resultats Tweety\", is_required=True, allow_dangerously_set_content=True)]\n",
" \n",
- " kernel.add_function(\n",
- " prompt_template_config=prompt_config,\n",
- " plugin_name=plugin_name,\n",
- " function_name=func_name,\n",
- " prompt_execution_settings=default_settings\n",
- " )\n",
+ " prompt_config = PromptTemplateConfig(template=prompt, name=func_name, description=description, input_variables=input_vars)\n",
+ " kernel.add_function(prompt_template_config=prompt_config, plugin_name=plugin_name, function_name=func_name, prompt_execution_settings=default_settings)\n",
" logger.debug(f\"Fonction {plugin_name}.{func_name} ajoutee (SK 1.0+ avec config).\")\n",
" else:\n",
- " # Fallback pour anciennes versions SK\n",
- " kernel.add_function(\n",
- " prompt=prompt, \n",
- " plugin_name=plugin_name, \n",
- " function_name=func_name, \n",
- " description=description, \n",
- " prompt_execution_settings=default_settings\n",
- " )\n",
+ " kernel.add_function(prompt=prompt, plugin_name=plugin_name, function_name=func_name, description=description, prompt_execution_settings=default_settings)\n",
" logger.debug(f\"Fonction {plugin_name}.{func_name} ajoutee (mode legacy).\")\n",
- " \n",
" except ValueError as ve: \n",
" logger.warning(f\"Probleme ajout/MaJ {plugin_name}.{func_name}: {ve}\")\n",
" except Exception as e:\n",
" logger.error(f\"Erreur ajout {plugin_name}.{func_name}: {e}\")\n",
"\n",
- " # Verification des fonctions natives (facade + nouvelle fusionnee)\n",
+ " # Verification des fonctions natives\n",
" native_functions = [\"execute_pl_query\", \"execute_and_log_pl_query\"]\n",
" if plugin_name in kernel.plugins:\n",
" for native_func in native_functions:\n",
@@ -880,11 +832,12 @@
" logger.error(f\"ERREUR CRITIQUE: Plugin {plugin_name} non trouve apres ajout!\")\n",
"\n",
" logger.info(f\"Kernel {plugin_name} configure (V12).\")\n",
+ " print(f\"Kernel {plugin_name} configure avec succes : plugin Tweety + 3 fonctions semantiques\")\n",
" \n",
" # Retourner l'instance du plugin pour permettre l'acces au query_log\n",
" return pl_plugin_instance\n",
"\n",
- "# Fin de la definition de la fonction setup_pl_kernel"
+ "print(\"3 prompts semantiques PL (V10) + fonction setup_pl_kernel definis\")"
]
},
{
@@ -892,10 +845,10 @@
"id": "f50fv9l23yu",
"metadata": {
"papermill": {
- "duration": 0.005784,
- "end_time": "2026-05-02T18:28:50.077679",
+ "duration": 0.006396,
+ "end_time": "2026-05-31T19:46:03.225675",
"exception": false,
- "start_time": "2026-05-02T18:28:50.071895",
+ "start_time": "2026-05-31T19:46:03.219279",
"status": "completed"
},
"tags": []
@@ -1033,10 +986,10 @@
"id": "50865675",
"metadata": {
"papermill": {
- "duration": 0.006866,
- "end_time": "2026-05-02T18:28:50.091318",
+ "duration": 0.00526,
+ "end_time": "2026-05-31T19:46:03.241668",
"exception": false,
- "start_time": "2026-05-02T18:28:50.084452",
+ "start_time": "2026-05-31T19:46:03.236408",
"status": "completed"
},
"tags": []
@@ -1050,10 +1003,10 @@
"id": "mcf9za31wx",
"metadata": {
"papermill": {
- "duration": 0.007296,
- "end_time": "2026-05-02T18:28:50.106292",
+ "duration": 0.010499,
+ "end_time": "2026-05-31T19:46:03.275651",
"exception": false,
- "start_time": "2026-05-02T18:28:50.098996",
+ "start_time": "2026-05-31T19:46:03.265152",
"status": "completed"
},
"tags": []
@@ -1101,29 +1054,31 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 3,
"id": "f7943ca6",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-02T18:28:50.120032Z",
- "iopub.status.busy": "2026-05-02T18:28:50.119652Z",
- "iopub.status.idle": "2026-05-02T18:28:50.129662Z",
- "shell.execute_reply": "2026-05-02T18:28:50.127915Z"
+ "iopub.execute_input": "2026-05-31T19:46:03.305506Z",
+ "iopub.status.busy": "2026-05-31T19:46:03.303978Z",
+ "iopub.status.idle": "2026-05-31T19:46:03.338131Z",
+ "shell.execute_reply": "2026-05-31T19:46:03.333588Z"
},
"papermill": {
- "duration": 0.019632,
- "end_time": "2026-05-02T18:28:50.131888",
+ "duration": 0.055704,
+ "end_time": "2026-05-31T19:46:03.342004",
"exception": false,
- "start_time": "2026-05-02T18:28:50.112256",
+ "start_time": "2026-05-31T19:46:03.286300",
"status": "completed"
},
"tags": []
},
"outputs": [
{
+ "name": "stdout",
"output_type": "stream",
- "name": "stderr",
- "text": "18:46:28 [INFO] [Orchestration.AgentPL.Instructions] Instructions Systeme PL_AGENT_INSTRUCTIONS (V16 - INTERDIT add_analysis_task) definies.\n"
+ "text": [
+ "Instructions systeme PropositionalLogicAgent (V16) definies : 3542 caracteres\n"
+ ]
}
],
"source": [
@@ -1232,7 +1187,8 @@
"PL_AGENT_INSTRUCTIONS_V15 = PL_AGENT_INSTRUCTIONS_V16\n",
"PL_AGENT_INSTRUCTIONS = PL_AGENT_INSTRUCTIONS_V16\n",
"\n",
- "logger.info(\"Instructions Systeme PL_AGENT_INSTRUCTIONS (V16 - INTERDIT add_analysis_task) definies.\")"
+ "logger.info(\"Instructions Systeme PL_AGENT_INSTRUCTIONS (V16 - INTERDIT add_analysis_task) definies.\")\n",
+ "print(f\"Instructions systeme PropositionalLogicAgent (V16) definies : {len(PL_AGENT_INSTRUCTIONS)} caracteres\")"
]
},
{
@@ -1240,10 +1196,10 @@
"id": "yl7mnvfnjoe",
"metadata": {
"papermill": {
- "duration": 0.005335,
- "end_time": "2026-05-02T18:28:50.142827",
+ "duration": 0.043792,
+ "end_time": "2026-05-31T19:46:03.424634",
"exception": false,
- "start_time": "2026-05-02T18:28:50.137492",
+ "start_time": "2026-05-31T19:46:03.380842",
"status": "completed"
},
"tags": []
@@ -1359,10 +1315,10 @@
"id": "bd0ab150",
"metadata": {
"papermill": {
- "duration": 0.00537,
- "end_time": "2026-05-02T18:28:50.152462",
+ "duration": 0.03736,
+ "end_time": "2026-05-31T19:46:03.504807",
"exception": false,
- "start_time": "2026-05-02T18:28:50.147092",
+ "start_time": "2026-05-31T19:46:03.467447",
"status": "completed"
},
"tags": []
@@ -1387,20 +1343,20 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 4,
"id": "3023915a",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-05-02T18:28:50.165578Z",
- "iopub.status.busy": "2026-05-02T18:28:50.164900Z",
- "iopub.status.idle": "2026-05-02T18:28:50.177630Z",
- "shell.execute_reply": "2026-05-02T18:28:50.176073Z"
+ "iopub.execute_input": "2026-05-31T19:46:03.587947Z",
+ "iopub.status.busy": "2026-05-31T19:46:03.587733Z",
+ "iopub.status.idle": "2026-05-31T19:46:03.639524Z",
+ "shell.execute_reply": "2026-05-31T19:46:03.631746Z"
},
"papermill": {
- "duration": 0.022005,
- "end_time": "2026-05-02T18:28:50.180005",
+ "duration": 0.099023,
+ "end_time": "2026-05-31T19:46:03.644696",
"exception": false,
- "start_time": "2026-05-02T18:28:50.158000",
+ "start_time": "2026-05-31T19:46:03.545673",
"status": "completed"
},
"tags": []
@@ -1526,10 +1482,10 @@
"id": "f79h9ggv4so",
"metadata": {
"papermill": {
- "duration": 0.00728,
- "end_time": "2026-05-02T18:28:50.194313",
+ "duration": 0.020444,
+ "end_time": "2026-05-31T19:46:03.691655",
"exception": false,
- "start_time": "2026-05-02T18:28:50.187033",
+ "start_time": "2026-05-31T19:46:03.671211",
"status": "completed"
},
"tags": []
@@ -1620,14 +1576,14 @@
},
"papermill": {
"default_parameters": {},
- "duration": 6.745331,
- "end_time": "2026-05-02T18:28:50.765787",
+ "duration": 4.888752,
+ "end_time": "2026-05-31T19:46:04.583610",
"environment_variables": {},
"exception": null,
- "input_path": "d:\\dev\\CoursIA\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-2-pl_agent.ipynb",
- "output_path": "d:\\dev\\CoursIA\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-2-pl_agent.ipynb",
+ "input_path": "d:\\dev\\CoursIA-2\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-2-pl_agent.ipynb",
+ "output_path": "d:\\dev\\CoursIA-2\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-2-pl_agent.ipynb",
"parameters": {},
- "start_time": "2026-05-02T18:28:44.020456",
+ "start_time": "2026-05-31T19:45:59.694858",
"version": "2.6.0"
}
},
diff --git a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-3-orchestration.ipynb b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-3-orchestration.ipynb
index 98585d949..1714191a3 100644
--- a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-3-orchestration.ipynb
+++ b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argument_Analysis_Agentic-3-orchestration.ipynb
@@ -1,12 +1,34 @@
{
"cells": [
+ {
+ "cell_type": "markdown",
+ "id": "0c14a075",
+ "metadata": {
+ "tags": [
+ "papermill-error-cell-tag"
+ ]
+ },
+ "source": [
+ "An Exception was encountered at 'In [3]'."
+ ]
+ },
{
"cell_type": "markdown",
"id": "f3f519f6",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": 0.006613,
+ "end_time": "2026-05-31T19:39:25.163861",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:25.157248",
+ "status": "completed"
+ },
+ "tags": []
+ },
"source": [
"## 7. Orchestration de la Conversation (Définitions des Stratégies)\n",
"\n",
+ "**Objectif :** Définir les stratégies de contrôle (terminaison et sélection) qui gouvernent la conversation collaborative entre agents d'analyse rhétorique.\n",
"\n",
"[Retour au README](../README.md) | [Precedent : PL Agent](./Argument_Analysis_Agentic-2-pl_agent.ipynb) | [Suivant : Executor](./Argument_Analysis_Executor.ipynb)\n",
"\n",
@@ -28,7 +50,16 @@
{
"cell_type": "markdown",
"id": "0ms4yhzpodtb",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": 0.005256,
+ "end_time": "2026-05-31T19:39:25.173998",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:25.168742",
+ "status": "completed"
+ },
+ "tags": []
+ },
"source": [
"### Rôle des stratégies dans Semantic Kernel\n",
"\n",
@@ -64,7 +95,16 @@
{
"cell_type": "markdown",
"id": "oi9tpn8nh9q",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": 0.004115,
+ "end_time": "2026-05-31T19:39:25.183360",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:25.179245",
+ "status": "completed"
+ },
+ "tags": []
+ },
"source": [
"## Introduction à l'orchestration multi-agents\n",
"\n",
@@ -109,7 +149,16 @@
{
"cell_type": "markdown",
"id": "da81dd5c",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": 0.004564,
+ "end_time": "2026-05-31T19:39:25.192890",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:25.188326",
+ "status": "completed"
+ },
+ "tags": []
+ },
"source": [
"### 🚦 Classe Stratégie : SimpleTerminationStrategy"
]
@@ -117,7 +166,16 @@
{
"cell_type": "markdown",
"id": "2rzgm9sw41t",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": 0.003992,
+ "end_time": "2026-05-31T19:39:25.201302",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:25.197310",
+ "status": "completed"
+ },
+ "tags": []
+ },
"source": [
"### Fonctionnement de SimpleTerminationStrategy\n",
"\n",
@@ -135,23 +193,25 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 1,
"id": "f73a5c52",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-21T00:23:05.239258Z",
- "iopub.status.busy": "2026-04-21T00:23:05.238925Z",
- "iopub.status.idle": "2026-04-21T00:23:07.521049Z",
- "shell.execute_reply": "2026-04-21T00:23:07.519888Z"
- }
+ "iopub.execute_input": "2026-05-31T19:39:25.213002Z",
+ "iopub.status.busy": "2026-05-31T19:39:25.212795Z",
+ "iopub.status.idle": "2026-05-31T19:39:26.699787Z",
+ "shell.execute_reply": "2026-05-31T19:39:26.699108Z"
+ },
+ "papermill": {
+ "duration": 1.503579,
+ "end_time": "2026-05-31T19:39:26.709478",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:25.205899",
+ "status": "completed"
+ },
+ "tags": []
},
- "outputs": [
- {
- "output_type": "stream",
- "name": "stderr",
- "text": "18:46:29 [INFO] [root] Classe SimpleTerminationStrategy définie.\n"
- }
- ],
+ "outputs": [],
"source": [
"# %% CELLULE [7.1] - Définition Classe SimpleTerminationStrategy\n",
"# (Remplace une partie de l'ancienne cellule 6b88c7ae)\n",
@@ -230,7 +290,16 @@
{
"cell_type": "markdown",
"id": "y3v72yuv8uj",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": 0.024269,
+ "end_time": "2026-05-31T19:39:26.772340",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:26.748071",
+ "status": "completed"
+ },
+ "tags": []
+ },
"source": [
"### Résultat de la définition\n",
"\n",
@@ -248,7 +317,16 @@
{
"cell_type": "markdown",
"id": "2b44ce25",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": 0.038726,
+ "end_time": "2026-05-31T19:39:26.835450",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:26.796724",
+ "status": "completed"
+ },
+ "tags": []
+ },
"source": [
"### 🚦 Classe Stratégie : DelegatingSelectionStrategy"
]
@@ -256,7 +334,16 @@
{
"cell_type": "markdown",
"id": "d4z6a44hgot",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": 0.023981,
+ "end_time": "2026-05-31T19:39:26.895893",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:26.871912",
+ "status": "completed"
+ },
+ "tags": []
+ },
"source": [
"### Fonctionnement de DelegatingSelectionStrategy\n",
"\n",
@@ -286,23 +373,25 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 2,
"id": "c7a7ced5",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-21T00:23:07.523755Z",
- "iopub.status.busy": "2026-04-21T00:23:07.523387Z",
- "iopub.status.idle": "2026-04-21T00:23:07.540853Z",
- "shell.execute_reply": "2026-04-21T00:23:07.539886Z"
- }
+ "iopub.execute_input": "2026-05-31T19:39:26.923168Z",
+ "iopub.status.busy": "2026-05-31T19:39:26.922693Z",
+ "iopub.status.idle": "2026-05-31T19:39:26.964258Z",
+ "shell.execute_reply": "2026-05-31T19:39:26.961623Z"
+ },
+ "papermill": {
+ "duration": 0.061666,
+ "end_time": "2026-05-31T19:39:26.967653",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:26.905987",
+ "status": "completed"
+ },
+ "tags": []
},
- "outputs": [
- {
- "output_type": "stream",
- "name": "stderr",
- "text": "18:46:29 [INFO] [root] Classe DelegatingSelectionStrategy (V2) définie.\n"
- }
- ],
+ "outputs": [],
"source": [
"# %% CELLULE MODIFIÉE (ID c7a7ced5) - Définition Classe DelegatingSelectionStrategy (V2 - Fix Pydantic Init)\n",
"\n",
@@ -438,7 +527,16 @@
{
"cell_type": "markdown",
"id": "r7rx0606whp",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": 0.003843,
+ "end_time": "2026-05-31T19:39:26.977081",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:26.973238",
+ "status": "completed"
+ },
+ "tags": []
+ },
"source": [
"### Vérification de l'implémentation\n",
"\n",
@@ -465,7 +563,16 @@
{
"cell_type": "markdown",
"id": "cf18168c",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": 0.003648,
+ "end_time": "2026-05-31T19:39:26.985050",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:26.981402",
+ "status": "completed"
+ },
+ "tags": []
+ },
"source": [
"## 8. Exécution de la Conversation Collaborative (▶️ Lancement)\n",
"\n",
@@ -483,7 +590,16 @@
{
"cell_type": "markdown",
"id": "4pz6glxkhof",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": 0.004803,
+ "end_time": "2026-05-31T19:39:26.993403",
+ "exception": false,
+ "start_time": "2026-05-31T19:39:26.988600",
+ "status": "completed"
+ },
+ "tags": []
+ },
"source": [
"### Architecture d'isolation pour l'exécution\n",
"\n",
@@ -510,28 +626,49 @@
"Ces paramètres sont essentiels pour une exécution stable et prévisible de la conversation multi-agents."
]
},
+ {
+ "cell_type": "markdown",
+ "id": "b05ee20c",
+ "metadata": {
+ "tags": [
+ "papermill-error-cell-tag"
+ ]
+ },
+ "source": [
+ "Execution using papermill encountered an exception here and stopped:"
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 3,
"id": "c3702fe6",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-21T00:23:07.543552Z",
- "iopub.status.busy": "2026-04-21T00:23:07.543254Z",
- "iopub.status.idle": "2026-04-21T00:23:09.478931Z",
- "shell.execute_reply": "2026-04-21T00:23:09.478029Z"
- }
+ "iopub.execute_input": "2026-05-31T19:39:27.003818Z",
+ "iopub.status.busy": "2026-05-31T19:39:27.003452Z",
+ "iopub.status.idle": "2026-05-31T19:39:31.765655Z",
+ "shell.execute_reply": "2026-05-31T19:39:31.763764Z"
+ },
+ "papermill": {
+ "duration": 4.768697,
+ "end_time": "2026-05-31T19:39:31.766778",
+ "exception": true,
+ "start_time": "2026-05-31T19:39:26.998081",
+ "status": "failed"
+ },
+ "tags": []
},
"outputs": [
{
- "output_type": "stream",
- "name": "stderr",
- "text": "18:46:29 [WARNING] [Orchestration.Run] Service LLM global non disponible (None). Mode degrade active.\n"
- },
- {
- "output_type": "stream",
- "name": "stderr",
- "text": "18:46:29 [WARNING] [Orchestration.Run] Configurez un OPENAI_API_KEY valide dans .env pour une execution complete.\n"
+ "ename": "NameError",
+ "evalue": "Definitions manquantes: RhetoricalAnalysisState, StateManagerPlugin, ProjectManagerPlugin, InformalAnalysisPlugin, PropositionalLogicPlugin, global_ai_service_instance, setup_pm_kernel, setup_informal_kernel, setup_pl_kernel, PM_INSTRUCTIONS, INFORMAL_AGENT_INSTRUCTIONS, PL_AGENT_INSTRUCTIONS. Executez cellules precedentes.",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
+ "\u001b[31mNameError\u001b[39m Traceback (most recent call last)",
+ "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[3]\u001b[39m\u001b[32m, line 33\u001b[39m\n\u001b[32m 29\u001b[39m \u001b[33m'setup_pm_kernel'\u001b[39m, \u001b[33m'setup_informal_kernel'\u001b[39m, \u001b[33m'setup_pl_kernel'\u001b[39m,\n\u001b[32m 30\u001b[39m \u001b[33m'PM_INSTRUCTIONS'\u001b[39m, \u001b[33m'INFORMAL_AGENT_INSTRUCTIONS'\u001b[39m, \u001b[33m'PL_AGENT_INSTRUCTIONS'\u001b[39m\n\u001b[32m 31\u001b[39m ]\n\u001b[32m 32\u001b[39m missing = [name \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;28;01min\u001b[39;00m required_globals \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;28;01mnot\u001b[39;00m \u001b[38;5;28;01min\u001b[39;00m globals()]\n\u001b[32m---> \u001b[39m\u001b[32m33\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m missing: \u001b[38;5;28;01mraise\u001b[39;00m NameError(f\"Definitions manquantes: {\u001b[33m', '\u001b[39m.join(missing)}. Executez cellules precedentes.\")\n\u001b[32m 34\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28;01mnot\u001b[39;00m global_ai_service_instance:\n\u001b[32m 35\u001b[39m logger.warning(\u001b[33m\"Service LLM global non disponible (None). Mode degrade active.\"\u001b[39m)\n\u001b[32m 36\u001b[39m logger.warning(\u001b[33m\"Configurez un OPENAI_API_KEY valide dans .env pour une execution complete.\"\u001b[39m)\n",
+ "\u001b[31mNameError\u001b[39m: Definitions manquantes: RhetoricalAnalysisState, StateManagerPlugin, ProjectManagerPlugin, InformalAnalysisPlugin, PropositionalLogicPlugin, global_ai_service_instance, setup_pm_kernel, setup_informal_kernel, setup_pl_kernel, PM_INSTRUCTIONS, INFORMAL_AGENT_INSTRUCTIONS, PL_AGENT_INSTRUCTIONS. Executez cellules precedentes."
+ ]
}
],
"source": [
@@ -810,7 +947,16 @@
{
"cell_type": "markdown",
"id": "32theryd6jx",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": null,
+ "end_time": null,
+ "exception": null,
+ "start_time": null,
+ "status": "pending"
+ },
+ "tags": []
+ },
"source": [
"### Interprétation du flux d'exécution\n",
"\n",
@@ -848,7 +994,16 @@
{
"cell_type": "markdown",
"id": "c9630616",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": null,
+ "end_time": null,
+ "exception": null,
+ "start_time": null,
+ "status": "pending"
+ },
+ "tags": []
+ },
"source": [
"## 9. 🏁 Conclusion et Prochaines Étapes\n",
"\n",
@@ -876,7 +1031,16 @@
{
"cell_type": "markdown",
"id": "gxbntlfqqew",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": null,
+ "end_time": null,
+ "exception": null,
+ "start_time": null,
+ "status": "pending"
+ },
+ "tags": []
+ },
"source": [
"### Comparaison des approches d'orchestration multi-agents\n",
"\n",
@@ -915,7 +1079,16 @@
{
"cell_type": "markdown",
"id": "hh691hwgb06",
- "metadata": {},
+ "metadata": {
+ "papermill": {
+ "duration": null,
+ "end_time": null,
+ "exception": null,
+ "start_time": null,
+ "status": "pending"
+ },
+ "tags": []
+ },
"source": [
"### Synthèse des composants d'orchestration\n",
"\n",
@@ -963,8 +1136,23 @@
{
"cell_type": "markdown",
"id": "ec9ea006",
- "source": "## Conclusion\n\nCe notebook a defini l'infrastructure d'orchestration d'un systeme multi-agents d'analyse rhetorique avec Semantic Kernel. Vous avez appris a implementer `SimpleTerminationStrategy` (arret sur conclusion ou compteur de tours) et `DelegatingSelectionStrategy` (designation explicite avec fallback vers le ProjectManagerAgent), ainsi que le principe d'isolation des instances pour garantir la reproductibilite de chaque analyse.\n\nLes points cles a retenir sont le decouplage entre strategies de terminaison et de selection, l'importance du logging multi-niveaux pour tracer le flux de conversation, et la necessite d'un filet de securite (max_steps) pour eviter les boucles infinies. Ces competences constituent la base pour concevoir des architectures collaboratives plus complexes, notamment l'orchestration hierarchique ou la selection emergente via LLM.",
- "metadata": {}
+ "metadata": {
+ "papermill": {
+ "duration": null,
+ "end_time": null,
+ "exception": null,
+ "start_time": null,
+ "status": "pending"
+ },
+ "tags": []
+ },
+ "source": [
+ "## Conclusion\n",
+ "\n",
+ "Ce notebook a defini l'infrastructure d'orchestration d'un systeme multi-agents d'analyse rhetorique avec Semantic Kernel. Vous avez appris a implementer `SimpleTerminationStrategy` (arret sur conclusion ou compteur de tours) et `DelegatingSelectionStrategy` (designation explicite avec fallback vers le ProjectManagerAgent), ainsi que le principe d'isolation des instances pour garantir la reproductibilite de chaque analyse.\n",
+ "\n",
+ "Les points cles a retenir sont le decouplage entre strategies de terminaison et de selection, l'importance du logging multi-niveaux pour tracer le flux de conversation, et la necessite d'un filet de securite (max_steps) pour eviter les boucles infinies. Ces competences constituent la base pour concevoir des architectures collaboratives plus complexes, notamment l'orchestration hierarchique ou la selection emergente via LLM."
+ ]
}
],
"metadata": {
@@ -983,7 +1171,19 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.13.7"
+ "version": "3.13.12"
+ },
+ "papermill": {
+ "default_parameters": {},
+ "duration": 9.010195,
+ "end_time": "2026-05-31T19:39:32.419618",
+ "environment_variables": {},
+ "exception": true,
+ "input_path": "d:\\dev\\CoursIA-2\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-3-orchestration.ipynb",
+ "output_path": "d:\\dev\\CoursIA-2\\MyIA.AI.Notebooks\\SymbolicAI\\Argument_Analysis\\Argument_Analysis_Agentic-3-orchestration.ipynb",
+ "parameters": {},
+ "start_time": "2026-05-31T19:39:23.409423",
+ "version": "2.6.0"
}
},
"nbformat": 4,