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,