Skip to content

🚀 Production Release: test → prod - #240

Merged
EnzoBagnis merged 33 commits into
prodfrom
test
Mar 11, 2026
Merged

🚀 Production Release: test → prod#240
EnzoBagnis merged 33 commits into
prodfrom
test

Conversation

@EnzoBagnis

Copy link
Copy Markdown
Owner

🚀 Déploiement en Production

Auto-generated tests passed on test

Cette PR a été automatiquement créée par le pipeline CI/CD après validation des tests automatiquement générés sur la branche test.

⚠️ Actions requises avant merge :

  • Review approfondie du code
  • Vérification des changements critiques
  • Validation par au moins 1 reviewer
  • Approbation finale pour production

📋 Checklist de déploiement :

  • Les tests unitaires auto-générés passent
  • Aucune régression détectée
  • Documentation à jour
  • Prêt pour la production

Créée automatiquement par GitHub Actions

PibouleauJB and others added 30 commits March 9, 2026 11:43
…ns et visualisation t-SNE

en: feat: implement clustering pipeline with Doc2Vec, KMeans, and t-SNE visualization
es: feat: implementar pipeline de clustering con Doc2Vec, KMeans y visualización t-SNE
de: feat: Implementierung der Clustering-Pipeline mit Doc2Vec, KMeans und t-SNE-Visualisierung
it: feat: implementazione della pipeline di clustering con Doc2Vec, KMeans e visualizzazione t-SNE
zh: feat: 实现包含 Doc2Vec、KMeans 和 t-SNE 可视化的聚类流水线
ja: feat: Doc2Vec、KMeans、t-SNE可視化によるクラスタリングパイプラインの実装
ru: feat: реализация конвейера кластеризации с использованием Doc2Vec, KMeans и визуализации t-SNE
ar: feat: تنفيذ خط أنابيب التجميع باستخدام Doc2Vec و KMeans وتصور t-SNE
pt: feat: implementar pipeline de clustering com Doc2Vec, KMeans e visualização t-SNE
hi: feat: Doc2Vec, KMeans और t-SNE विज़ुअलाइज़ation के साथ क्लस्टरिंग पाइपलाइन लागू की गई
ko: feat: Doc2Vec, KMeans 및 t-SNE 시각화를 포함한 클러스터링 파이프라인 구현
nl: feat: implementatie van clustering-pipeline met Doc2Vec, KMeans en t-SNE-visualisatie
tr: feat: Doc2Vec, KMeans ve t-SNE görselleştirmesi ile kümeleme ardışık düzeninin uygulanması
pl: feat: implementacja potoku klasteryzacji z Doc2Vec, KMeans i wizualizacją t-SNE
tlh: feat: Doc2Vec KMeans je t-SNE ghomlu'meH pat
sim: feat: Sul sul! Clustering Doc2Vec KMeans t-SNE visualization wabadebadoo
min: feat: Clustering Doc2Vec KMeans t-SNE visualization! Ba-na-na
nav: feat: Rel Doc2Vec sì KMeans sì t-SNE visualization fpi fìtseng
doth: feat: Clustering pipeline Doc2Vec KMeans ma t-SNE visualization
sch: feat: Schtroumpfer le pipeline de clustering avec Doc2Vec, KMeans et la schtroumpfisation t-SNE
tp: feat: pali e kulupu kepeken Doc2Vec en KMeans en sitelen t-SNE
eo: feat: efektivigi klastan dukton per Doc2Vec, KMeans kaj t-SNE-bildigo
sil: feat: i-u-ee-o Doc2Vec KMeans t-SNE visualization
lch: feat: limplémentation-lem du lipeline-pém de lustering-clém avec Doc2Vec, KMeans et lisualisation-vém t-SNE
pig: feat: implement-way ustering-clay ipeline-pay ith-way Doc2Vec, KMeans, and-way t-SNE isualization-vay
sin: feat: Clustering pipeline Doc2Vec ar KMeans ar t-SNE visualization
hut: feat: Clustering pipeline Doc2Vec KMeans t-SNE visualization moova
sol: feat: do-re-mi Doc2Vec KMeans t-SNE visualization
pir: feat: clustering Doc2Vec KMeans t-SNE visualization hi-hi
kab: feat: asbeddi n tmahilt n clustering s Doc2Vec, KMeans d ubeqqi n t-SNE
mrs: feat: Oh l'ami, j'ai envoyé le pipeline de clustering avec Doc2Vec et KMeans, et je t'ai mis la visu t-SNE pour que ce soit tarpin propre
bre: feat: lakaat e pleustr ar san-stur klastarañ gant Doc2Vec, KMeans ha gweledikaat t-SNE
cor: feat: implementazione di u pipeline di clustering cù Doc2Vec, KMeans è visualisazione t-SNE
arr: feat: Avast! I be buildin' the clustering pipeline with Doc2Vec, KMeans, and t-SNE maps to find the hidden treasure
en: Add macro and micro analysis modes to clustering pipeline
es: Agregar modos de análisis macro y micro al pipeline de clustering
de: Hinzufügen von Makro- und Mikroanalysemodi zur Clustering-Pipeline
it: Aggiunta delle modalità di analisi macro e micro alla pipeline di clustering
zh: 在聚类流水线中添加宏观和微观分析模式
ja: クラスタリングパイプラインにマクロおよびミクロ分析モードを追加
ru: Добавление макро- и микрорежимов анализа в конвейер кластеризации
ar: إضافة أوضاع التحليل الكلي والجزئي إلى خط أنابيب التجميع
pt: Adicionar modos de análise macro e micro ao pipeline de clustering
hi: क्लस्टरिंग पाइपलाइन में मैक्रो और माइक्रो विश्लेषण मोड जोड़ें
ko: 클러스터링 파이프라인에 거시 및 미시 분석 모드 추가
nl: Macro- en micro-analysemodi toevoegen aan de clustering-pipeline
tr: Kümeleme ardışık düzenine makro ve mikro analiz modları ekle
pl: Dodanie trybów analizy makro i mikro do potoku klasteryzacji
tlh: clustering pipeline-vaD macro micro je nuch modes chel
sim: Sul sul! Add macro micro analysis modes clustering pipeline zark
min: Add macro micro analysis modes clustering pipeline! Ba-na-na
nav: Add macro sì micro analysis modes clustering pipeline fpi
doth: Add macro ma micro analysis modes clustering pipeline mae
sch: Schtroumpfer des modes d'analyse macro et micro au schtroumpf de clustering
tp: mi pana e nasin suli e nasin lili tawa pali kulupu
eo: aldoni makro- kaj mikro-analizajn reĝimojn al klasta dukto
sil: i-u-e-o macro micro analysis modes clustering pipeline
lch: laddition-lam des lodes-mom danalyse-lam lacro-mem et licro-mem au lipeline-pém de lustering-clém
pig: add-way acro-may and-way icro-may nalysis-away odes-may o-tay ustering-clay ipeline-pay
sin: Add macro ar micro analysis modes clustering pipeline
hut: Add macro micro analysis modes clustering pipeline moova
sol: do-re-mi macro micro analysis modes clustering pipeline
pir: add macro micro analysis modes clustering pipeline hi-hi
kab: rnu tarrayin n tmahilt n macro d micro i clustering
mrs: Oh l'ami, j'ai rajouté les modes macro et micro au pipeline, c'est carré pour l'analyse maintenant
bre: ouzhpennañ mod dizeskañ makro ha mikre d’ar san-stur klastarañ
cor: aghjunghje i modi d'analisi macro è micro à u pipeline di clustering
arr: Ahoy! Addin' macro and micro modes to the clustering map, keep an eye on the horizon
…pipeline de clustering ; ajout de la gestion des trajectoires avec surbrillance dans la vue Micro

en: Improve normalization and t-SNE parameters in clustering pipeline; add trajectory management with highlighting in Micro view
es: Mejora de la normalización y parámetros t-SNE en el pipeline de clustering; adición de gestión de trayectorias con resaltado en vista Micro
de: Verbesserung der Normalisierung und t-SNE-Parameter in der Clustering-Pipeline; Hinzufügen von Trajektorienmanagement mit Hervorhebung in der Micro-Ansicht
it: Miglioramento della normalizzazione e dei parametri t-SNE nella pipeline di clustering; aggiunta della gestione delle traiettorie con evidenziazione nella vista Micro
zh: 改进聚类流水线中的归一化和 t-SNE 参数;在微观视图中增加带有高亮显示的轨迹管理
ja: クラスタリングパイプラインにおける正規化と t-SNE パラメータの改善。Micro ビューへのハイライト付き軌道管理の追加
ru: Улучшение нормализации и параметров t-SNE в конвейере кластеризации; добавление управления траекториями с подсветкой в режиме Micro
ar: تحسين التطبيع ومعلمات t-SNE في خط أنابيب التجميع؛ إضافة إدارة المسارات مع التمييز في عرض Micro
pt: Melhoria da normalização e parâmetros t-SNE no pipeline de clustering; adição de gestão de trajetórias com destaque na vista Micro
hi: क्लस्टरing पाइपलाइन में सामान्यीकरण और t-SNE मापदंडों में सुधार; माइक्रो व्यू में हाइलाइटिंग के साथ प्रक्षेपवक्र प्रबंधन जोड़ा गया
ko: 클러스터링 파이프라인의 정규화 및 t-SNE 파라미터 개선; Micro 뷰에 하이라이트 기능이 포함된 궤적 관리 추가
nl: Verbetering van normalisatie en t-SNE-parameters in de clustering-pipeline; toevoeging van trajectbeheer met markering in Micro-weergave
tr: Kümeleme ardışık düzeninde normalleştirme ve t-SNE parametrelerinin iyileştirilmesi; Micro görünümünde vurgulama ile yörünge yönetimi eklendi
pl: Poprawa normalizacji i parametrów t-SNE w potoku klasteryzacji; dodanie zarządzania trajektoriami z wyróżnieniem w widoku Micro
tlh: clustering pipeline-Daq normalization t-SNE parameters je choH; Micro leghmeH mIw chu' chel
sim: Sul sul! Improve normalization t-SNE clustering pipeline, add trajectory highlighting Micro view zark
min: Improve normalization t-SNE parameters clustering pipeline! Add trajectory highlighting Micro view! Ba-na-na
nav: Improve normalization sì t-SNE parameters clustering pipeline; add trajectory management hu highlighting Micro view
doth: Improve normalization ma t-SNE parameters clustering pipeline; add trajectory management highlighting Micro view mae
sch: Schtroumpfer la normalisation et les paramètres t-SNE dans le schtroumpf de clustering; schtroumpfer les trajectoires dans la vue Micro
tp: mi pona e nanpa e t-SNE tawa pali kulupu. mi pana e nasin tawa lukin lili
eo: plibonigi normaligon kaj t-SNE-parametrojn en klasta dukto; aldoni trajektorian mastrumadon kun reliefigo en Mikro-vido
sil: i-u-e-o normalization t-SNE parameters clustering pipeline trajectory Micro view
lch: lamélioration-lam de la lormalisation-nom et des laramètres-pam t-SNE dans le lipeline-pém de lustering-clém; laddition-lam de la lestion-gem des lrajectoires-trom avec lurbrillance-som dans la lue-vum Micro
pig: improve-way ormalization-nay and-way t-SNE arameters-pay in-way ustering-clay ipeline-pay; add-way rajectory-tay anagement-may ith-way ighlighting-hay in-way icro-may iew-vay
sin: Improve normalization ar t-SNE parameters clustering pipeline; add trajectory highlighting Micro view
hut: Improve normalization t-SNE parameters clustering pipeline, add trajectory highlighting Micro view moova
sol: do-re-mi improve normalization t-SNE parameters trajectory Micro view
pir: improve normalization t-SNE parameters clustering pipeline add trajectory highlight Micro view hi-hi
kab: asemmet n normalization d t-SNE parameters deg tmahilt n clustering; rnu trajectory management s highlighting deg Micro view
mrs: Oh l'ami, j'ai recalé la normalisation et les réglages t-SNE dans le pipeline; j'ai aussi balancé la gestion des trajectoires qui flashent dans la vue Micro, c'est le feu
bre: gwellaat an norsaat hag an arventennoù t-SNE er san-stur klastarañ; ouzhpennañ ar merañ trajektorioù gant ussklerijennañ er gwel Micro
cor: amigliuramentu di a nurmalisazione è di i parametri t-SNE in u pipeline di clustering; aghjunta di a gestione di e traiettorie cù risaltu in a vista Micro
arr: Ahoy! Betterin' the normalization and t-SNE charts in the clustering map; addin' trackin' paths with glow in the Micro lookout
en: Replace n_iter with max_iter in clustering pipeline
es: Reemplazo de n_iter por max_iter en el pipeline de clustering
de: Ersetzung von n_iter durch max_iter in der Clustering-Pipeline
it: Sostituzione di n_iter con max_iter nella pipeline di clustering
zh: 在聚类流水线中将 n_iter 替换为 max_iter
ja: クラスタリングパイプラインで n_iter を max_iter に置換
ru: Замена n_iter на max_iter в конвейере кластеризации
ar: استبدال n_iter بـ max_iter في خط أنابيب التجميع
pt: Substituição de n_iter por max_iter no pipeline de clustering
hi: क्लस्टरिंग पाइपलाइन में n_iter को max_iter से बदलें
ko: 클러스터링 파이프라인에서 n_iter를 max_iter로 교체
nl: Vervanging van n_iter door max_iter in de clustering-pipeline
tr: Kümeleme ardışık düzeninde n_iter'in max_iter ile değiştirilmesi
pl: Zmiana n_iter na max_iter w potoku klasteryzacji
tlh: clustering pipeline-Daq n_iter choH, max_iter ghaH
sim: Sul sul! Swap n_iter max_iter clustering pipeline zark
min: Swap n_iter max_iter clustering pipeline! Ba-na-na
nav: n_iter fpi max_iter clustering pipeline hu
doth: Swap n_iter ma max_iter clustering pipeline mae
sch: Schtroumpfer n_iter par max_iter dans le schtroumpf de clustering
tp: mi ante e nimi n_iter tawa nimi max_iter lon pali kulupu
eo: anstataŭigo de n_iter per max_iter en klasta dukto
sil: i-u-e-o n_iter max_iter clustering pipeline
lch: lesplacement-rem de l_iter-nem par lax_iter-mem dans le lipeline-pém de lustering-clém
pig: eplace-ray n_iter ith-way max_iter in-way ustering-clay ipeline-pay
sin: Replace n_iter an max_iter clustering pipeline
hut: Swap n_iter max_iter clustering pipeline moova
sol: do-re-mi n_iter max_iter clustering pipeline
pir: swap n_iter max_iter clustering pipeline hi-hi
kab: abeddel n n_iter s max_iter deg tmahilt n clustering
mrs: Oh l'ami, j'ai viré n_iter pour mettre max_iter dans le pipeline, c'est plus propre pour la suite
bre: kemmañ n_iter gant max_iter er san-stur klastarañ
cor: rimpiazzamentu di n_iter per max_iter in u pipeline di clustering
arr: Ahoy! Swappin' n_iter for max_iter in the clustering map, keep the course true
… adapté dans tous les styles, ligne par ligne :

fr: Ajout des routes API pour le clustering IA dans le dashboard ; intégration des modules de visualisation IA et des styles associés
en: Add API routes for AI clustering in the dashboard; integration of AI visualization modules and associated styles
es: Adición de rutas API para el clustering IA en el dashboard; integración de módulos de visualización IA y estilos asociados
de: Hinzufügen von API-Routen für KI-Clustering im Dashboard; Integration von KI-Visualisierungsmodulen und zugehörigen Stilen
it: Aggiunta di rotte API per il clustering IA nel dashboard; integrazione dei moduli di visualizzazione IA e stili associati
zh: 在仪表板中添加 AI 聚类的 API 路由;集成 AI 可视化模块及相关样式
ja: ダッシュボードに AI クラスタリング用の API ルートを追加。AI 可視化モジュールと関連スタイルの統合
ru: Добавление маршрутов API для ИИ-кластеризации в дашборд; интеграция модулей ИИ-визуализации и связанных стилей
ar: إضافة مسارات API لتجميع الذكاء الاصطناعي في لوحة القيادة؛ تكامل وحدات تصور الذكاء الاصطناعي والأنماط المرتبطة بها
pt: Adição de rotas API para o clustering IA no dashboard; integração de módulos de visualização IA e estilos associados
hi: डैशबोर्ड में एआई क्लस्टरिंग के लिए एपीआई रूट जोड़े गए; एआई विज़ुअलाइज़ेशन मॉड्यूल और संबंधित शैलियों का एकीकरण
ko: 대시보드에 AI 클러스터링을 위한 API 경로 추가; AI 시각화 모듈 및 관련 스타일 통합
nl: Toevoegen van API-routes voor AI-clustering in het dashboard; integratie van AI-visualisatiemodules en bijbehorende stijlen
tr: Dashboard'a yapay zeka kümelemesi için API yolları eklendi; yapay zeka görselleştirme modülleri ve ilgili stillerin entegrasyonu
pl: Dodanie tras API dla klasteryzacji AI w dashboardzie; integracja modułów wizualizacji AI i powiązanych stylów
tlh: dashboard-Daq AI clustering-vaD API routes chel; AI leghmeH mIw chu' styles je chel
sim: Sul sul! Add API routes AI clustering dashboard, integration AI visualization modules styles zark
min: Add API routes AI clustering dashboard! Integration AI visualization modules! Ba-na-na
nav: Add API routes AI clustering dashboard fpi; integration AI visualization modules sì styles hu
doth: Add API routes AI clustering dashboard mae; integration AI visualization modules ma styles
sch: Schtroumpfer des routes API pour le schtroumpf IA dans le dashboard ; schtroumpf des modules de visualisation IA et des schtroumpfs associés
tp: mi pana e nasin API tawa pali IA lon lipu suli. mi wan e sitelen IA e kule pi ona
eo: aldoni API-vojojn por AI-klustigo en la stabbildon; integriĝo de AI-vidigaj moduloj kaj rilataj stiloj
sil: i-u-e-o API routes AI clustering dashboard visualization modules styles
lch: Lajout-lam des loutes-rom API pour le lustering-clém IA dans le lashboard-dem ; lintégration-lam des lodules-mom de lisualisation-vum IA et des lyles-stem associés
pig: add-way API-way outes-ray or-fay AI-way ustering-clay in-way e-thay ashboard-day; integration-way of-way AI-way isualization-vay odules-may and-way associated-way tyles-stay
sin: Add API routes AI clustering dashboard; integration AI visualization modules an styles
hut: Add API routes AI clustering dashboard, integration AI visualization modules styles moova
sol: do-re-mi API routes AI clustering dashboard visualization modules styles
pir: add API clustering dashboard, visualization modules styles hi-hi
kab: rnu tarrayin n API i clustering n IA deg dashboard; integration n modules n visualization IA d styles-nsen
mrs: Oh fada, j'ai balancé les routes API pour le clustering IA dans le dashboard ; j'ai aussi calé la visu IA et tout le style qui va avec, c'est tarpin beau
bre: ouzhpennañ an hentoù API evit ar c'hlastarañ NA en taol-stur; enframmañ ar moduloù gweledikaat NA hag ar stiloù stag outo
cor: aghjunghje e rotte API per u clustering IA in u dashboard; integrazione di i moduli di visualisazione IA è i stili assuciati
arr: Ahoy! Chartin' new API paths for the AI treasures in the dashboard; riggin' up the AI lookout glass and the finest colors for the sails
…'API et mise à jour de la vue dashboard avec le contexte exercice pour la vue Micro IA

en: Add AES data verification for the resource in the API and update dashboard view with exercise context for the Micro AI view
es: Adición de la verificación de datos AES para el recurso en la API y actualización de la vista del dashboard con el contexto de ejercicio para la vista Micro IA
de: Hinzufügen der AES-Datenüberprüfung für die Ressource in der API und Aktualisierung der Dashboard-Ansicht mit dem Übungskontext für die Micro-KI-Ansicht
it: Aggiunta della verifica dei dati AES per la risorsa nell'API e aggiornamento della vista dashboard con il contesto esercizio per la vista Micro IA
zh: 在 API 中增加资源的 AES 数据验证,并为微观 AI 视图更新包含练习上下文的仪表板视图
ja: API でのリソースの AES データ検証の追加と、Micro AI ビュー向けの演習コンテキストによるダッシュボードビューの更新
ru: Добавление проверки данных AES для ресурса в API и обновление панели мониторинжения с контекстом упражнения для режима Micro IA
ar: إضافة التحقق من بيانات AES للمورد في واجهة برمجة التطبيقات وتحديث عرض لوحة القيادة مع سياق التمرين لعرض Micro IA
pt: Adição da verificação de dados AES para o recurso na API e atualização da vista do dashboard com o contexto de exercício para a vista Micro IA
hi: एपीआई में संसाधन के लिए एईएस डेटा सत्यापन जोड़ा गया और माइक्रो एआई व्यू के लिए अभ्यास संदर्भ के साथ डैशबोर्ड व्यू को अपडेट किया गया
ko: API 리소스에 대한 AES 데이터 검증 추가 및 Micro AI 뷰를 위한 연습 컨텍스트로 대시보드 뷰 업데이트
nl: Toevoegen van AES-gegevensverificatie voor de bron in de API en bijwerken van de dashboardweergave met oefencontext voor de Micro AI-weergave
tr: API'deki kaynak için AES veri doğrulaması eklendi ve Micro IA görünümü için egzersiz bağlamıyla dashboard görünümü güncellendi
pl: Dodanie weryfikacji danych AES dla zasobu w API i aktualizacja widoku dashboardu o kontekst ćwiczenia dla widoku Micro IA
tlh: API-Daq AES De' qargh ghom; dashboard leghmeH mIw exercise context Micro AI view-vaD chel
sim: Sul sul! AES data check-a-roo API, dashboard exercise context Micro AI view wabadebadoo
min: AES data check API! Dashboard exercise context Micro AI view! Banana!
nav: Rel AES sì data verification API fpi; dashboard view sì exercise context Micro AI view hu
doth: Add AES data verification API mae; update dashboard view ma exercise context Micro AI view
sch: Schtroumpfer la vérification AES de la ressource dans l'API et schtroumpfer le dashboard avec le contexte exercice pour la vue Micro IA
tp: mi pana e lukin nanpa AES tawa API. mi ante e lipu suli tawa lukin lili IA lon tenpo pali
eo: aldoni AES-datuman konfirmon por la rimedo en la API kaj ĝisdatigi la stabbildan vidon per ekzerckonteksto por la Mikro-AI-vido
sil: i-u-ee-o AES data verification API, dashboard exercise context Micro IA
lch: Lajout-lam de la lérification-vém des lonnées-dém AES pour la ressource-rem dans lAPI-am et lise-mèm à lour-jém du lashboard-dem avec le lontexte-cem exercice pour la lue-vum Micro IA
pig: add-way AES-way ata-day erification-vay or-fay e-thay esource-ray in-way e-thay API-way and-way update-way ashboard-day iew-vay ith-way exercise-way ontext-cay or-fay e-thay icro-may AI-way iew-vay
sin: Add AES data verification API; update dashboard view an exercise context Micro AI view
hut: Add AES data verification API, update dashboard view exercise context Micro AI view moova
sol: do-re-mi AES data verification API, dashboard exercise context Micro IA
pir: AES data verification API, update dashboard exercise context Micro IA hi-hi
kab: rnu n tmahilt n verification n AES i tiferwit deg API d ubeqqi n dashboard s exercise context i Micro IA
mrs: Oh l'ami, j'ai blindé l'API avec la vérif AES pour la ressource, et j'ai calé le contexte exercice dans la vue Micro IA du dashboard, c'est réglé comme du papier à musique
bre: ouzhpennañ an unpriziañ roadennoù AES evit an danvez en API ha kemmañ gwel an taol-stur gant ar c'henteks embregadenn evit ar gwel Micro NA
cor: aghjunghje a verificazione di i dati AES per a risorsa in l'API è aghjurnamentu di a vista dashboard cù u cuntestu eserciziu per a vista Micro IA
arr: Avast! Double-checked the AES seals on the API treasure chest and updated the captain's board with the exercise charts for the Micro AI spyglass
…e dans l'API et mise à jour de la vue dashboard avec le contexte exercice pour la vue Micro IA"

This reverts commit bf62f46.

Revert pour faire après merge
…e commit adapté dans tous les styles, ligne par ligne :"

This reverts commit 4675474.

Revert pour faire après merge bis
…ne de clustering

en: feat: AI Merge, adding AI with routes, controller, and clustering pipeline
es: feat: Fusión de IA, adición de IA con rutas, controlador y pipeline de clustering
de: feat: KI-Merge, Hinzufügen von KI mit Routen, Controller und Clustering-Pipeline
it: feat: Merge IA, aggiunta dell'IA con rotte, controller e pipeline di clustering
zh: feat: AI 合并,添加带有路由、控制器和聚类流水线的 AI
ja: feat: AI マージ、ルート、コントローラー、クラスタリングパイプラインによる AI の追加
ru: feat: Слияние ИИ, добавление ИИ с маршрутами, контроллером и конвейером кластеризации
ar: feat: دمج الذكاء الاصطناعي، إضافة الذكاء الاصطناعي مع المسارات والمتحكم وخط أنابيب التجميع
pt: feat: Fusão de IA, adição de IA com rotas, controlador e pipeline de clustering
hi: feat: एआई मर्ज, रूट, कंट्रोलर और क्लस्टरिंग पाइपलाइन के साथ एआई जोड़ना
ko: feat: AI 병합, 경로, 컨트롤러 및 클러스터링 파이프라인을 포함한 AI 추가
nl: feat: AI-merge, toevoegen van AI met routes, controller en clustering-pipeline
tr: feat: Yapay Zeka birleşimi, yollar, denetleyici ve kümeleme ardışık düzeni ile yapay zeka ekleme
pl: feat: Merge IA, dodanie IA z trasami, kontrolerem i potokiem klasteryzacji
tlh: feat: AI ghom, routes controller clustering pipeline je chel
sim: feat: Sul sul! Merge AI, routes controller clustering pipeline zark
min: feat: Merge AI! Routes controller clustering pipeline! Banana!
nav: feat: Rel AI, routes sì controller sì clustering pipeline hu
doth: feat: Merge AI, routes ma controller ma clustering pipeline mae
sch: feat: Schtroumpfer l'IA, ajout de l'IA avec les routes, le contrôleur et le pipeline de schtroumpfage
tp: feat: wan e pali IA. mi pana e nasin e jan lawa e pali kulupu
eo: feat: IA-kunfandiĝo, aldono de IA kun vojoj, regilo kaj klasta dukto
sil: feat: i-u-ee-o AI, routes controller clustering pipeline
lch: feat: lusion-fum de lIA-am, lajout-lam de lIA-am avec loutes-rom, lontrôleur-com et lipeline-pém de lustering-clém
pig: feat: erge-may AI-way, adding-way AI-way ith-way outes-ray, ontroller-cay and-way ustering-clay ipeline-pay
sin: feat: Merge AI, adding AI an routes, controller ar clustering pipeline
hut: feat: Merge AI, routes controller clustering pipeline moova
sol: feat: do-re-mi AI merge, routes controller clustering pipeline
pir: feat: merge AI, routes controller clustering pipeline hi-hi
kab: feat: asdukel n IA, rnu IA s tarrayin, controller d tmahilt n clustering
mrs: feat: Fusion de l'IA, j'ai envoyé l'IA avec les routes, le contrôleur et le pipeline de clustering, c'est carré le sang
bre: feat: Kendeuziñ an NA, ouzhpennañ an NA gant an hentoù, ar reolier hag ar san-stur klastarañ
cor: feat: Fusione di l'IA, aghjunta di l'IA cù rotte, cuntrullore è pipeline di clustering
bin: 01100110 01100101 01100001 01110100 00100000 00111010 00100000 01001101 01100101 01110010 01100111 01100101 00100000 01001001 01000001
arr: feat: Merge the AI! Bringin' aboard the routes, the controller, and the clustering maps for the fleet
mor: ..-. . .- - / : / -- . .-. --. . / .. .- / .- -.. -.. / .. .- / .-. --- ..- - . ... / -.-. --- -. - .-. --- .-.. .-.. . .-. / -.-. .-.. ..- ... - . .-. .. -. --.
…votre message : "feat : Ajout de l'API pour vérifier les données AES et intégration des sections IA Macro et Micro dans le dashboard".

fr: feat : Ajout de l'API pour vérifier les données AES et intégration des sections IA Macro et Micro dans le dashboard
en: feat: Add API for AES data verification and integrate Macro and Micro AI sections into the dashboard
es: feat: Adición de la API para verificar datos AES e integración de las secciones IA Macro y Micro en el dashboard
de: feat: Hinzufügen der API zur AES-Datenüberprüfung und Integration der IA-Makro- und Mikrobereiche im Dashboard
it: feat: Aggiunta dell'API per verificare i dati AES e integrazione delle sezioni IA Macro e Micro nel dashboard
zh: feat: 添加用于验证 AES 数据的 API,并在仪表板中集成宏观和微观 AI 部分
ja: feat: AESデータ検証用APIの追加とダッシュボードへのマクロ・ミクロAIセクションの統合
ru: feat: Добавление API для проверки данных AES и интеграция разделов IA Macro и Micro в дашборд
ar: feat: إضافة واجهة برمجة التطبيقات للتحقق من بيانات AES ودمج أقسام الذكاء الاصطناعي الكلية والجزئية في لوحة القيادة
pt: feat: Adição da API para verificar dados AES e integração das seções IA Macro e Micro no dashboard
hi: feat: AES डेटा सत्यापन के लिए API जोड़ना और डैशबोर्ड में मैक्रो और माइक्रो AI अनुभागों का एकीकरण
ko: feat: AES 데이터 검증을 위한 API 추가 및 대시보드에 매크로 및 미시 AI 섹션 통합
nl: feat: Toevoegen van de API voor AES-gegevensverificatie en integratie van de Macro- en Micro AI-secties in het dashboard
tr: feat: AES veri doğrulaması için API eklenmesi ve dashboard'a Makro ve Mikro yapay zeka bölümlerinin entegrasyonu
pl: feat: Dodanie API do weryfikacji danych AES i integracja sekcji IA Macro i Micro w dashboardzie
tlh: feat: AES De' qargh ghom meH API chel dashboard-Daq AI Macro Micro je chel
sim: feat: Sul sul! Add API check AES data, dashboard integrate AI Macro Micro zark
min: feat: Add API check AES data! Integrate AI Macro Micro dashboard! Banana
nav: feat: Rel AES data verification API fpi; dashboard AI Macro sì Micro hu
doth: feat: Add API check AES data; integrate AI Macro ma Micro dashboard mae
sch: feat: Schtroumpfer l'API pour schtroumpfer les données AES et schtroumpfer les sections IA Macro et Micro dans le dashboard
tp: feat: mi pana e API pi nanpa AES. mi wan e kipisi IA suli e kipisi IA lili tawa lipu suli
eo: feat: aldono de la API por kontroli AES-datumojn kaj integriĝo de la sekcioj AI Makro kaj Mikro en la stabbildon
sil: feat: i-u-ee-o API AES data, dashboard AI Macro Micro
lch: feat: Lajout-lam de lAPI-am pour lérifier-vém les lonnées-dém AES et lintégration-lam des lections-sém IA Macro et Micro dans le lashboard-dem
pig: feat: add-way API-way or-fay AES-way ata-day erification-vay and-way integration-way of-way AI-way Macro-way and-way Micro-way ections-say in-way e-thay ashboard-day
sin: feat: Add API verification AES data; integration AI Macro ar Micro dashboard
hut: feat: Add API check AES data, dashboard AI Macro Micro moova
sol: feat: do-re-mi API AES data, dashboard AI Macro Micro
pir: feat: API check AES data, dashboard AI Macro Micro hi-hi
kab: feat: rnu n API i usemmet n isefka n AES d usemdu n tgezmiyin n IA Macro d Micro deg dashboard
mrs: feat: Oh l'ami, j'ai mis l'API pour checker les données AES et j'ai calé les parties IA Macro et Micro dans le dashboard, c'est propre
bre: feat: ouzhpennañ an API evit gwiriañ ar roadennoù AES hag enframmañ ar lodennoù NA Macro ha Micro en taol-stur
cor: feat: aghjunghje l'API per verificà i dati AES è integrazione di e sezzioni IA Macro è Micro in u dashboard
arr: feat: Addin' the API to check the AES seals and bringin' the AI Macro and Micro charts to the captain's deck
bin: 01100110 01100101 01100001 01110100 00111010 00100000 01000001 01000101 01010011 00100000 01000001 01010000 01001001 00100000 00100110 00100000 01000001 01001001 00100000 01000100 01100001 01110011 01101000 01100010 01101111 01100001 01110010 01100100
mor: ..-. . .- - / : / .- . ... / .- .--. .. / .- -.. -.. / .- -. -.. / .- .. / -.. .- ... .... -... --- .- .-. -.. / .. -. - . --. .-. .- - .. --- -.
…routes API associées

en: refactor: Remove deprecated clustering pipeline and related API routes
es: refactor: eliminar el pipeline de clustering obsoleto y las rutas API relacionadas
de: refactor: Veraltete Clustering-Pipeline und zugehörige API-Routen entfernen
it: refactor: rimozione della pipeline di clustering deprecata e delle relative rotte API
zh: refactor: 移除过时的聚类流水线及相关的 API 路由
ja: refactor: 非推奨のクラスタリングパイプラインと関連する API ルートの削除
ru: refactor: удаление устаревшего конвейера кластеризации и соответствующих маршрутов API
ar: refactor: إزالة خط أنابيب التجميع المهجور ومسارات API ذات الصلة
pt: refactor: remover o pipeline de clustering obsoleto e as rotas API relacionadas
hi: refactor: अप्रचलित क्लस्टरिंग पाइपलाइन और संबंधित API रूट को हटाना
ko: refactor: 더 이상 사용되지 않는 클러스터링 파이프라인 및 관련 API 경로 제거
nl: refactor: verwijderen van verouderde clustering-pipeline en gerelateerde API-routes
tr: refactor: kullanımdan kaldırılan kümeleme ardışık düzenini ve ilgili API yollarını kaldır
pl: refactor: usunięcie przestarzałego potoku klasteryzacji i powiązanych tras API
tlh: refactor: clustering pipeline API routes je teq
sim: refactor: Sul sul! Bye-bye clustering pipeline API routes zark
min: refactor: Poopaye clustering pipeline API routes! Banana
nav: refactor: Takuk clustering pipeline sì API routes hu
doth: refactor: Dothralat clustering pipeline ma API routes
sch: refactor : schtroumpfer le pipeline de clustering schtroumpf et les routes API schtroumpfées
tp: refactor: mi weka e pali kulupu pi tenpo pini e nasin API
eo: refactor: forigi malaktualan klastan dukton kaj rilatajn API-vojojn
sil: refactor: i-u-ee-o clustering pipeline API routes
lch: refactor : lespression-rem du lipeline-pém de lustering-clém obsolète-om et des loutes-rom API lassociées-lam
pig: refactor-way: emove-ray eprecated-day ustering-clay ipeline-pay and-way elated-ray API-way outes-ray
sin: refactor: Remove clustering pipeline an API routes
hut: refactor: Bye-bye clustering pipeline API routes moova
sol: refactor: do-re-mi clustering pipeline API routes
pir: refactor: remove clustering pipeline API routes hi-hi
kab: refactor: kkes tmahilt n clustering iqdimen d tarrayin n API i d-yeddun yid-s
mrs: refactor : j'ai dégagé le pipeline de clustering tout naze et les routes API qui vont avec, c'est le grand ménage le sang
bre: refactor : dilemel ar san-stur klastarañ diamzeret hag an hentoù API stag outo
cor: refactor : cacciatura di u pipeline di clustering obsuletu è di e rotte API assuciate
bin: 01110010 01100101 01100110 01100001 01100011 01110100 01101111 01110010 00111010 00100000 01010010 01100101 01101101 01101111 01110110 01100101 00100000 01100011 01101100 01110101 01110011 01110100 01100101 01110010 01101001 01101110 01100111
arr: refactor: Walk the plank, old clustering maps and API routes! Into the depths they go
mor: .-. . ..-. .- -.-. - --- .-. ---... / .-. . -- --- ...- . / -.-. .-.. ..- ... - . .-. .. -. --. / .- -. -.. / .- .--. ..
…tte moderne et des légendes intelligentes

en: feat: improve cluster visualization with a modern palette and smart legends
es: feat: mejora de la visualización de clusters con una paleta moderna y leyendas inteligentes
de: feat: Verbesserung der Cluster-Visualisierung mit einer modernen Palette und intelligenten Legenden
it: feat: miglioramento della visualizzazione dei cluster con una palette moderna e legende intelligenti
zh: feat: 使用现代调色板和智能图例改进聚类可视化
ja: feat: モダンなパレットとスマートな凡例によるクラスタリング可視化の改善
ru: feat: улучшение визуализации кластеров с помощью современной палитры и интеллектуальных легенд
ar: feat: تحسين تصور العناقيد باستخدام لوحة ألوان حديثة وأساطير ذكية
pt: feat: melhoria da visualização de clusters com uma paleta moderna e legendas inteligentes
hi: feat: आधुनिक पैलेट और स्मार्ट लीजेंड के साथ क्लस्टर विज़ुअलाइज़ेशन में सुधार
ko: feat: 현대적인 팔레트와 스마트 범례를 사용한 클러스터 시각화 개선
nl: feat: verbetering van cluster-visualisatie met een modern palet en slimme legenda's
tr: feat: modern palet ve akıllı lejantlar ile küme görselleştirmesinin iyileştirilmesi
pl: feat: ulepszenie wizualizacji klastrów dzięki nowoczesnej palecie i inteligentnym legendom
tlh: feat: ghom leghmeH mIw modernize legends val chel
sim: feat: Sul sul! Ooh be-dee cluster visualization modern palette legends zark
min: feat: Cluster visualization banana palette! Legends smart! Poka!
nav: feat: Rel cluster visualization modern palette sì legends hu
doth: feat: Improve cluster visualization ma modern palette ma legends
sch: feat: Schtroumpfer la visualisation des clusters avec une schtroumpf moderne et des légendes schtroumpfantes
tp: feat: mi pona e sitelen kulupu kepeken kule sin en nimi sona
eo: feat: plibonigi klastan bildigon per moderna paletro kaj inteligentaj legendoj
sil: feat: i-u-ee-o visualization palette legends
lch: feat: lamélioration-lam de la lisualisation-vum des lusters-clem avec une lalette-pame loderne-mom et des légendes-lem lintelligentes-lam
pig: feat: improve-way uster-clay isualization-vay ith-way odern-may alette-pay and-way mart-say egends-lay
sin: feat: Improve cluster visualization modern palette an legends
hut: feat: Cluster visualization modern palette legends moova
sol: feat: do-re-mi visualization modern palette legends
pir: feat: cluster visualization modern palette legends hi-hi
kab: feat: asemmet n visualization n clusters s palette tamaynut d legends ukyisen
mrs: feat: Oh l'ami, j'ai pimpé la visu des clusters avec des couleurs de fada et des légendes qui comprennent tout, c'est magnifique
bre: feat: gwellaat gweledikaat ar strolladoù gant ul livaoueg vodern ha gwerzennoù speredek
cor: feat: amigliuramentu di a visualisazione di i cluster cù una paletta muderna è legende intelligente
arr: feat: Paintin' the cluster maps with fresh colors and smart scrolls for the crew
bin: 01100110 01100101 01100001 01110100 00111010 00100000 01101101 01101111 01100100 01100101 01110010 01101110 00100000 01110000 01100001 01101100 01100101 01110100 01110100 01100101 00100000 00100110 00100000 01101100 01100101 01100111 01100101 01101110 01100100 01110011
mor: ..-. . .- - / : / -- --- -.. . .-. -. / .--. .- .-.. . - - . / .- -. -.. / ... -- .- .-. - / .-.. . --. . -. -.. ...
Copilot AI review requested due to automatic review settings March 11, 2026 20:43
@EnzoBagnis
EnzoBagnis merged commit b525b34 into prod Mar 11, 2026
16 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces an “IA” feature to generate and display Doc2Vec/K-Means/t‑SNE visualizations (macro + micro trajectories) by adding a Python clustering pipeline invoked from new PHP API endpoints, and integrating the resulting plots into both the existing dashboard and a dedicated IA page.

Changes:

  • Add IA backend endpoints and controller to execute a Python clustering pipeline (/api/ia/status, /api/ia/macro, /api/ia/micro) plus a new /ia page.
  • Add Python clustering pipeline script and Python dependencies list for Doc2Vec/K-Means/t‑SNE generation.
  • Add front-end Plotly-based visualizations and integrate Macro/Micro IA sections into the existing dashboard UI/navigation.

Reviewed changes

Copilot reviewed 14 out of 15 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
scripts/clustering_pipeline.py New Python pipeline for micro/global clustering + t‑SNE + output JSON (and optional matplotlib image).
scripts/requirements.txt Declares Python dependencies for the new pipeline.
App/Controller/IaController.php New controller serving IA page + API endpoints, and runs the Python pipeline.
App/routes.php Registers /ia and IA API routes.
public/js/modules/iaIntegration.js Integrates IA Macro/Micro plots into the existing dashboard.
public/js/modules/iaViz.js Standalone IA page Plotly renderer (macro + micro + trajectory highlighting).
public/js/modules/vizManager.js Calls IA integration renderers from existing dashboard flows.
App/View/user/ia.php New IA page view with tabs and Plotly containers.
index.php Adjusts API error handling for fatal/uncaught errors and 404s.
App/View/resources/details.php Adds IA link to desktop navigation.
App/View/user/dashboard.php Adds IA link to navigation.
App/View/resources/list.php Navigation tweaks.
scripts/script.py / scripts/utils/input.txt Removed legacy script/input artifacts.
Comments suppressed due to low confidence (1)

index.php:40

  • Dans le shutdown handler, la branche API renvoie systématiquement un champ debug contenant le message d’erreur fatale. Cela expose des détails internes en production. Supprimer debug (ou le conditionner à APP_ENV=development) et garder un message générique côté API.
        $uri = $_SERVER['REQUEST_URI'] ?? '';
        if (strpos($uri, '/api/') !== false) {
            if (!headers_sent()) {
                header('Content-Type: application/json; charset=utf-8');
            }
            echo json_encode(['success' => false, 'message' => 'Erreur interne fatale.', 'debug' => $error['message']]);
            return;

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +326 to +329
for (let c = 0; c < nClusters; c++) {
const clusterPts = points.filter(p => p.cluster === c);
if (clusterPts.length === 0) continue;

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dans _renderMicro, la boucle for (c < nClusters) fait un points.filter(...) à chaque itération (O(n_clusters * n_points)). Avec beaucoup de tentatives, ça peut devenir coûteux à chaque re-render. Regrouper les points par cluster en une seule passe (map cluster->points) puis itérer sur les groupes.

Copilot uses AI. Check for mistakes.
Comment on lines +471 to +484
Plotly.newPlot(container, traces, layout, { responsive: true }).then(() => {
container.on('plotly_hover', function (evtData) {
if (!evtData || !evtData.points || evtData.points.length === 0) return;
const pt = evtData.points[0];
const hoveredUserId = pt.customdata;
if (!hoveredUserId) return;

_highlightUser(container, traces, nClusterTraces, hoveredUserId, trajectoryAnnotations, layout);
});

container.on('plotly_unhover', function () {
_resetHighlight(container, traces, nClusterTraces, trajectoryAnnotations, layout);
});
});

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

À chaque Plotly.newPlot(...), des handlers plotly_hover / plotly_unhover sont ajoutés via container.on(...). En cas de re-render (ex: toggleTrajectories()), ces listeners risquent de s’empiler et de déclencher plusieurs restyle/relayout. Avant de ré-attacher, supprimer les listeners existants (ex: removeAllListeners) ou attacher une seule fois et mettre à jour les données.

Copilot uses AI. Check for mistakes.
Comment thread index.php
Comment on lines +124 to +133
if (!headers_sent()) {
http_response_code(500);
header('Content-Type: text/html; charset=utf-8');
}

// TOUJOURS afficher les détails pour le debug
echo '<h1>Erreur 500 – Exception non gérée</h1>';
echo '<p><b>' . htmlspecialchars(get_class($e)) . ':</b> ' . htmlspecialchars($msg) . '</p>';
echo '<p>dans <b>' . htmlspecialchars($file) . '</b> ligne <b>' . $line . '</b></p>';
echo '<pre>' . htmlspecialchars($e->getTraceAsString()) . '</pre>';

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Le handler d’exception contient une logique API en double et finit par afficher une page HTML de debug « TOUJOURS afficher les détails » même après le bloc if ($env === 'development') { ... } else { ... }. Cela contourne la protection prod et peut dupliquer la réponse. Il faut garder un seul chemin (API JSON vs HTML) et n’afficher stack trace/classe/fichier qu’en environnement development.

Suggested change
if (!headers_sent()) {
http_response_code(500);
header('Content-Type: text/html; charset=utf-8');
}
// TOUJOURS afficher les détails pour le debug
echo '<h1>Erreur 500 – Exception non gérée</h1>';
echo '<p><b>' . htmlspecialchars(get_class($e)) . ':</b> ' . htmlspecialchars($msg) . '</p>';
echo '<p>dans <b>' . htmlspecialchars($file) . '</b> ligne <b>' . $line . '</b></p>';
echo '<pre>' . htmlspecialchars($e->getTraceAsString()) . '</pre>';
if (!isset($env)) {
$env = defined('APP_ENV') ? APP_ENV : (\Core\Config\EnvLoader::get('APP_ENV', 'production'));
}
if (!headers_sent()) {
http_response_code(500);
header('Content-Type: text/html; charset=utf-8');
}
if ($env === 'development') {
// Afficher les détails uniquement en environnement de développement
echo '<h1>Erreur 500 – Exception non gérée</h1>';
echo '<p><b>' . htmlspecialchars(get_class($e)) . ':</b> ' . htmlspecialchars($msg) . '</p>';
echo '<p>dans <b>' . htmlspecialchars($file) . '</b> ligne <b>' . $line . '</b></p>';
echo '<pre>' . htmlspecialchars($e->getTraceAsString()) . '</pre>';
} else {
// En production, ne pas divulguer de détails techniques supplémentaires ici
if (!headers_sent()) {
echo '<h1>Erreur interne du serveur</h1><p>Une erreur est survenue. Veuillez réessayer.</p>';
}
}

Copilot uses AI. Check for mistakes.
Comment thread App/View/user/ia.php
const opt = document.createElement('option');
opt.value = e.exercice_id;
const res = e.ressource_name ? ` [${e.ressource_name}]` : '';
opt.textContent = `${e.exercice_name}${res} — ${e.nb_attempts} tentatives`;

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dans le JS, les options utilisent e.exercice_name, alors que le contrôleur fournit exercise_name (alias SQL). Cela produira des libellés undefined dans la liste déroulante. Utiliser la même clé que celle renvoyée par le backend (et la même que dans le tableau HTML).

Suggested change
opt.textContent = `${e.exercice_name}${res}${e.nb_attempts} tentatives`;
opt.textContent = `${e.exercise_name}${res}${e.nb_attempts} tentatives`;

Copilot uses AI. Check for mistakes.
Comment on lines +49 to +56
$exercises = $pdo->query(
"SELECT e.exercice_id, e.exercice_name AS exercise_name, e.ressource_id, r.ressource_name,
COUNT(a.attempt_id) AS nb_attempts
FROM exercices e
LEFT JOIN ressources r ON e.ressource_id = r.ressource_id
LEFT JOIN attempts a ON a.exercice_id = e.exercice_id AND a.aes2 IS NOT NULL AND a.aes2 != ''
GROUP BY e.exercice_id
ORDER BY r.ressource_name ASC, e.exercice_name ASC"

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La requête SQL alias e.exercice_name AS exercise_name, alors que la vue user/ia.php (et son JS) utilise exercice_name. Il faut harmoniser (alias AS exercice_name ou mise à jour de la vue) pour éviter des noms d’exercices manquants côté UI.

Copilot uses AI. Check for mistakes.
Comment on lines +106 to +111
actual_perplexity = min(perplexity, max(5, len(vectors_normed) // 3))
tsne = TSNE(
n_components=2,
perplexity=actual_perplexity,
random_state=42,
max_iter=1500,

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Le calcul de actual_perplexity peut produire une perplexité égale au nombre d’échantillons (ex: 5 tentatives ⇒ actual_perplexity = 5), alors que t‑SNE exige perplexity < n_samples. Avec les gardes actuels (min 5), le pipeline va planter sur le cas limite à 5 tentatives. Ajuster la formule pour borner à len(vectors_normed) - 1 (ou augmenter le minimum requis).

Copilot uses AI. Check for mistakes.
Comment on lines +107 to +116
tsne = TSNE(
n_components=2,
perplexity=actual_perplexity,
random_state=42,
max_iter=1500,
learning_rate='auto',
init='pca',
early_exaggeration=12.0,
metric='cosine',
)

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Le paramètre max_iter passé à sklearn.manifold.TSNE n’est pas compatible avec plusieurs versions de scikit‑learn (API historique: n_iter). Comme scripts/requirements.txt autorise scikit-learn>=1.0.0, ce code risque un TypeError selon la version installée. Soit utiliser le nom de paramètre supporté (n_iter), soit relever la contrainte de version scikit‑learn pour correspondre à l’API utilisée.

Copilot uses AI. Check for mistakes.
Comment on lines +250 to +255
actual_perplexity = min(perplexity, max(5, len(vectors_normed) // 3))
tsne = TSNE(
n_components=2,
perplexity=actual_perplexity,
random_state=42,
max_iter=1500,

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Même problème que dans le pipeline micro : actual_perplexity peut devenir égal à len(vectors_normed) quand len==5, ce qui viole la contrainte t‑SNE perplexity < n_samples et fera échouer la vue globale avec le minimum de données autorisé. Bornez la perplexité à n_samples - 1 (ou imposez un minimum de tentatives plus élevé).

Copilot uses AI. Check for mistakes.
Comment thread App/View/user/ia.php
Comment on lines +264 to +280
<td style="padding:.65rem 1rem;">
<?= htmlspecialchars($exo['exercice_name'] ?? '') ?>
</td>
<td style="padding:.65rem 1rem; color:#7f8c8d;">
<?= htmlspecialchars($exo['ressource_name'] ?? '—') ?>
</td>
<td style="padding:.65rem 1rem; text-align:center;">
<?php $nb = (int)($exo['nb_attempts'] ?? 0); ?>
<span style="font-weight:600;
color:<?= $nb >= 5 ? '#27ae60' : '#e74c3c' ?>;"><?= $nb ?></span>
</td>
<td style="padding:.65rem 1rem; text-align:center;">
<?php if ($nb >= 5) : ?>
<button onclick="goToMicro(
<?= (int)$exo['exercice_id'] ?>,
'<?= htmlspecialchars(addslashes($exo['exercice_name'] ?? ''), ENT_QUOTES) ?>')"
style="background:#3498db; color:#fff; border:none;

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Les données $exercises viennent du contrôleur avec l’alias exercise_name, mais ici la vue lit exercice_name. Résultat: libellés d’exercices vides et goToMicro() reçoit un nom vide. Aligner les clés (soit renommer l’alias SQL, soit utiliser exercise_name partout dans la vue).

Copilot uses AI. Check for mistakes.
Comment on lines 149 to 153
<nav class="nav-menu">
<a href="<?= BASE_URL ?>/resources" class="active">Ressources</a>
<a href="<?= BASE_URL ?>/exercises">Exercices</a>
<a href="<?= BASE_URL ?>/ia">IA</a>
</nav>

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Le lien « IA » est ajouté dans la nav desktop, mais il n’est pas présent dans le menu burger (mobile). Pour éviter une navigation incohérente selon la taille d’écran, ajouter aussi l’entrée « IA » dans la liste du menu burger.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants