{"id":2024,"date":"2026-09-21T09:48:59","date_gmt":"2026-09-21T09:48:59","guid":{"rendered":"https:\/\/www.mogacode.ma\/academy\/faire-tourner-une-ia-en-local-sur-mac\/"},"modified":"2026-09-21T09:48:59","modified_gmt":"2026-09-21T09:48:59","slug":"faire-tourner-une-ia-en-local-sur-mac","status":"publish","type":"page","link":"https:\/\/www.mogacode.ma\/en\/academy\/faire-tourner-une-ia-en-local-sur-mac\/","title":{"rendered":"Faire tourner une IA en local sur ton Mac (LM Studio, Ollama)"},"content":{"rendered":"<div class=\"mga-shell\" data-code=\"z3\"><button type=\"button\" class=\"mga-side-toggle\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 6h16M4 12h16M4 18h16\"\/><\/svg><span>Modules<\/span><\/button><div class=\"mga-shell-inner\"><aside class=\"mga-sidebar\"><div class=\"mga-side-head\"><a class=\"mga-side-logo\" href=\"\/academy\/\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M22 10 12 5 2 10l10 5 10-5Z\"\/><path d=\"M6 12v5c0 1 2 2 6 2s6-1 6-2v-5\"\/><\/svg><span>MogaCode <b>Academy<\/b><\/span><\/a><div class=\"mga-side-prog\"><div class=\"track\"><div class=\"bar\"><\/div><\/div><span class=\"lbl\"><\/span><\/div><\/div><nav class=\"mga-side-nav\"><div class=\"mga-blk\" data-bloc=\"A\"><button type=\"button\" class=\"mga-blk-h\"><span class=\"ic\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polygon points=\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"\/><\/svg><\/span><span class=\"t\">D\u00e9couverte<\/span><span class=\"ch\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg><\/span><\/button><div class=\"mga-blk-body\"><a class=\"mga-modlink\" data-code=\"a1\" data-state=\"open\" href=\"\/academy\/comprendre-l-ia-sans-jargon\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">A1<\/span><span class=\"mt\">L&#039;IA sans jargon : de quoi parle-t-on vraiment ?<\/span><\/a><a class=\"mga-modlink\" data-code=\"a2\" data-state=\"open\" href=\"\/academy\/ce-qu-une-ia-sait-faire\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">A2<\/span><span class=\"mt\">Ce qu&#039;un LLM sait faire, et ce qu&#039;il ne sait PAS<\/span><\/a><a class=\"mga-modlink\" data-code=\"a3\" data-state=\"open\" href=\"\/academy\/utiliser-l-ia-sans-se-faire-avoir\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">A3<\/span><span class=\"mt\">Les 5 r\u00e9flexes pour ne pas se faire pi\u00e9ger<\/span><\/a><a class=\"mga-modlink\" data-code=\"a4\" data-state=\"open\" href=\"\/academy\/ecrire-son-premier-prompt\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">A4<\/span><span class=\"mt\">Parler a une IA : tes premiers prompts<\/span><\/a><\/div><\/div><div class=\"mga-blk\" data-bloc=\"B\"><button type=\"button\" class=\"mga-blk-h\"><span class=\"ic\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l1.7 5.2a2 2 0 0 0 1.1 1.1L20 11l-5.2 1.7a2 2 0 0 0-1.1 1.1L12 19l-1.7-5.2a2 2 0 0 0-1.1-1.1L4 11l5.2-1.7a2 2 0 0 0 1.1-1.1z\"\/><\/svg><\/span><span class=\"t\">Prompt et outils<\/span><span class=\"ch\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg><\/span><\/button><div class=\"mga-blk-body\"><a class=\"mga-modlink\" data-code=\"b1\" data-state=\"open\" href=\"\/academy\/le-prompt-qui-marche-vraiment\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">B1<\/span><span class=\"mt\">Le prompt qui marche vraiment<\/span><\/a><a class=\"mga-modlink\" data-code=\"b2\" data-state=\"open\" href=\"\/academy\/quel-outil-ia-choisir\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">B2<\/span><span class=\"mt\">Quel outil IA choisir, et pour quoi faire<\/span><\/a><a class=\"mga-modlink\" data-code=\"b3\" data-state=\"open\" href=\"\/academy\/gagner-du-temps-avec-l-ia\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">B3<\/span><span class=\"mt\">Gagner du temps au quotidien<\/span><\/a><a class=\"mga-modlink\" data-code=\"b4\" data-state=\"open\" href=\"\/academy\/verifier-et-corriger-l-ia\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">B4<\/span><span class=\"mt\">V\u00e9rifier, corriger, assumer<\/span><\/a><a class=\"mga-modlink\" data-code=\"b5\" data-state=\"open\" href=\"\/academy\/donnees-personnelles-et-rgpd\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">B5<\/span><span class=\"mt\">Donn\u00e9es, vie priv\u00e9e et \u00e9thique<\/span><\/a><\/div><\/div><div class=\"mga-blk\" data-bloc=\"C\"><button type=\"button\" class=\"mga-blk-h\"><span class=\"ic\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\/><rect x=\"9\" y=\"9\" width=\"6\" height=\"6\"\/><path d=\"M9 2v2M15 2v2M9 20v2M15 20v2M20 9h2M20 14h2M2 9h2M2 14h2\"\/><\/svg><\/span><span class=\"t\">Comprendre la machine<\/span><span class=\"ch\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg><\/span><\/button><div class=\"mga-blk-body\"><a class=\"mga-modlink\" data-code=\"c1\" data-state=\"lock\" href=\"\/academy\/comprendre-les-api\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">C1<\/span><span class=\"mt\">Une API, c&#039;est quoi et \u00e0 quoi \u00e7a sert ?<\/span><\/a><a class=\"mga-modlink\" data-code=\"c2\" data-state=\"lock\" href=\"\/academy\/preparer-ses-donnees\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">C2<\/span><span class=\"mt\">Donn\u00e9es structur\u00e9es ou non : pr\u00e9parer ses donn\u00e9es<\/span><\/a><a class=\"mga-modlink\" data-code=\"c3\" data-state=\"lock\" href=\"\/academy\/sous-le-capot-d-un-llm\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">C3<\/span><span class=\"mt\">Sous le capot d&#039;un LLM, sans maths<\/span><\/a><a class=\"mga-modlink\" data-code=\"c4\" data-state=\"lock\" href=\"\/academy\/connecter-les-briques\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">C4<\/span><span class=\"mt\">Connecter les briques : tes premi\u00e8res int\u00e9grations<\/span><\/a><\/div><\/div><div class=\"mga-blk\" data-bloc=\"D\"><button type=\"button\" class=\"mga-blk-h\"><span class=\"ic\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"8\" height=\"8\" x=\"3\" y=\"3\" rx=\"2\"\/><path d=\"M7 11v3a2 2 0 0 0 2 2h4\"\/><rect width=\"8\" height=\"8\" x=\"13\" y=\"13\" rx=\"2\"\/><\/svg><\/span><span class=\"t\">Automatiser<\/span><span class=\"ch\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg><\/span><\/button><div class=\"mga-blk-body\"><a class=\"mga-modlink\" data-code=\"d1\" data-state=\"lock\" href=\"\/academy\/automatiser-sans-dependance\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">D1<\/span><span class=\"mt\">L&#039;automatisation sans d\u00e9pendance<\/span><\/a><a class=\"mga-modlink\" data-code=\"d2\" data-state=\"lock\" href=\"\/academy\/declencheurs-cron-webhooks\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">D2<\/span><span class=\"mt\">D\u00e9clencheurs, t\u00e2ches planifi\u00e9es, webhooks<\/span><\/a><a class=\"mga-modlink\" data-code=\"d3\" data-state=\"lock\" href=\"\/academy\/ton-premier-script-utile\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">D3<\/span><span class=\"mt\">Ton premier script utile, de bout en bout<\/span><\/a><a class=\"mga-modlink\" data-code=\"d4\" data-state=\"lock\" href=\"\/academy\/automatiser-un-process\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">D4<\/span><span class=\"mt\">Automatiser un vrai process m\u00e9tier de A \u00e0 Z<\/span><\/a><a class=\"mga-modlink\" data-code=\"d5\" data-state=\"lock\" href=\"\/academy\/fiabilite-logs-reprise\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">D5<\/span><span class=\"mt\">Fiabilit\u00e9 : logs, erreurs, reprise, sauvegardes<\/span><\/a><\/div><\/div><div class=\"mga-blk\" data-bloc=\"E\"><button type=\"button\" class=\"mga-blk-h\"><span class=\"ic\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"8\" height=\"8\" x=\"3\" y=\"3\" rx=\"2\"\/><path d=\"M7 11v3a2 2 0 0 0 2 2h4\"\/><rect width=\"8\" height=\"8\" x=\"13\" y=\"13\" rx=\"2\"\/><\/svg><\/span><span class=\"t\">Agents<\/span><span class=\"ch\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg><\/span><\/button><div class=\"mga-blk-body\"><a class=\"mga-modlink\" data-code=\"e1\" data-state=\"lock\" href=\"\/academy\/comprendre-les-agents-ia\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">E1<\/span><span class=\"mt\">Un agent IA, c&#039;est quoi vraiment<\/span><\/a><a class=\"mga-modlink\" data-code=\"e2\" data-state=\"lock\" href=\"\/academy\/donner-des-outils-a-une-ia\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">E2<\/span><span class=\"mt\">Donner des outils \u00e0 une IA<\/span><\/a><a class=\"mga-modlink\" data-code=\"e3\" data-state=\"lock\" href=\"\/academy\/cadrer-un-agent\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">E3<\/span><span class=\"mt\">Cadrer un agent : mission et garde-fous<\/span><\/a><a class=\"mga-modlink\" data-code=\"e4\" data-state=\"lock\" href=\"\/academy\/memoire-et-contexte-des-agents\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">E4<\/span><span class=\"mt\">M\u00e9moire et contexte d&#039;un agent<\/span><\/a><a class=\"mga-modlink\" data-code=\"e5\" data-state=\"lock\" href=\"\/academy\/assembler-un-agent-souverain\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">E5<\/span><span class=\"mt\">Assembler un agent souverain, de bout en bout<\/span><\/a><a class=\"mga-modlink\" data-code=\"e6\" data-state=\"lock\" href=\"\/academy\/fiabilite-et-securite-des-agents\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">E6<\/span><span class=\"mt\">Fiabilit\u00e9 et s\u00e9curit\u00e9 des agents<\/span><\/a><\/div><\/div><div class=\"mga-blk\" data-bloc=\"F\"><button type=\"button\" class=\"mga-blk-h\"><span class=\"ic\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\/><rect x=\"9\" y=\"9\" width=\"6\" height=\"6\"\/><path d=\"M9 2v2M15 2v2M9 20v2M15 20v2M20 9h2M20 14h2M2 9h2M2 14h2\"\/><\/svg><\/span><span class=\"t\">RAG et donn\u00e9es<\/span><span class=\"ch\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg><\/span><\/button><div class=\"mga-blk-body\"><a class=\"mga-modlink\" data-code=\"f1\" data-state=\"lock\" href=\"\/academy\/le-rag-donner-tes-documents-a-l-ia\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">F1<\/span><span class=\"mt\">Le RAG : donner tes documents \u00e0 l&#039;IA<\/span><\/a><a class=\"mga-modlink\" data-code=\"f2\" data-state=\"lock\" href=\"\/academy\/architecture-d-un-rag\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">F2<\/span><span class=\"mt\">L&#039;architecture compl\u00e8te d&#039;un RAG<\/span><\/a><a class=\"mga-modlink\" data-code=\"f3\" data-state=\"lock\" href=\"\/academy\/la-recherche-par-le-sens\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">F3<\/span><span class=\"mt\">La recherche par le sens, et un mini-RAG en direct<\/span><\/a><a class=\"mga-modlink\" data-code=\"f4\" data-state=\"lock\" href=\"\/academy\/construire-un-rag-sans-reinventer-la-roue\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">F4<\/span><span class=\"mt\">Construire un RAG sans r\u00e9inventer la roue<\/span><\/a><a class=\"mga-modlink\" data-code=\"f5\" data-state=\"lock\" href=\"\/academy\/qualite-et-pieges-d-un-rag\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">F5<\/span><span class=\"mt\">Qualit\u00e9 et pi\u00e8ges d&#039;un RAG<\/span><\/a><\/div><\/div><div class=\"mga-blk\" data-bloc=\"G\"><button type=\"button\" class=\"mga-blk-h\"><span class=\"ic\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l1.7 5.2a2 2 0 0 0 1.1 1.1L20 11l-5.2 1.7a2 2 0 0 0-1.1 1.1L12 19l-1.7-5.2a2 2 0 0 0-1.1-1.1L4 11l5.2-1.7a2 2 0 0 0 1.1-1.1z\"\/><\/svg><\/span><span class=\"t\">Aller plus loin<\/span><span class=\"ch\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg><\/span><\/button><div class=\"mga-blk-body\"><a class=\"mga-modlink\" data-code=\"g1\" data-state=\"lock\" href=\"\/academy\/ia-multimodale-image-voix\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">G1<\/span><span class=\"mt\">L&#039;IA multimodale : image, voix, documents<\/span><\/a><a class=\"mga-modlink\" data-code=\"g2\" data-state=\"lock\" href=\"\/academy\/prompt-rag-ou-fine-tuning\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">G2<\/span><span class=\"mt\">Prompt, RAG ou fine-tuning : quand quoi<\/span><\/a><a class=\"mga-modlink\" data-code=\"g3\" data-state=\"lock\" href=\"\/academy\/evaluer-et-ameliorer-un-systeme-ia\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">G3<\/span><span class=\"mt\">\u00c9valuer et am\u00e9liorer un syst\u00e8me IA<\/span><\/a><a class=\"mga-modlink\" data-code=\"g4\" data-state=\"lock\" href=\"\/academy\/cout-et-performance-a-l-echelle\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">G4<\/span><span class=\"mt\">Co\u00fbt et performance \u00e0 l&#039;\u00e9chelle<\/span><\/a><\/div><\/div><div class=\"mga-blk\" data-bloc=\"H\"><button type=\"button\" class=\"mga-blk-h\"><span class=\"ic\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M22 10 12 5 2 10l10 5 10-5Z\"\/><path d=\"M6 12v5c0 1 2 2 6 2s6-1 6-2v-5\"\/><\/svg><\/span><span class=\"t\">Projet<\/span><span class=\"ch\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg><\/span><\/button><div class=\"mga-blk-body\"><a class=\"mga-modlink\" data-code=\"h1\" data-state=\"lock\" href=\"\/academy\/cadrer-ton-projet-ia\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">H1<\/span><span class=\"mt\">Cadrer ton projet IA : du besoin au plan<\/span><\/a><a class=\"mga-modlink\" data-code=\"h2\" data-state=\"lock\" href=\"\/academy\/construire-ton-projet-ia\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">H2<\/span><span class=\"mt\">Construire ton projet, brique par brique<\/span><\/a><a class=\"mga-modlink\" data-code=\"h3\" data-state=\"lock\" href=\"\/academy\/mettre-en-production-et-mesurer\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">H3<\/span><span class=\"mt\">Mettre en production et mesurer l&#039;impact<\/span><\/a><a class=\"mga-modlink\" data-code=\"h4\" data-state=\"lock\" href=\"\/academy\/ton-serveur-souverain-opere-par-l-ia\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">H4<\/span><span class=\"mt\">DevOps : ton serveur souverain, op\u00e9r\u00e9 par l&#039;IA<\/span><\/a><\/div><\/div><div class=\"mga-blk mgaon\" data-bloc=\"Z\"><button type=\"button\" class=\"mga-blk-h\"><span class=\"ic\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l1.7 5.2a2 2 0 0 0 1.1 1.1L20 11l-5.2 1.7a2 2 0 0 0-1.1 1.1L12 19l-1.7-5.2a2 2 0 0 0-1.1-1.1L4 11l5.2-1.7a2 2 0 0 0 1.1-1.1z\"\/><\/svg><\/span><span class=\"t\">Bonus<\/span><span class=\"ch\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg><\/span><\/button><div class=\"mga-blk-body\"><a class=\"mga-modlink\" data-code=\"z1\" data-state=\"open\" href=\"\/academy\/github-et-l-open-source\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">BONUS<\/span><span class=\"mt\">Bonus : GitHub et l&#039;open source<\/span><\/a><a class=\"mga-modlink cur\" data-code=\"z3\" data-state=\"open\" href=\"\/academy\/faire-tourner-une-ia-en-local-sur-mac\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">BONUS 3<\/span><span class=\"mt\">Faire tourner une IA en local sur ton Mac (LM Studio, Ollama)<\/span><\/a><div class=\"mga-subs\"><a class=\"mga-sublink\" data-ch=\"0\" href=\"#sm-0\"><span class=\"d\"><\/span>Pourquoi une IA en local, ton plan B souverain<\/a><a class=\"mga-sublink\" data-ch=\"1\" href=\"#sm-1\"><span class=\"d\"><\/span>Le tuto pas \u00e0 pas : ton IA locale en une vingtaine de minutes<\/a><a class=\"mga-sublink\" data-ch=\"2\" href=\"#sm-2\"><span class=\"d\"><\/span>Quel mod\u00e8le sur quel Mac : le comparatif honn\u00eate (M1 au r\u00e9cent)<\/a><\/div><a class=\"mga-modlink\" data-code=\"z2\" data-state=\"open\" href=\"\/academy\/best-of-skills-mcp-playbooks\/\"><span class=\"st\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"\/><\/svg><span class=\"chk\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span><\/span><span class=\"mc\">BONUS 2<\/span><span class=\"mt\">Bonus avanc\u00e9 : le best-of du moment (skills, MCP, playbooks)<\/span><\/a><\/div><\/div><\/nav><a class=\"mga-side-wa\" href=\"https:\/\/wa.me\/212620229114\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\"\/><\/svg><span>Une question ? WhatsApp<\/span><\/a><\/aside><div class=\"mga-shell-main\"><div class=\"mga\"><div class=\"mga-hero\"><p class=\"mga-eyebrow\">BONUS 3 \u00b7 Bonus \u00b7 1h30 \u00b7 gratuit<\/p><h1>Faire tourner une IA en local sur ton Mac (LM Studio, Ollama)<\/h1><p>Tu repars avec : Ton IA locale install\u00e9e et fonctionnelle sur ton Mac, ton plan B quand le quota tombe ou pour sortir de l&#039;abonnement, et la fiche pour choisir le bon mod\u00e8le selon ta machine.<\/p><\/div><div class=\"mga-capsule\"><video controls preload=\"metadata\" playsinline poster=\"\/wp-content\/uploads\/2026\/09\/academy-z3-accroche.jpg\"><source src=\"\/wp-content\/uploads\/2026\/09\/academy-z3-accroche.mp4\" type=\"video\/mp4\"><\/video><p class=\"cap\">Capsule vid\u00e9o, environ 90 secondes, voix off. Regarde-la avant de lire, \u00e7a pose le d\u00e9cor.<\/p><\/div><div class=\"mga-chapters\" data-code=\"z3\" data-n=\"3\"><div class=\"mga-chnav\"><button type=\"button\" class=\"mga-chtab on\" data-ch=\"0\"><span class=\"num\">1<\/span>Pourquoi une IA en local, ton plan B souverain<\/button><button type=\"button\" class=\"mga-chtab\" data-ch=\"1\"><span class=\"num\">2<\/span>Le tuto pas \u00e0 pas : ton IA locale en une vingtaine de minutes<\/button><button type=\"button\" class=\"mga-chtab\" data-ch=\"2\"><span class=\"num\">3<\/span>Quel mod\u00e8le sur quel Mac : le comparatif honn\u00eate (M1 au r\u00e9cent)<\/button><\/div><div class=\"mga-chprog\"><div class=\"bar\"><\/div><\/div><div class=\"mga-chapter\" data-ch=\"0\"><div class=\"mga-atlist\"><b>Ateliers de ce sous-module<\/b><a href=\"#at-d98d89\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l1.7 5.2a2 2 0 0 0 1.1 1.1L20 11l-5.2 1.7a2 2 0 0 0-1.1 1.1L12 19l-1.7-5.2a2 2 0 0 0-1.1-1.1L4 11l5.2-1.7a2 2 0 0 0 1.1-1.1z\"\/><\/svg>\u00c0 toi : parle \u00e0 l'IA souveraine<\/a><a href=\"#at-ab6a8e\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l1.7 5.2a2 2 0 0 0 1.1 1.1L20 11l-5.2 1.7a2 2 0 0 0-1.1 1.1L12 19l-1.7-5.2a2 2 0 0 0-1.1-1.1L4 11l5.2-1.7a2 2 0 0 0 1.1-1.1z\"\/><\/svg>\u00c0 toi : la bonne d\u00e9cision<\/a><\/div><div class=\"mga-step\"><div class=\"n\">1 \u00b7 L&#039;accroche<\/div><h3><\/h3><p>Tu es en plein travail, l'id\u00e9e coule, la machine t'aide vraiment, et l\u00e0, le message tombe : quota atteint, reviens dans quelques heures. C'est frustrant, \u00e7a casse ton \u00e9lan, et surtout \u00e7a te rappelle une v\u00e9rit\u00e9 d\u00e9sagr\u00e9able : l'outil sur lequel tu comptes ne t'appartient pas. Tu le loues. Le jour o\u00f9 le loueur ferme le robinet, tu attends. Dans ce module, on installe ton plan B : une intelligence artificielle qui vit sur ta propre machine, qui ne d\u00e9pend d'aucun abonnement, qui ne demande rien \u00e0 personne, et qui r\u00e9pond m\u00eame quand le Wi-Fi est coup\u00e9. Ce n'est pas la plus puissante du monde, on va \u00eatre honn\u00eates l\u00e0-dessus du d\u00e9but \u00e0 la fin, mais elle est \u00e0 toi, tout le temps, gratuite une fois install\u00e9e. Et poss\u00e9der son outil, en 2026, c'est d\u00e9j\u00e0 une forme de libert\u00e9.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">2 \u00b7 Le pourquoi<\/div><h3><\/h3><p>Commen\u00e7ons par nommer pr\u00e9cis\u00e9ment les probl\u00e8mes que le local vient r\u00e9soudre, parce qu'ils sont r\u00e9els et que tu les as s\u00fbrement d\u00e9j\u00e0 rencontr\u00e9s.<\/p><p class=\"mga-sub\">Le mur du quota, au pire moment<\/p><p>Les grandes IA en ligne fonctionnent avec des limites d'usage. Tu paies un abonnement, et en \u00e9change tu as droit \u00e0 une certaine quantit\u00e9 de requ\u00eates ou de puissance sur une p\u00e9riode donn\u00e9e. Tant que tu restes sous la limite, tout va bien. Mais le jour o\u00f9 tu travailles vraiment, o\u00f9 tu encha\u00eenes les demandes, o\u00f9 tu es concentr\u00e9 et productif, c'est pr\u00e9cis\u00e9ment ce jour-l\u00e0 que tu tapes dans le plafond. Et le plafond ne pr\u00e9vient pas gentiment \u00e0 l'avance : il tombe d'un coup, au milieu d'une r\u00e9flexion. Ton IA locale, elle, n'a pas de quota. Tu peux lui parler cent fois de suite, mille fois, elle r\u00e9pondra toujours. Elle est peut-\u00eatre moins brillante, mais elle est l\u00e0.<\/p><p class=\"mga-sub\">Le co\u00fbt qui tourne en boucle<\/p><p>Un abonnement, c'est un pr\u00e9l\u00e8vement qui revient chaque mois, que tu utilises l'outil beaucoup ou tr\u00e8s peu. Tant que tu en as besoin, \u00e7a se justifie. Mais additionne plusieurs abonnements \u00e0 plusieurs services, et regarde la somme sur une ann\u00e9e. Une IA locale, une fois install\u00e9e sur ta machine, ne co\u00fbte plus rien \u00e0 faire tourner. Tu as d\u00e9j\u00e0 pay\u00e9 ton ordinateur, tu as d\u00e9j\u00e0 pay\u00e9 ton \u00e9lectricit\u00e9. Le mod\u00e8le, lui, est ouvert et gratuit. Ce n'est pas une promesse de gagner de l'argent, c'est simplement une d\u00e9pense qui s'arr\u00eate.<\/p><p class=\"mga-sub\">Tes donn\u00e9es qui partent chez un tiers<\/p><p>Quand tu \u00e9cris \u00e0 une IA en ligne, ce que tu tapes voyage. Ton texte quitte ta machine, traverse le r\u00e9seau, arrive sur les serveurs d'une entreprise, souvent \u00e0 l'autre bout du monde. Pour beaucoup de choses, ce n'est pas grave. Mais quand tu travailles sur un contrat sensible, une id\u00e9e que tu ne veux pas voir circuler, des informations sur tes clients, un projet confidentiel, tu n'as pas envie que \u00e7a sorte de chez toi. Avec une IA locale, rien ne part. Le texte reste sur ton disque, le calcul se fait dans ta m\u00e9moire, la r\u00e9ponse s'affiche sans qu'un seul mot ne franchisse la porte de ta machine. C'est la diff\u00e9rence entre parler dans ton salon et parler dans un lieu public.<\/p><p class=\"mga-sub\">La d\u00e9pendance, et le hors-ligne<\/p><p>S'appuyer sur un seul fournisseur, c'est mettre tous ses oeufs dans le m\u00eame panier. Si son service tombe en panne, si ses conditions changent, si ses prix montent, si ta connexion internet l\u00e2che, tu es bloqu\u00e9. L'IA locale te rend ind\u00e9pendant : elle fonctionne dans le train, dans l'avion, au fond de la campagne, pendant une coupure r\u00e9seau, en d\u00e9placement chez un client sans Wi-Fi. Tant que ton ordinateur s'allume, elle r\u00e9pond.<\/p><div class=\"mga-ex\"><b>L'image juste :<\/b> une IA en ligne, c'est comme prendre un taxi. Confortable, souvent rapide, mais tu paies \u00e0 chaque course et tu d\u00e9pends de la disponibilit\u00e9 du chauffeur. Une IA locale, c'est le v\u00e9lo que tu as dans ton garage. Moins rapide sur longue distance, mais il est \u00e0 toi, il ne te co\u00fbte rien \u00e0 chaque trajet, et il roule m\u00eame le jour o\u00f9 il n'y a plus un seul taxi dans toute la ville.<\/div><p class=\"mga-sub\">Ce que veut dire concr\u00e8tement faire tourner une IA en local<\/p><p>Une IA, au fond, c'est un gros fichier : un mod\u00e8le. Ce fichier contient tout ce que le mod\u00e8le a appris, sous forme de nombres. Quand tu utilises une IA en ligne, ce fichier est stock\u00e9 sur les serveurs de l'entreprise, et c'est leur ordinateur qui fait le calcul. Faire tourner une IA en local, \u00e7a veut dire t\u00e9l\u00e9charger ce fichier sur ta propre machine, et laisser ton propre ordinateur faire le calcul. Le mod\u00e8le vit chez toi, la r\u00e9flexion se passe chez toi, et rien ne sort. C'est aussi simple que \u00e7a dans le principe. La bonne nouvelle, c'est que des logiciels gratuits rendent cette installation accessible m\u00eame si tu n'es pas informaticien. On va les voir en d\u00e9tail au sous-module suivant.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">3 \u00b7 Le comment<\/div><h3><\/h3><p>Maintenant, dressons le paysage honn\u00eate des outils, parce que c'est l\u00e0 que beaucoup de gens se trompent, et que la confusion peut te co\u00fbter cher.<\/p><p class=\"mga-sub\">Le cloud : puissant, mais lou\u00e9 et lointain<\/p><p>Les grandes IA que tu connais, comme Claude ou ChatGPT, sont ce qu'on appelle des IA cloud, c'est-\u00e0-dire en ligne. Leur cerveau, le mod\u00e8le, est \u00e9norme, entra\u00een\u00e9 sur des moyens colossaux, et tourne sur des fermes de serveurs surpuissantes que tu ne verras jamais. C'est pour \u00e7a qu'elles sont si fortes : elles raisonnent finement, elles \u00e9crivent bien, elles g\u00e8rent des t\u00e2ches complexes. Mais tout ce que tu leur envoies part sur ces serveurs, tu paies un abonnement pour y acc\u00e9der, tu as un quota, et le jour o\u00f9 le service d\u00e9cide de changer, tu subis. Puissance maximale, mais tu n'es pas chez toi et tu n'es pas ma\u00eetre.<\/p><p class=\"mga-sub\">Le local : \u00e0 toi, gratuit, priv\u00e9, mais plus modeste<\/p><p>\u00c0 l'inverse, une IA locale tourne sur ta machine. Le mod\u00e8le est plus petit, parce qu'un ordinateur personnel, m\u00eame excellent, n'a pas la puissance d'une ferme de serveurs. Donc oui, elle est moins forte : elle raisonne moins loin, elle se trompe plus souvent sur les t\u00e2ches difficiles, elle a moins de culture g\u00e9n\u00e9rale. Mais elle est \u00e0 toi. Pas de quota, pas d'abonnement, pas de donn\u00e9es qui sortent, fonctionne hors-ligne. C'est l'\u00e9change fondamental \u00e0 comprendre : le cloud t'offre de la puissance contre de la d\u00e9pendance, le local t'offre de l'ind\u00e9pendance contre un peu de puissance.<\/p><p class=\"mga-sub\">L'erreur \u00e0 ne surtout pas commettre<\/p><p>Voici le point le plus important de ce module, et celui qu'on entend le plus souvent de travers. On ne remplace PAS le cerveau de Claude ou de ChatGPT par un mod\u00e8le local. Ces applications restent des services en ligne : quand tu utilises l'appli Claude ou l'appli ChatGPT, m\u00eame install\u00e9e sur ton ordinateur, la r\u00e9flexion se passe toujours sur leurs serveurs. L'application n'est qu'une fen\u00eatre vers leur cerveau distant. Tu ne peux pas leur dire de penser localement, ce n'est pas ainsi qu'elles sont faites, et m\u00e9fie-toi de quiconque pr\u00e9tend le contraire.<\/p><p class=\"mga-sub\">Les vraies passerelles vers le local : deux logiciels<\/p><p>Pour faire tourner une v\u00e9ritable IA sur ta machine, il te faut un logiciel con\u00e7u pour \u00e7a. Deux se d\u00e9tachent nettement, tous les deux gratuits. Le premier s'appelle LM Studio : c'est une application avec une interface visuelle, pens\u00e9e pour les d\u00e9butants, o\u00f9 tu t\u00e9l\u00e9charges un mod\u00e8le en quelques clics et o\u00f9 tu discutes avec lui comme dans une messagerie. Le second s'appelle Ollama : plus l\u00e9ger, plus discret, il se pilote surtout par des commandes tap\u00e9es au clavier, ce qui pla\u00eet \u00e0 ceux qui aiment aller vite et sans fioritures. Ces deux logiciels font deux choses \u00e0 la fois : ils font tourner le mod\u00e8le sur ta machine, et ils l'exposent par un point d'acc\u00e8s local, une sorte de porte de service sur ton ordinateur, \u00e0 laquelle d'autres outils peuvent venir se brancher. Retiens ces deux noms, LM Studio et Ollama : ce sont eux, tes vraies portes vers le local, et rien d'autre.<\/p><div class=\"mga-ex\"><b>L'image juste :<\/b> Claude et ChatGPT, c'est comme t\u00e9l\u00e9phoner \u00e0 un tr\u00e8s grand chef cuisinier install\u00e9 dans un restaurant lointain. Il cuisine merveilleusement, mais tu d\u00e9pends de lui, tu paies l'addition, et il ne viendra jamais chez toi. LM Studio et Ollama, c'est apprendre \u00e0 cuisiner dans ta propre cuisine avec un cuisinier honn\u00eate qui habite chez toi. Ses plats sont plus simples, mais il cuisine \u00e0 toute heure, gratuitement, et il ne raconte \u00e0 personne ce que tu manges.<\/div><p class=\"mga-sub\">Quand le local est le bon choix, et quand le cloud reste pr\u00e9f\u00e9rable<\/p><p>Sois lucide, c'est une question d'arbitrage, jamais de dogme. Le local est le bon choix quand ton quota cloud est atteint et que tu dois continuer, quand tu veux sortir de l'abonnement et reprendre la main sur tes co\u00fbts, quand tes donn\u00e9es sont sensibles et ne doivent pas sortir, quand tu es hors-ligne, ou quand tu veux simplement une IA toujours disponible pour les t\u00e2ches courantes : reformuler un texte, r\u00e9sumer une note, brainstormer, corriger, classer, poser une question simple. Le cloud, lui, reste pr\u00e9f\u00e9rable quand tu attaques une t\u00e2che vraiment difficile qui exige le meilleur raisonnement possible, quand tu as besoin d'une culture g\u00e9n\u00e9rale tr\u00e8s large et \u00e0 jour, ou quand la qualit\u00e9 de la r\u00e9ponse prime sur tout le reste. La bonne posture n'est pas de choisir un camp : c'est d'avoir les deux, et de basculer sur le local quand le cloud te l\u00e2che ou quand la confidentialit\u00e9 l'exige. On te donne des moyens et un choix \u00e9clair\u00e9, jamais une promesse magique.<\/p><p class=\"mga-sub\">La souverainet\u00e9, le vrai fil rouge<\/p><p>Derri\u00e8re tout \u00e7a, il y a un mot qui compte plus que la technique : la souverainet\u00e9. \u00catre souverain, c'est poss\u00e9der son outil au lieu de le louer, comprendre o\u00f9 il tourne, contr\u00f4ler ce qui entre et ce qui sort, et ne pas \u00eatre \u00e0 la merci d'une entreprise qui pourrait changer ses r\u00e8gles, augmenter ses prix ou fermer son service du jour au lendemain. Ce n'est pas une posture id\u00e9ologique, c'est du bon sens pour quiconque travaille s\u00e9rieusement. Un artisan poss\u00e8de ses outils ; il ne les loue pas \u00e0 la journ\u00e9e en priant pour que le magasin reste ouvert. Chez MogaCode, on applique ce principe \u00e0 nous-m\u00eames : notre technologie nous appartient, rien de central ne d\u00e9pend d'un abonnement lou\u00e9 \u00e0 un tiers. La preuve la plus concr\u00e8te, tu la vis en ce moment m\u00eame : la petite IA qui te r\u00e9pond dans cette formation tourne en local, sur notre propre serveur, avec un mod\u00e8le ouvert accessible uniquement par un pont s\u00e9curis\u00e9. On ne t'enseigne pas une th\u00e9orie qu'on ne pratique pas nous-m\u00eames. Et cette souverainet\u00e9, tu peux te la construire \u00e0 ton \u00e9chelle, exactement de la m\u00eame mani\u00e8re : en installant, toi aussi, une IA qui vit chez toi.<\/p><p class=\"mga-syn\">En r\u00e9sum\u00e9 : le cloud est puissant mais lou\u00e9, distant et limit\u00e9 ; le local est plus modeste mais \u00e0 toi, gratuit, priv\u00e9 et toujours disponible. On ne fait pas penser Claude ou ChatGPT en local : les seules vraies portes vers une IA locale sont LM Studio et Ollama. Le bon r\u00e9flexe, c'est d'avoir les deux et de savoir quand basculer. Et le fil rouge de tout ce parcours, c'est la souverainet\u00e9 : poss\u00e9der son outil plut\u00f4t que de le louer.<\/p><\/div><div class=\"mga-step atelier\" id=\"at-d98d89\" data-atlabel=\"\u00c0 toi : parle \u00e0 l&#039;IA souveraine\"><div class=\"n\"><span class=\"mga-atbadge\">Atelier - a toi de jouer<\/span><\/div><h3><\/h3><p>Pour ce module, tu vas t'entra\u00eener en discutant avec notre propre IA de formation. Et ce n'est pas un hasard : cette petite IA tourne en local, sur notre serveur, chez MogaCode, avec un mod\u00e8le ouvert accessible seulement par un pont s\u00e9curis\u00e9. Rien n'est lou\u00e9 \u00e0 un tiers, rien ne part ailleurs. Autrement dit, la formation qui t'apprend la souverainet\u00e9 te r\u00e9pond avec une IA souveraine : on pratique exactement ce qu'on t'enseigne.<\/p><div class=\"mga-lab\" data-ex=\"z3_ia\"><p class=\"lh\">Parle a notre IA souveraine<\/p><p class=\"ls\">Pour ce module, tu vas t&#039;entra\u00eener en discutant avec notre propre IA de formation. Et ce n&#039;est pas un hasard : cette petite IA tourne en local, sur notre serveur, chez MogaCode, avec un mod\u00e8le ouvert <\/p><textarea class=\"mga-in\" maxlength=\"400\" placeholder=\"Explique-moi en trois phrases simples comment faire tourner une IA sur mon Mac et \u00e0 quoi \u00e7a sert.\"><\/textarea><div class=\"row\"><button type=\"button\" class=\"b1 mga-try\">Essaie<\/button><button type=\"button\" class=\"b2 mga-guide\">Puis teste une limite<\/button><span class=\"cc\"><span class=\"n\">0<\/span>\/400<\/span><\/div><div class=\"mga-out mga-o1\" hidden><\/div><div class=\"mga-note mga-n1\" hidden><\/div><p class=\"warn\">Mod\u00e8le local souverain, a but pedagogique. Il peut se tromper : c'est justement la le\u00e7on.<\/p><\/div><\/div><div class=\"mga-step\"><div class=\"n\">5 \u00b7 Le cas r\u00e9el<\/div><h3><\/h3><p>Prenons un cas tr\u00e8s concret, celui d'une consultante ind\u00e9pendante qui pr\u00e9pare des offres pour ses clients. Le matin, elle attaque un dossier d\u00e9licat, un appel d'offres important : l\u00e0, elle sort le grand jeu et utilise son IA cloud, parce qu'elle veut le meilleur raisonnement et la meilleure r\u00e9daction pour ce document strat\u00e9gique. En milieu de journ\u00e9e, elle encha\u00eene des dizaines de petites t\u00e2ches sans int\u00e9r\u00eat intellectuel majeur : reformuler des paragraphes, corriger des fautes, r\u00e9sumer des comptes-rendus de r\u00e9union, transformer des notes en listes propres. Si elle faisait tout \u00e7a avec son abonnement cloud, elle br\u00fblerait son quota pour rien et se retrouverait bloqu\u00e9e l'apr\u00e8s-midi. Alors elle bascule sur son IA locale, install\u00e9e avec LM Studio, qui abat ce travail r\u00e9p\u00e9titif sans jamais se plaindre ni compter. En fin de journ\u00e9e, elle travaille sur un contrat qui contient des informations confidentielles sur un client : hors de question que \u00e7a parte sur des serveurs ext\u00e9rieurs, donc l\u00e0 encore, IA locale, tout reste chez elle. Le soir, dans le train sans r\u00e9seau, elle continue de pr\u00e9parer ses id\u00e9es : son mod\u00e8le local r\u00e9pond sans connexion. Un m\u00eame m\u00e9tier, une m\u00eame journ\u00e9e, et deux outils qui se compl\u00e8tent au lieu de se concurrencer. C'est exactement cette hygi\u00e8ne qu'on veut t'apprendre.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">6 \u00b7 Le contre-exemple<\/div><h3><\/h3><p>Il faut \u00eatre franc sur les limites, sinon tu serais d\u00e9\u00e7u et tu aurais raison de l'\u00eatre. Un mod\u00e8le local, surtout sur un ordinateur personnel, n'\u00e9gale pas un grand mod\u00e8le cloud de pointe. Sur les t\u00e2ches vraiment complexes, un raisonnement en plusieurs \u00e9tapes, une analyse fine, un long texte qui doit rester coh\u00e9rent d'un bout \u00e0 l'autre, il montre ses limites : il peut perdre le fil, simplifier \u00e0 l'exc\u00e8s, ou se tromper avec assurance. Sa culture g\u00e9n\u00e9rale est aussi plus \u00e9troite et parfois moins \u00e0 jour que celle des grands mod\u00e8les en ligne. Il faut donc l'utiliser pour ce qu'il fait bien, les t\u00e2ches courantes et r\u00e9p\u00e9titives, et ne pas lui demander l'impossible en lui reprochant ensuite de ne pas \u00eatre Claude. Autre limite honn\u00eate : faire tourner un mod\u00e8le consomme les ressources de ta machine pendant qu'il r\u00e9fl\u00e9chit. Sur un ordinateur modeste, tu sentiras l'ordinateur travailler, chauffer, ralentir un peu le reste. Et enfin, ce n'est pas magique c\u00f4t\u00e9 qualit\u00e9 : le local, c'est un plan B solide et un atout de confidentialit\u00e9, pas un rempla\u00e7ant sup\u00e9rieur. Si quelqu'un te vend un petit mod\u00e8le local comme \u00e9tant meilleur qu'une grande IA cloud, il te ment. Notre promesse, c'est une obligation de moyens : te donner l'outil et le savoir, pas te garantir un r\u00e9sultat identique au cloud. Enfin, une derni\u00e8re franchise : le local demande un tout petit effort d'apprentissage au d\u00e9part. Rien d'insurmontable, on va te guider pas \u00e0 pas, mais il faut accepter d'installer un logiciel, de t\u00e9l\u00e9charger un mod\u00e8le et de faire deux ou trois essais. Ceux qui veulent z\u00e9ro effort et cliquent simplement sur une appli d\u00e9j\u00e0 pr\u00eate resteront sur le cloud, et paieront le prix de cette facilit\u00e9 en d\u00e9pendance. Le local r\u00e9compense ceux qui prennent vingt minutes pour se rendre autonomes. C'est un \u00e9change honn\u00eate : un petit effort de d\u00e9part contre une ind\u00e9pendance durable.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">7 \u00b7 Les pi\u00e8ges<\/div><h3><\/h3><p>Premier pi\u00e8ge, le plus courant : croire que l'appli Claude ou l'appli ChatGPT install\u00e9e sur ton ordinateur tourne en local. Non. Ce sont des fen\u00eatres vers un cerveau distant, elles ont toujours besoin d'internet pour r\u00e9fl\u00e9chir, et tes donn\u00e9es partent toujours. Le local, c'est LM Studio ou Ollama, jamais ces applications-l\u00e0.<\/p><p>Deuxi\u00e8me pi\u00e8ge : t\u00e9l\u00e9charger un mod\u00e8le beaucoup trop gros pour ta machine. Tu seras tent\u00e9 de prendre le plus gros, en pensant qu'il sera le meilleur. Mais s'il ne tient pas dans la m\u00e9moire de ton ordinateur, soit il refusera de d\u00e9marrer, soit il deviendra d'une lenteur insupportable et fera ramer tout le reste. On verra au troisi\u00e8me sous-module comment choisir la bonne taille pour TA machine.<\/p><p>Troisi\u00e8me pi\u00e8ge : abandonner apr\u00e8s un premier essai d\u00e9cevant. Si tu prends un mod\u00e8le mal adapt\u00e9 ou trop petit, tu vas te dire que le local ne vaut rien. C'est une erreur : le r\u00e9sultat d\u00e9pend \u00e9norm\u00e9ment du mod\u00e8le choisi et de ta machine. Un bon accord entre les deux change tout.<\/p><p>Quatri\u00e8me pi\u00e8ge : oublier pourquoi tu fais \u00e7a. Le local n'est pas l\u00e0 pour battre le cloud en puissance brute, mais pour te rendre ind\u00e9pendant, discret et disponible en continu. Si tu le juges seulement sur la performance pure, tu passes \u00e0 c\u00f4t\u00e9 de sa vraie valeur : la souverainet\u00e9. Chez MogaCode, m\u00eame la petite IA qui te r\u00e9pond dans cette formation tourne en local sur notre serveur : c'est notre techno, pas un abonnement lou\u00e9 \u00e0 un tiers, et c'est un choix assum\u00e9.<\/p><\/div><div class=\"mga-step atelier\" id=\"at-ab6a8e\" data-atlabel=\"\u00c0 toi : la bonne d\u00e9cision\"><div class=\"n\"><span class=\"mga-atbadge\">Atelier - a toi de jouer<\/span><\/div><h3><\/h3><div class=\"mga-decision\"><script type=\"application\/json\" class=\"mga-data\">[{\"q\":\"Ton quota cloud vient de tomber en plein travail, et tu dois encha\\u00eener des dizaines de reformulations et de r\\u00e9sum\\u00e9s simples cet apr\\u00e8s-midi. Quel r\\u00e9flexe ?\",\"options\":[{\"t\":\"Basculer sur mon IA locale (LM Studio ou Ollama) pour ces t\\u00e2ches courantes\",\"ok\":true,\"why\":\"Exactement le bon usage : des t\\u00e2ches simples et r\\u00e9p\\u00e9titives, sans quota, sans co\\u00fbt, et sans attendre le rechargement du cloud.\"},{\"t\":\"Attendre plusieurs heures que mon quota cloud se recharge\",\"ok\":false,\"why\":\"Tu perds ton apr\\u00e8s-midi alors qu'un plan B local abattrait ce travail imm\\u00e9diatement et gratuitement.\"}]},{\"q\":\"Tu veux faire r\\u00e9fl\\u00e9chir Claude sur un dossier confidentiel sans que rien ne sorte de ta machine. Que fais-tu ?\",\"options\":[{\"t\":\"J'installe un mod\\u00e8le ouvert avec LM Studio ou Ollama et je travaille en local\",\"ok\":true,\"why\":\"C'est la seule vraie voie locale : le mod\\u00e8le vit chez toi, rien ne part. L'application Claude, elle, resterait en ligne.\"},{\"t\":\"J'utilise l'application Claude install\\u00e9e sur mon ordinateur, elle tourne forc\\u00e9ment en local\",\"ok\":false,\"why\":\"Faux : l'appli Claude est une fen\\u00eatre vers un cerveau distant. Elle a besoin d'internet et tes donn\\u00e9es partent sur ses serveurs.\"}]}]<\/script><div class=\"mga-host\"><\/div><\/div><\/div><div class=\"mga-q\" data-q=\"z3a1\"><p style=\"margin:0 0 6px;color:#0F2237\">Que veut dire concr\u00e8tement faire tourner une IA en local ?<\/p><button type=\"button\" class=\"opt\" data-good=\"1\">Le mod\u00e8le est t\u00e9l\u00e9charg\u00e9 sur ma machine et c&#039;est mon ordinateur qui fait le calcul, rien ne sort<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">J&#039;utilise une IA en ligne mais avec une connexion plus rapide<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">Je paie un abonnement moins cher pour la m\u00eame IA cloud<\/button><\/div><div class=\"mga-q\" data-q=\"z3a2\"><p style=\"margin:0 0 6px;color:#0F2237\">Quelles sont les vraies passerelles pour faire tourner une IA sur ta machine ?<\/p><button type=\"button\" class=\"opt\" data-good=\"1\">LM Studio et Ollama<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">L&#039;application Claude et l&#039;application ChatGPT install\u00e9es sur l&#039;ordinateur<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">N&#039;importe quel navigateur web en mode hors-ligne<\/button><\/div><div class=\"mga-q\" data-q=\"z3a3\"><p style=\"margin:0 0 6px;color:#0F2237\">Quelle est la bonne fa\u00e7on de r\u00e9sumer l&#039;\u00e9change entre cloud et local ?<\/p><button type=\"button\" class=\"opt\" data-good=\"1\">Le cloud offre plus de puissance contre de la d\u00e9pendance ; le local offre l&#039;ind\u00e9pendance contre un peu de puissance<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">Le local est toujours meilleur que le cloud sur toutes les t\u00e2ches<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">Il n&#039;y a aucune diff\u00e9rence, seul le prix change<\/button><\/div><div class=\"mga-chfoot\"><button type=\"button\" class=\"mga-cta mga-chnext\" data-go=\"1\">Sous-module suivant &rarr;<\/button><\/div><\/div><div class=\"mga-chapter hid\" data-ch=\"1\"><div class=\"mga-atlist\"><b>Ateliers de ce sous-module<\/b><a href=\"#at-4627e7\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l1.7 5.2a2 2 0 0 0 1.1 1.1L20 11l-5.2 1.7a2 2 0 0 0-1.1 1.1L12 19l-1.7-5.2a2 2 0 0 0-1.1-1.1L4 11l5.2-1.7a2 2 0 0 0 1.1-1.1z\"\/><\/svg>\u00c0 toi : la bonne d\u00e9cision<\/a><a href=\"#at-d12e6e\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l1.7 5.2a2 2 0 0 0 1.1 1.1L20 11l-5.2 1.7a2 2 0 0 0-1.1 1.1L12 19l-1.7-5.2a2 2 0 0 0-1.1-1.1L4 11l5.2-1.7a2 2 0 0 0 1.1-1.1z\"\/><\/svg>\u00c0 toi : ton playbook<\/a><\/div><div class=\"mga-step\"><div class=\"n\">1 \u00b7 L&#039;accroche<\/div><h3><\/h3><p>Assez de th\u00e9orie, passons aux actes. \u00c0 la fin de ce sous-module, tu auras une vraie intelligence artificielle qui tourne sur ta machine, \u00e0 qui tu pourras parler, et que d'autres outils pourront utiliser. Avant de commencer, un mot de bon sens, important. Les logiciels \u00e9voluent tr\u00e8s vite : au moment o\u00f9 tu lis ces lignes, il est probable que les boutons aient un peu boug\u00e9, qu'un \u00e9cran ait chang\u00e9 de couleur, qu'un menu porte un autre nom, ou qu'une \u00e9tape soit devenue plus simple. Ne panique pas si ce que tu vois ne ressemble pas au mot pr\u00e8s \u00e0 ce que je d\u00e9cris. Le d\u00e9roul\u00e9 g\u00e9n\u00e9ral, lui, reste le m\u00eame : installer le logiciel, choisir et t\u00e9l\u00e9charger un mod\u00e8le adapt\u00e9, discuter avec, puis activer son point d'acc\u00e8s local pour brancher d'autres outils. Suis la logique, pas la capture d'\u00e9cran. Si un nom exact a chang\u00e9, cherche l'\u00e9quivalent le plus proche, il est presque toujours au m\u00eame endroit.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">2 \u00b7 Le pourquoi<\/div><h3><\/h3><p>Pourquoi ce tuto m\u00e9rite vingt minutes de ton temps, et pourquoi on le fait maintenant plut\u00f4t que le jour o\u00f9 tu seras d\u00e9j\u00e0 bloqu\u00e9 ?<\/p><p class=\"mga-sub\">Parce qu'on n'installe pas un plan B dans l'urgence<\/p><p>Le pire moment pour d\u00e9couvrir une nouvelle proc\u00e9dure, c'est quand tu es d\u00e9j\u00e0 en panne, press\u00e9 et \u00e9nerv\u00e9. Un plan B, \u00e7a se pr\u00e9pare \u00e0 froid, tranquillement, quand tout va bien. Le jour o\u00f9 ton quota cloud tombera, tu n'auras qu'\u00e0 ouvrir ton IA locale d\u00e9j\u00e0 pr\u00eate, et continuer sans stress. Vingt minutes aujourd'hui t'\u00e9conomisent des heures de blocage plus tard.<\/p><p class=\"mga-sub\">Parce que c'est devenu vraiment accessible<\/p><p>Il y a quelques ann\u00e9es, faire tourner une IA chez soi exigeait de vraies comp\u00e9tences techniques. Ce n'est plus le cas. Des logiciels gratuits ont \u00e9norm\u00e9ment simplifi\u00e9 les choses : t\u00e9l\u00e9charger un mod\u00e8le est aujourd'hui aussi simple qu'installer une application sur ton t\u00e9l\u00e9phone. Tu cliques, \u00e7a se t\u00e9l\u00e9charge, et tu parles. Si tu sais installer un logiciel et cliquer sur des boutons, tu sais installer une IA locale.<\/p><p class=\"mga-sub\">Parce que \u00e7a te rend ma\u00eetre de ton outil<\/p><p>\u00c0 la fin de ce tuto, tu ne seras plus seulement un utilisateur qui loue une IA : tu seras quelqu'un qui en poss\u00e8de une. C'est un changement de posture. Tu comprends comment \u00e7a marche, tu sais o\u00f9 \u00e7a tourne, tu contr\u00f4les ce qui entre et ce qui sort. C'est exactement l'esprit de la souverainet\u00e9 qu'on d\u00e9fend : ne pas d\u00e9pendre enti\u00e8rement d'un service qui pourrait fermer, changer ses r\u00e8gles ou augmenter ses prix du jour au lendemain.<\/p><p class=\"mga-sub\">Parce que \u00e7a se branche \u00e0 tes autres outils<\/p><p>Ton IA locale n'est pas isol\u00e9e dans son coin. Une fois son point d'acc\u00e8s activ\u00e9, d'autres logiciels et d'autres agents pourront venir l'utiliser, exactement comme ils utiliseraient une IA en ligne, mais sans quota, sans co\u00fbt, et sans que tes donn\u00e9es sortent. C'est ce qui transforme un simple jouet en v\u00e9ritable moteur de travail. On verra comment faire ce branchement \u00e0 la fin.<\/p><p class=\"mga-sub\">Parce que c'est r\u00e9versible et sans risque<\/p><p>Un dernier argument pour te lancer sans crainte : installer une IA locale n'engage \u00e0 rien et ne casse rien. Tu t\u00e9l\u00e9charges un logiciel gratuit et un mod\u00e8le ; si \u00e7a ne te convient pas, tu supprimes tout et il n'en reste aucune trace, aucun abonnement \u00e0 r\u00e9silier, aucune facture qui court. Tu ne mets pas en danger ton ordinateur, tu n'installes rien de louche tant que tu prends les logiciels sur leurs sites officiels. Autrement dit, l'essai est gratuit dans tous les sens du terme : \u00e7a ne co\u00fbte ni argent, ni engagement, ni risque. Dans ces conditions, il n'y a vraiment aucune raison de ne pas tenter l'exp\u00e9rience, ne serait-ce que pour savoir de quoi ta machine est capable.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">3 \u00b7 Le comment<\/div><h3><\/h3><p>Voici le d\u00e9roul\u00e9, \u00e9tape par \u00e9tape, sans jargon inutile. Rappelle-toi le principe : les \u00e9crans peuvent diff\u00e9rer l\u00e9g\u00e8rement au moment o\u00f9 tu lis, mais la logique reste identique.<\/p><p class=\"mga-sub\">\u00c9tape A : LM Studio, le plus simple pour d\u00e9buter<\/p><p>On commence par LM Studio parce que c'est la voie la plus douce, avec une belle interface visuelle. Tu vas faire quatre choses. D'abord, t\u00e9l\u00e9charger l'application : rends-toi sur le site officiel de LM Studio, prends la version pour Mac (Apple Silicon), et installe-la comme n'importe quelle autre application, en la glissant \u00e0 l'endroit habituel. Prends bien la version officielle depuis le site de l'\u00e9diteur, jamais une copie trouv\u00e9e sur un site douteux : c'est une r\u00e8gle de s\u00e9curit\u00e9 de base, on ne t\u00e9l\u00e9charge un logiciel que depuis sa source officielle. Ensuite, choisir et t\u00e9l\u00e9charger un mod\u00e8le : \u00e0 l'int\u00e9rieur de LM Studio, il y a une zone de recherche de mod\u00e8les. Tu tapes le nom d'une famille de mod\u00e8les ouverts, tu en s\u00e9lectionnes un adapt\u00e9 \u00e0 ta machine, et tu cliques pour le t\u00e9l\u00e9charger. Le logiciel t'indique en g\u00e9n\u00e9ral si un mod\u00e8le est trop lourd pour ton ordinateur : \u00e9coute cet avertissement. Le mod\u00e8le est un gros fichier, son t\u00e9l\u00e9chargement prend un peu de temps, c'est normal. Puis, discuter avec le mod\u00e8le : une fois t\u00e9l\u00e9charg\u00e9, tu le charges, une fen\u00eatre de discussion s'ouvre, et tu peux lui parler comme dans une messagerie. Pose-lui une question simple pour v\u00e9rifier que tout fonctionne. Enfin, activer son serveur local : dans les r\u00e9glages de LM Studio, tu trouveras une option pour d\u00e9marrer un serveur local, souvent pr\u00e9sent\u00e9e comme un mode d\u00e9veloppeur ou serveur. En l'activant, LM Studio ouvre une porte de service sur ta machine, une adresse locale \u00e0 laquelle d'autres outils pourront se brancher. Ce point d'acc\u00e8s parle le m\u00eame langage que les grandes IA en ligne, ce qui veut dire que beaucoup d'outils sauront s'y connecter sans difficult\u00e9.<\/p><div class=\"mga-ex\"><b>L'image juste :<\/b> LM Studio, c'est comme une cha\u00eene hi-fi tout-en-un avec de gros boutons bien visibles. Tu ins\u00e8res le disque (le mod\u00e8le), tu appuies sur lecture (charger), et la musique sort. Et si tu veux, tu branches une prise \u00e0 l'arri\u00e8re (le serveur local) pour envoyer le son dans d'autres pi\u00e8ces de la maison (tes autres outils).<\/div><p class=\"mga-sub\">\u00c9tape B : Ollama, l'approche plus l\u00e9g\u00e8re<\/p><p>Ollama vise le m\u00eame but par un chemin plus discret et plus l\u00e9ger, appr\u00e9ci\u00e9 de ceux qui aiment la ligne de commande, c'est-\u00e0-dire taper des instructions dans une fen\u00eatre de texte plut\u00f4t que cliquer. Tu installes Ollama depuis son site officiel. Une fois install\u00e9, il tourne en arri\u00e8re-plan. Pour lancer un mod\u00e8le, tu ouvres le Terminal du Mac et tu tapes une commande simple qui demande \u00e0 Ollama de r\u00e9cup\u00e9rer et de d\u00e9marrer un mod\u00e8le donn\u00e9 par son nom. La premi\u00e8re fois, il t\u00e9l\u00e9charge le mod\u00e8le, puis il te laisse discuter directement dans le Terminal. Et surtout, Ollama expose lui aussi, automatiquement, un point d'acc\u00e8s local sur ta machine, avec le m\u00eame genre de porte de service que LM Studio. Tu n'as rien de sp\u00e9cial \u00e0 faire pour \u00e7a, il est l\u00e0 d\u00e8s qu'Ollama tourne. Ollama consomme peu, se lance vite, et se pr\u00eate tr\u00e8s bien \u00e0 un usage en arri\u00e8re-plan permanent. Ne sois pas intimid\u00e9 par le mot Terminal : dans notre cas, il s'agit juste de recopier une ligne d'instruction simple, une seule, et d'appuyer sur Entr\u00e9e. Tu n'as pas besoin de devenir un expert de la ligne de commande pour utiliser Ollama au quotidien : une fois le mod\u00e8le lanc\u00e9, tu peux tr\u00e8s bien discuter avec dans le Terminal, ou le laisser tourner en fond pour tes autres outils. C'est justement ce que fait notre serveur chez MogaCode : Ollama y fait tourner en permanence un petit mod\u00e8le ouvert, discr\u00e8tement, et nos outils viennent s'y brancher par un pont s\u00e9curis\u00e9. Le m\u00eame principe, en plus grand, que ce que tu montes sur ton Mac.<\/p><p class=\"mga-sub\">\u00c9tape C : brancher un autre outil sur ton IA locale<\/p><p>C'est ici que la magie op\u00e8re vraiment. Ton point d'acc\u00e8s local, qu'il vienne de LM Studio ou d'Ollama, est une adresse sur ta propre machine. Beaucoup d'outils modernes te permettent de choisir quelle IA ils utilisent : au lieu de pointer vers une IA en ligne, tu leur donnes l'adresse locale de ton mod\u00e8le. Concr\u00e8tement, dans les r\u00e9glages de l'outil concern\u00e9, l\u00e0 o\u00f9 il demande normalement de te connecter \u00e0 un service en ligne, tu remplaces cette destination par l'adresse locale fournie par LM Studio ou Ollama. \u00c0 partir de l\u00e0, l'outil r\u00e9fl\u00e9chit avec ton mod\u00e8le local : pas de quota, pas de co\u00fbt par requ\u00eate, et tes donn\u00e9es ne sortent pas de ta machine. C'est le m\u00eame geste qu'\u00e9changer l'adresse d'un fournisseur contre celle d'un autre, sauf que le nouveau fournisseur, c'est toi. Un mot rassurant : tu n'as pas besoin de comprendre en d\u00e9tail ce qu'est cette adresse locale. Retiens simplement que LM Studio et Ollama te l'affichent quelque part dans leurs r\u00e9glages, que tu peux la copier, et que tu la colles l\u00e0 o\u00f9 l'outil te demande o\u00f9 trouver son IA. Si un outil ne propose nulle part de changer ce r\u00e9glage, c'est qu'il ne le permet pas, et il n'y a rien \u00e0 forcer. Ceux qui le permettent te le montrent clairement. C'est aussi de cette mani\u00e8re que nos propres automatisations, chez MogaCode, s'appuient sur nos mod\u00e8les souverains plut\u00f4t que sur des services lou\u00e9s : on branche nos outils sur nos IA, pas l'inverse.<\/p><p class=\"mga-sub\">\u00c9tape D : le r\u00f4le honn\u00eate de Claude Desktop et ChatGPT<\/p><p>Soyons clairs, encore une fois, car c'est essentiel. Claude Desktop et l'application ChatGPT restent des services en ligne. Tu les gardes, et tu as raison de les garder, pour ce qu'ils font le mieux : leur puissance de raisonnement sup\u00e9rieure sur les t\u00e2ches difficiles, et, pour Claude Desktop en particulier, la possibilit\u00e9 de connecter des outils gr\u00e2ce \u00e0 un standard appel\u00e9 MCP, qui lui permet d'agir sur tes fichiers, tes applications et tes services. \u00c7a, un petit mod\u00e8le local ne le fait pas aussi bien. Mais le jour o\u00f9 ton quota tombe, ou quand tu veux que rien ne sorte de ta machine, tu bascules sur ton IA locale LM Studio ou Ollama. Les deux mondes coexistent : le cloud pour la puissance et les outils avanc\u00e9s, le local pour la continuit\u00e9, la confidentialit\u00e9 et l'ind\u00e9pendance. Ne confonds jamais les deux et n'esp\u00e8re pas faire penser Claude Desktop en local : ce n'est pas ainsi qu'il est con\u00e7u.<\/p><p class=\"mga-sub\">\u00c9tape E : v\u00e9rifier que \u00e7a tourne hors-ligne<\/p><p>Voici le test de v\u00e9rit\u00e9, celui qui prouve que tu es vraiment souverain. Coupe ton Wi-Fi. D\u00e9branche le r\u00e9seau, mets ta machine en mode avion. Puis ouvre LM Studio ou Ollama et pose une question \u00e0 ton mod\u00e8le. S'il te r\u00e9pond alors que tu n'as aucune connexion, c'est gagn\u00e9 : la preuve est faite que le calcul se passe enti\u00e8rement chez toi, que rien ne d\u00e9pend d'internet, et que ton plan B fonctionnera m\u00eame le jour o\u00f9 tout le reste sera coup\u00e9. Garde ce r\u00e9flexe : de temps en temps, teste ton IA locale hors-ligne, pour \u00eatre s\u00fbr qu'elle est toujours pr\u00eate.<\/p><p class=\"mga-syn\">En r\u00e9sum\u00e9 : installe LM Studio pour d\u00e9buter en douceur ou Ollama pour la l\u00e9g\u00e8ret\u00e9, t\u00e9l\u00e9charge un mod\u00e8le adapt\u00e9 \u00e0 ta machine, discute avec, puis active son point d'acc\u00e8s local pour brancher tes autres outils. Garde Claude Desktop et ChatGPT pour la puissance et les outils MCP, mais bascule sur le local quand le quota tombe ou quand la confidentialit\u00e9 l'exige. Et v\u00e9rifie, Wi-Fi coup\u00e9, que tout fonctionne bel et bien hors-ligne.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">4 \u00b7 Le cas r\u00e9el<\/div><h3><\/h3><p>Imagine un artisan qui g\u00e8re seul son activit\u00e9 et sa communication. Il n'est pas informaticien, il installe rarement des logiciels compliqu\u00e9s. Un samedi matin tranquille, caf\u00e9 \u00e0 la main, il d\u00e9cide de pr\u00e9parer son plan B. Il t\u00e9l\u00e9charge LM Studio, se laisse guider par l'interface, cherche un mod\u00e8le, en choisit un que le logiciel pr\u00e9sente comme adapt\u00e9 \u00e0 sa machine, et attend que le fichier descende. Le temps que le t\u00e9l\u00e9chargement finisse, il range son atelier. En revenant, il charge le mod\u00e8le, lui demande de reformuler un message client, et voit une r\u00e9ponse s'afficher : \u00e7a marche, chez lui, gratuitement. Curieux, il active le serveur local dans les r\u00e9glages, sans tout comprendre, simplement en suivant la logique. Puis il coupe son Wi-Fi et repose une question : la r\u00e9ponse arrive quand m\u00eame. L\u00e0, il sourit, parce qu'il vient de comprendre quelque chose d'important : cette intelligence-l\u00e0 ne d\u00e9pend de personne. Le lundi suivant, en d\u00e9placement sans r\u00e9seau chez un fournisseur, il ouvre son IA locale pour r\u00e9diger un devis rapide. Vingt minutes un samedi matin, et il a gagn\u00e9 une ind\u00e9pendance qu'il n'imaginait pas possible.<\/p><p>Prenons un second exemple, celui d'une petite association qui g\u00e8re des donn\u00e9es personnelles de ses membres et ne veut surtout pas les voir circuler en ligne. La personne qui s'occupe de la communication n'est pas plus technicienne que l'artisan. Elle choisit Ollama, parce qu'on lui a dit que c'\u00e9tait l\u00e9ger et qu'il pouvait tourner en permanence en arri\u00e8re-plan sur le vieux Mac de l'association. Elle recopie la ligne d'instruction qu'on lui a donn\u00e9e, lance un petit mod\u00e8le adapt\u00e9 \u00e0 la m\u00e9moire limit\u00e9e de la machine, et l'utilise pour r\u00e9diger des courriers, r\u00e9sumer des comptes-rendus d'assembl\u00e9e et reformuler des annonces. Comme la machine est modeste, les r\u00e9ponses arrivent un peu lentement, mais c'est parfaitement acceptable pour ce rythme de travail, et surtout, aucune donn\u00e9e de membre ne quitte jamais l'ordinateur. Elle a pr\u00e9f\u00e9r\u00e9 la lenteur ma\u00eetris\u00e9e et la confidentialit\u00e9 totale \u00e0 la vitesse d'un service en ligne o\u00f9 les donn\u00e9es seraient parties ailleurs. Pour une association qui prend au s\u00e9rieux la protection de ses membres, c'est exactement le bon arbitrage.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">5 \u00b7 Le contre-exemple<\/div><h3><\/h3><p>Le tuto est simple, mais il y a des situations o\u00f9 il faut ajuster tes attentes. Si ta machine est ancienne ou dispose de peu de m\u00e9moire, le t\u00e9l\u00e9chargement se passera bien, mais l'IA locale sera lente \u00e0 r\u00e9pondre, parfois au point d'\u00eatre p\u00e9nible pour un usage intensif. Ce n'est pas un \u00e9chec du tuto, c'est une contrainte de ta machine, et le troisi\u00e8me sous-module t'aidera \u00e0 choisir un mod\u00e8le \u00e0 sa taille pour retrouver du confort. Autre limite : le premier mod\u00e8le que tu essaies ne sera peut-\u00eatre pas le bon. Il faut parfois en tester deux ou trois avant de trouver celui qui offre le meilleur \u00e9quilibre entre qualit\u00e9 et rapidit\u00e9 sur ta machine pr\u00e9cise. C'est normal, \u00e7a fait partie du jeu, ne te d\u00e9courage pas au premier essai. Enfin, le branchement d'autres outils sur ton point d'acc\u00e8s local d\u00e9pend de chaque outil : tous ne permettent pas de changer leur destination d'IA. Ceux qui le permettent te le proposent clairement dans leurs r\u00e9glages ; les autres restent ferm\u00e9s sur leur fournisseur, et il n'y a rien \u00e0 forcer. L\u00e0 encore, patience et bon sens : tu branches ce qui se branche, tu laisses le reste.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">6 \u00b7 Les pi\u00e8ges<\/div><h3><\/h3><p>Pi\u00e8ge num\u00e9ro un : suivre le tuto au pied de la lettre et paniquer parce qu'un bouton a un autre nom. Les logiciels changent vite. Le d\u00e9roul\u00e9 g\u00e9n\u00e9ral reste toujours le m\u00eame : installer, t\u00e9l\u00e9charger un mod\u00e8le, discuter, activer le point d'acc\u00e8s. Cherche l'\u00e9quivalent le plus proche, il est presque toujours l\u00e0 o\u00f9 tu l'attends.<\/p><p>Pi\u00e8ge num\u00e9ro deux : croire que tu as r\u00e9ussi le local alors que tu utilises encore une IA en ligne. Le vrai test, c'est le Wi-Fi coup\u00e9. Si \u00e7a r\u00e9pond hors-ligne, c'est local. Si \u00e7a ne r\u00e9pond plus d\u00e8s que tu coupes le r\u00e9seau, c'est que tu es encore sur du cloud sans t'en rendre compte.<\/p><p>Pi\u00e8ge num\u00e9ro trois : t\u00e9l\u00e9charger un mod\u00e8le \u00e9norme parce que son nom impressionne, puis conclure que le local ne vaut rien parce que la machine rame. Le probl\u00e8me n'est pas le local, c'est l'accord entre la taille du mod\u00e8le et ta m\u00e9moire. Prends d'abord un mod\u00e8le raisonnable, tu monteras en taille plus tard.<\/p><p>Pi\u00e8ge num\u00e9ro quatre : vouloir absolument faire penser Claude Desktop ou ChatGPT en local. Impossible, ce sont des services en ligne. Garde-les pour la puissance et, c\u00f4t\u00e9 Claude Desktop, pour les outils via MCP. Ton local, c'est LM Studio ou Ollama, \u00e0 c\u00f4t\u00e9, pour la continuit\u00e9 et la confidentialit\u00e9.<\/p><p>Pi\u00e8ge num\u00e9ro cinq : installer, tester une fois, puis oublier. Un plan B qu'on ne v\u00e9rifie jamais n'est pas fiable. Reteste ton IA locale de temps en temps, hors-ligne, pour \u00eatre certain qu'elle sera pr\u00eate le jour o\u00f9 tu en auras vraiment besoin.<\/p><\/div><div class=\"mga-step atelier\" id=\"at-4627e7\" data-atlabel=\"\u00c0 toi : la bonne d\u00e9cision\"><div class=\"n\"><span class=\"mga-atbadge\">Atelier - a toi de jouer<\/span><\/div><h3><\/h3><div class=\"mga-decision\"><script type=\"application\/json\" class=\"mga-data\">[{\"q\":\"Tu d\\u00e9butes compl\\u00e8tement, tu n'as jamais touch\\u00e9 \\u00e0 une ligne de commande, et tu veux ton IA locale ce week-end. Par quoi tu commences ?\",\"options\":[{\"t\":\"Par LM Studio, l'application visuelle avec des boutons, pens\\u00e9e pour d\\u00e9buter\",\"ok\":true,\"why\":\"C'est la voie la plus douce : interface claire, t\\u00e9l\\u00e9chargement de mod\\u00e8le en quelques clics, discussion imm\\u00e9diate, serveur local activable dans les r\\u00e9glages.\"},{\"t\":\"Par Ollama en ligne de commande, parce que c'est plus l\\u00e9ger\",\"ok\":false,\"why\":\"Ollama est excellent, mais son usage en ligne de commande est d\\u00e9routant pour un vrai d\\u00e9butant. Autant commencer par le visuel, puis y venir plus tard.\"}]},{\"q\":\"Tu veux \\u00eatre certain que ton IA tourne vraiment chez toi et pas en ligne. Comment le prouves-tu ?\",\"options\":[{\"t\":\"Je coupe le Wi-Fi et je pose une question : si elle r\\u00e9pond, c'est bien local\",\"ok\":true,\"why\":\"C'est le test de v\\u00e9rit\\u00e9 imparable : sans r\\u00e9seau, seule une IA qui calcule r\\u00e9ellement sur ta machine peut r\\u00e9pondre.\"},{\"t\":\"Je regarde si l'interface est jolie et moderne\",\"ok\":false,\"why\":\"L'apparence ne prouve rien du tout. Une belle interface peut tr\\u00e8s bien \\u00eatre une fen\\u00eatre vers un service en ligne. Seul le test hors-ligne tranche.\"}]}]<\/script><div class=\"mga-host\"><\/div><\/div><\/div><div class=\"mga-step atelier\" id=\"at-d12e6e\" data-atlabel=\"\u00c0 toi : ton playbook\"><div class=\"n\"><span class=\"mga-atbadge\">Atelier - a toi de jouer<\/span><\/div><h3><\/h3><p>D\u00e9roule ces points pour installer ton IA locale proprement, du d\u00e9but \u00e0 la v\u00e9rification finale :<\/p><div class=\"mga-checklist\"><script type=\"application\/json\" class=\"mga-data\">{\"ck\":\"z3_b\",\"items\":[\"J'ai gard\\u00e9 en t\\u00eate que les \\u00e9crans peuvent diff\\u00e9rer, mais que le d\\u00e9roul\\u00e9 g\\u00e9n\\u00e9ral reste le m\\u00eame.\",\"J'ai t\\u00e9l\\u00e9charg\\u00e9 et install\\u00e9 LM Studio depuis son site officiel, version Mac Apple Silicon.\",\"J'ai cherch\\u00e9 et t\\u00e9l\\u00e9charg\\u00e9 un mod\\u00e8le que le logiciel pr\\u00e9sente comme adapt\\u00e9 \\u00e0 ma machine.\",\"J'ai charg\\u00e9 le mod\\u00e8le et v\\u00e9rifi\\u00e9 qu'il me r\\u00e9pond dans la fen\\u00eatre de discussion.\",\"J'ai activ\\u00e9 le serveur local (mode serveur ou d\\u00e9veloppeur) dans les r\\u00e9glages de LM Studio.\",\"Si je pr\\u00e9f\\u00e8re le l\\u00e9ger, j'ai aussi install\\u00e9 Ollama et lanc\\u00e9 un mod\\u00e8le depuis le Terminal.\",\"J'ai rep\\u00e9r\\u00e9, dans un outil que j'utilise, o\\u00f9 remplacer l'IA en ligne par l'adresse locale de mon mod\\u00e8le.\",\"J'ai compris que Claude Desktop et ChatGPT restent en ligne, \\u00e0 garder pour la puissance et, c\\u00f4t\\u00e9 Claude, les outils MCP.\",\"J'ai coup\\u00e9 le Wi-Fi et v\\u00e9rifi\\u00e9 que mon IA locale r\\u00e9pond toujours : la preuve du hors-ligne est faite.\",\"J'ai pr\\u00e9vu de retester mon IA locale de temps en temps pour qu'elle reste un plan B fiable.\"]}<\/script><div class=\"mga-host\"><\/div><\/div><\/div><div class=\"mga-q\" data-q=\"z3b1\"><p style=\"margin:0 0 6px;color:#0F2237\">Quel est le bon ordre g\u00e9n\u00e9ral pour installer ton IA locale avec LM Studio ?<\/p><button type=\"button\" class=\"opt\" data-good=\"1\">Installer l&#039;appli, t\u00e9l\u00e9charger un mod\u00e8le adapt\u00e9, discuter avec, puis activer le serveur local<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">Activer un abonnement, payer, puis attendre une cl\u00e9 d&#039;acc\u00e8s par email<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">Couper internet d&#039;abord, puis esp\u00e9rer qu&#039;un mod\u00e8le apparaisse tout seul<\/button><\/div><div class=\"mga-q\" data-q=\"z3b2\"><p style=\"margin:0 0 6px;color:#0F2237\">Comment prouves-tu que ton IA tourne vraiment en local ?<\/p><button type=\"button\" class=\"opt\" data-good=\"1\">Je coupe le r\u00e9seau et elle me r\u00e9pond quand m\u00eame<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">Je v\u00e9rifie que l&#039;interface est en fran\u00e7ais<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">Je regarde si le logo est bien affich\u00e9 en haut de la fen\u00eatre<\/button><\/div><div class=\"mga-q\" data-q=\"z3b3\"><p style=\"margin:0 0 6px;color:#0F2237\">Que gardes-tu Claude Desktop et ChatGPT pour faire, honn\u00eatement ?<\/p><button type=\"button\" class=\"opt\" data-good=\"1\">Pour leur puissance sur les t\u00e2ches difficiles et, c\u00f4t\u00e9 Claude Desktop, la connexion d&#039;outils via MCP<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">Pour les faire penser enti\u00e8rement en local une fois install\u00e9s<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">Pour remplacer compl\u00e8tement LM Studio et Ollama<\/button><\/div><div class=\"mga-chfoot\"><button type=\"button\" class=\"mga-cta mga-chnext\" data-go=\"2\">Sous-module suivant &rarr;<\/button><\/div><\/div><div class=\"mga-chapter hid\" data-ch=\"2\"><div class=\"mga-atlist\"><b>Ateliers de ce sous-module<\/b><a href=\"#at-4627e7\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l1.7 5.2a2 2 0 0 0 1.1 1.1L20 11l-5.2 1.7a2 2 0 0 0-1.1 1.1L12 19l-1.7-5.2a2 2 0 0 0-1.1-1.1L4 11l5.2-1.7a2 2 0 0 0 1.1-1.1z\"\/><\/svg>\u00c0 toi : la bonne d\u00e9cision<\/a><a href=\"#at-d12e6e\"><svg class=\"mga-ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l1.7 5.2a2 2 0 0 0 1.1 1.1L20 11l-5.2 1.7a2 2 0 0 0-1.1 1.1L12 19l-1.7-5.2a2 2 0 0 0-1.1-1.1L4 11l5.2-1.7a2 2 0 0 0 1.1-1.1z\"\/><\/svg>\u00c0 toi : ton playbook<\/a><\/div><div class=\"mga-step\"><div class=\"n\">1 \u00b7 L&#039;accroche<\/div><h3><\/h3><p>Tu as ton logiciel, il te reste la vraie question : quel mod\u00e8le vas-tu faire tourner sur TA machine ? C'est la question qui d\u00e9cide de tout, entre une IA locale fluide et agr\u00e9able, et une IA locale qui rame et te d\u00e9go\u00fbte. Et contrairement \u00e0 ce qu'on croit, la r\u00e9ponse ne d\u00e9pend pas d'abord de la puce de ton Mac, mais de sa m\u00e9moire. On va d\u00e9monter \u00e7a ensemble, palier par palier, du MacBook Air d'entr\u00e9e de gamme au gros MacBook Pro. Et comme d'habitude, un rappel de bon sens : les mod\u00e8les \u00e9voluent sans arr\u00eat, de nouvelles versions sortent r\u00e9guli\u00e8rement, les noms changent. Ne cherche donc pas \u00e0 m\u00e9moriser une version pr\u00e9cise qui sera p\u00e9rim\u00e9e dans quelques mois. Apprends plut\u00f4t \u00e0 juger par la taille du mod\u00e8le et par la m\u00e9moire de ta machine : ces deux rep\u00e8res-l\u00e0, eux, restent valables dans le temps.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">2 \u00b7 Le pourquoi<\/div><h3><\/h3><p>Avant le comparatif, il faut comprendre deux notions qui expliquent absolument tout : la m\u00e9moire unifi\u00e9e, et la quantification. Prends cinq minutes ici, \u00e7a t'\u00e9vitera des heures de t\u00e2tonnement.<\/p><p class=\"mga-sub\">La m\u00e9moire unifi\u00e9e, la vraie reine du bal<\/p><p>Les Mac r\u00e9cents, ceux \u00e0 puce Apple, ont une particularit\u00e9 : leur m\u00e9moire est unifi\u00e9e, c'est-\u00e0-dire partag\u00e9e entre toutes les parties de la machine, y compris celle qui fait tourner l'IA. Cette m\u00e9moire, la RAM, est l'endroit o\u00f9 le mod\u00e8le doit tenir en entier pour pouvoir fonctionner correctement. Si le mod\u00e8le est plus gros que la m\u00e9moire disponible, \u00e7a coince : soit il refuse de d\u00e9marrer, soit la machine se met \u00e0 ramer atrocement. C'est pour \u00e7a qu'on juge d'abord une machine par sa quantit\u00e9 de m\u00e9moire, pas par le nom de sa puce. Un Mac avec beaucoup de m\u00e9moire fera tourner de plus gros mod\u00e8les, point. Et la m\u00e9moire, contrairement aux performances qui \u00e9voluent d'une g\u00e9n\u00e9ration \u00e0 l'autre, reste un rep\u00e8re stable et durable dans le temps : c'est pour \u00e7a qu'on raisonne par paliers de m\u00e9moire.<\/p><div class=\"mga-ex\"><b>L'image juste :<\/b> la m\u00e9moire unifi\u00e9e, c'est le plan de travail de ta cuisine. Un petit plan de travail t'oblige \u00e0 cuisiner de petits plats simples : au-del\u00e0, tu n'as plus de place, tout d\u00e9borde et tu te g\u00eanes. Un grand plan de travail te laisse pr\u00e9parer de grosses recettes, avec tous les ingr\u00e9dients \u00e9tal\u00e9s en m\u00eame temps. Le mod\u00e8le, c'est la recette : plus elle est ambitieuse, plus il lui faut de place. La puissance de la puce, elle, c'est juste la vitesse \u00e0 laquelle tes mains bougent : utile, mais si le plan de travail est trop petit, tu ne cuisineras jamais un grand plat, m\u00eame avec des mains tr\u00e8s rapides.<\/div><p class=\"mga-sub\">La quantification, l'art de faire tenir un mod\u00e8le<\/p><p>Un mod\u00e8le, \u00e0 l'origine, est tr\u00e8s gourmand en m\u00e9moire. Pour qu'il tienne sur une machine personnelle, on utilise une technique appel\u00e9e quantification. En simplifiant : on compresse le mod\u00e8le en r\u00e9duisant la pr\u00e9cision des nombres qui le composent, ce qui le rend beaucoup plus l\u00e9ger et donc capable de tenir dans une m\u00e9moire plus modeste. Le prix \u00e0 payer, c'est une petite perte de qualit\u00e9, en g\u00e9n\u00e9ral discr\u00e8te pour les usages courants. La plupart des mod\u00e8les que tu t\u00e9l\u00e9charges pour du local sont d\u00e9j\u00e0 propos\u00e9s en versions quantifi\u00e9es, pr\u00e9cis\u00e9ment pour tenir sur nos machines. Retiens l'id\u00e9e : la quantification, c'est ce qui rend le local possible sur un Mac ordinaire, en \u00e9change d'un peu de finesse.<\/p><p class=\"mga-sub\">Pourquoi la taille du mod\u00e8le se mesure en milliards de param\u00e8tres<\/p><p>Tu verras les mod\u00e8les d\u00e9crits par un nombre de param\u00e8tres, exprim\u00e9 en milliards. Les param\u00e8tres, ce sont les r\u00e9glages internes que le mod\u00e8le a appris. Plus il y en a, plus le mod\u00e8le est capable et nuanc\u00e9, mais plus il est gros et gourmand en m\u00e9moire. Un petit mod\u00e8le de quelques milliards de param\u00e8tres tient sur une machine modeste mais reste limit\u00e9 ; un gros mod\u00e8le de plusieurs dizaines de milliards est plus capable mais exige beaucoup de m\u00e9moire. Ton travail, c'est de trouver le plus gros mod\u00e8le que ta m\u00e9moire peut avaler confortablement : c'est l\u00e0 que tu obtiens le meilleur de ce que ta machine sait faire.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">3 \u00b7 Le comment<\/div><h3><\/h3><p>Passons au comparatif concret, par familles de Mac, en raisonnant sur la m\u00e9moire, ce rep\u00e8re durable. Pour chaque palier, je te dis ce qui tourne, les avantages, les inconv\u00e9nients, et pourquoi \u00e7a convient ou non.<\/p><p class=\"mga-sub\">Petits Macs \u00e0 8 Go de m\u00e9moire : MacBook Air M1, M2, M3 de base<\/p><p>C'est le point d'entr\u00e9e du monde Apple r\u00e9cent. Avec cette m\u00e9moire, seuls les petits mod\u00e8les tournent, ceux d'environ trois \u00e0 quatre milliards de param\u00e8tres, en version quantifi\u00e9e. L'avantage, c'est que \u00e7a fonctionne et que c'est d\u00e9j\u00e0 utile : reformuler un texte court, corriger, r\u00e9sumer une note simple, poser une question rapide, tout \u00e7a reste faisable. L'inconv\u00e9nient, c'est que ces petits mod\u00e8les sont vite \u00e0 la peine d\u00e8s que la t\u00e2che se complique : ils perdent le fil, simplifient trop, se trompent plus souvent. De plus, avec seulement 8 Go, le mod\u00e8le occupe une grosse part de la m\u00e9moire, ce qui \u00e9touffe le reste : garde peu d'applications ouvertes en m\u00eame temps. Attention aussi au MacBook Air, qui n'a pas de ventilateur : sur un usage prolong\u00e9, il chauffe et se met \u00e0 ralentir pour se prot\u00e9ger, ce qui rend les longues s\u00e9ances inconfortables. \u00c7a convient pour d\u00e9panner, pour des t\u00e2ches simples, pour go\u00fbter au local sans investir. \u00c7a ne convient pas pour un usage intensif ou des t\u00e2ches exigeantes.<\/p><p class=\"mga-sub\">Macs \u00e0 16 Go de m\u00e9moire : le vrai point d'entr\u00e9e agr\u00e9able<\/p><p>Ici, tout change de confort. Avec 16 Go, les mod\u00e8les moyens, autour de sept \u00e0 huit milliards de param\u00e8tres en version quantifi\u00e9e, tournent confortablement. Et c'est un cap important, parce que ces mod\u00e8les moyens sont nettement plus capables que les petits : ils raisonnent mieux, \u00e9crivent mieux, tiennent mieux le fil d'une demande. L'avantage, c'est un excellent \u00e9quilibre entre qualit\u00e9 et fluidit\u00e9 pour la plupart des usages quotidiens, tout en gardant assez de m\u00e9moire pour le reste de ton travail. L'inconv\u00e9nient, c'est que les tr\u00e8s gros mod\u00e8les restent hors de port\u00e9e, et que sur les t\u00e2ches vraiment difficiles, tu sentiras encore la diff\u00e9rence avec un grand mod\u00e8le cloud. \u00c7a convient \u00e0 la grande majorit\u00e9 des gens qui veulent un plan B local s\u00e9rieux et agr\u00e9able au quotidien. C'est, tr\u00e8s honn\u00eatement, le palier que je conseillerais de viser si tu choisis une machine avec le local en t\u00eate.<\/p><div class=\"mga-ex\"><b>L'image juste :<\/b> passer de 8 \u00e0 16 Go, c'est comme passer d'un scooter \u00e0 une voiture citadine. Le scooter t'emm\u00e8ne partout en ville pour les courses du quotidien, mais tu es vite limit\u00e9 d\u00e8s qu'il faut charger ou rouler loin. La citadine ne fait pas la course avec une berline de luxe, mais elle couvre confortablement l'immense majorit\u00e9 de tes trajets r\u00e9els, sans que tu y penses.<\/div><p class=\"mga-sub\">Macs \u00e0 24 ou 36 Go de m\u00e9moire : on monte en gamme<\/p><p>\u00c0 ce niveau de m\u00e9moire, des mod\u00e8les plus gros deviennent possibles, dans une fourchette qui va d'environ treize jusqu'\u00e0 une trentaine de milliards de param\u00e8tres selon les cas, toujours en version quantifi\u00e9e. L'avantage, c'est une qualit\u00e9 de r\u00e9ponse sensiblement meilleure, plus proche de ce qu'on attend d'une vraie assistance s\u00e9rieuse, avec assez de marge pour travailler \u00e0 c\u00f4t\u00e9 sans \u00e9touffer la machine. L'inconv\u00e9nient, c'est que ces mod\u00e8les plus gros r\u00e9fl\u00e9chissent plus lentement : la r\u00e9ponse arrive, elle est meilleure, mais tu attends un peu plus. Et l'investissement mat\u00e9riel n'est plus le m\u00eame. \u00c7a convient \u00e0 quelqu'un qui utilise le local de fa\u00e7on r\u00e9guli\u00e8re et exigeante, qui veut une vraie qualit\u00e9 sans passer par le cloud, et qui accepte un peu de lenteur en \u00e9change. \u00c7a ne convient pas si ton usage reste occasionnel et simple : tu paierais pour une capacit\u00e9 que tu n'exploiterais pas.<\/p><p class=\"mga-sub\">MacBook Pro Max \u00e0 48, 64 Go et au-del\u00e0 : le haut du panier local<\/p><p>C'est le territoire des machines con\u00e7ues pour le calcul lourd. Avec cette m\u00e9moire, tu peux viser de tr\u00e8s gros mod\u00e8les quantifi\u00e9s, ceux qui s'approchent le plus de la qualit\u00e9 d'une bonne assistance, tout en restant enti\u00e8rement chez toi. L'avantage est \u00e9vident : la meilleure exp\u00e9rience locale possible, une confidentialit\u00e9 totale m\u00eame sur des t\u00e2ches ambitieuses, et de la marge pour l'avenir. L'inconv\u00e9nient est double : d'abord, ces machines co\u00fbtent cher ; ensuite, m\u00eame sur elles, les tr\u00e8s gros mod\u00e8les r\u00e9fl\u00e9chissent lentement, car un ordinateur personnel, aussi haut de gamme soit-il, n'a pas la puissance d'une ferme de serveurs. \u00c7a convient \u00e0 un professionnel dont la confidentialit\u00e9 et l'ind\u00e9pendance sont critiques, qui traite r\u00e9guli\u00e8rement des donn\u00e9es sensibles, et pour qui le local n'est pas un simple d\u00e9pannage mais un outil de travail central. \u00c7a ne convient pas comme premier achat pour d\u00e9couvrir : c'est un investissement de conviction, pas d'initiation.<\/p><p class=\"mga-sub\">Les familles de mod\u00e8les ouverts \u00e0 conna\u00eetre<\/p><p>C\u00f4t\u00e9 mod\u00e8les, oriente-toi vers les grandes familles ouvertes et durables : Llama, Qwen, Mistral, Gemma, Phi. Ce sont des noms de familles qui traversent le temps, m\u00eame si leurs versions pr\u00e9cises se renouvellent r\u00e9guli\u00e8rement. Je ne te donne volontairement pas de version exacte ni de chiffre de vitesse, parce que ce serait p\u00e9rim\u00e9 bient\u00f4t et que je ne veux rien t'inventer. La bonne m\u00e9thode ne change pas : dans LM Studio ou Ollama, cherche une de ces familles, choisis une taille de mod\u00e8le qui correspond \u00e0 ta m\u00e9moire selon les paliers ci-dessus, prends une version quantifi\u00e9e, et teste. Si c'est fluide et que la qualit\u00e9 te va, tu as trouv\u00e9. Si \u00e7a rame, descends d'une taille. Si c'est fluide mais un peu limit\u00e9 et que ta m\u00e9moire a de la marge, monte d'une taille. C'est un r\u00e9glage vivant, pas une science fig\u00e9e.<\/p><p class=\"mga-sub\">La m\u00e9thode simple pour trouver ton bon accord<\/p><p>Pour ne jamais te tromper, retiens une d\u00e9marche en trois temps, valable quelle que soit la machine et quels que soient les mod\u00e8les du moment. Premier temps : regarde la m\u00e9moire de ton Mac et rep\u00e8re ton palier dans le comparatif ci-dessus, c'est ton point de d\u00e9part non n\u00e9gociable. Deuxi\u00e8me temps : choisis une famille ouverte durable et prends une taille de mod\u00e8le qui correspond \u00e0 ton palier, en version quantifi\u00e9e. Ne vise pas d'embl\u00e9e le maximum de ton palier ; commence plut\u00f4t au milieu, pour \u00eatre s\u00fbr d'avoir de la fluidit\u00e9. Troisi\u00e8me temps : teste sur tes vraies t\u00e2ches, pas sur des questions gadgets. Demande-lui de reformuler un de tes textes, de r\u00e9sumer une de tes notes, de faire ce que tu lui demanderas vraiment au quotidien. Si la r\u00e9ponse arrive \u00e0 un rythme confortable et que la qualit\u00e9 te satisfait, tu tiens ton mod\u00e8le. Si c'est lent ou si \u00e7a fait ramer le reste, descends d'un cran. Si c'est tr\u00e8s fluide mais un peu court et que ta m\u00e9moire a de la marge, monte d'un cran. En deux ou trois essais, tu trouves ton \u00e9quilibre, et il n'y a rien de plus \u00e0 comprendre. Cette m\u00e9thode ne p\u00e9rime jamais, m\u00eame quand les mod\u00e8les changent de nom, parce qu'elle repose sur deux rep\u00e8res stables : ta m\u00e9moire et ton ressenti \u00e0 l'usage.<\/p><p class=\"mga-syn\">En r\u00e9sum\u00e9 : juge d'abord par la m\u00e9moire, pas par la puce. \u00c0 8 Go, petits mod\u00e8les pour t\u00e2ches simples, avec l'Air qui chauffe sur la dur\u00e9e. \u00c0 16 Go, mod\u00e8les moyens confortables, le vrai point d'entr\u00e9e agr\u00e9able. \u00c0 24 ou 36 Go, mod\u00e8les plus gros et meilleurs mais plus lents. \u00c0 48, 64 Go et plus, tr\u00e8s gros mod\u00e8les quantifi\u00e9s, lentement, pour les besoins critiques. Choisis une famille ouverte durable, une taille accord\u00e9e \u00e0 ta m\u00e9moire, une version quantifi\u00e9e, et ajuste en testant.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">4 \u00b7 Le cas r\u00e9el<\/div><h3><\/h3><p>Deux personnes, deux machines, deux bons choix, pour bien voir que la r\u00e9ponse d\u00e9pend de la m\u00e9moire et de l'usage. La premi\u00e8re est une \u00e9tudiante avec un MacBook Air M2 de base, \u00e0 8 Go. Elle veut surtout reformuler ses notes, r\u00e9sumer des cours et poser des questions simples, sans jamais d\u00e9passer son quota cloud gratuit. Elle installe un petit mod\u00e8le de trois \u00e0 quatre milliards de param\u00e8tres : c'est fluide pour ses besoins, gratuit, et \u00e7a la d\u00e9panne parfaitement. Elle sait qu'elle ne doit pas lui demander une longue analyse complexe, et elle fait attention \u00e0 ne pas encha\u00eener des heures d'affil\u00e9e pour \u00e9viter que l'Air ne chauffe. Bon accord machine-mod\u00e8le-usage. La seconde est une avocate avec un MacBook Pro \u00e0 16 Go. Elle traite des documents confidentiels qu'elle refuse d'envoyer en ligne. Elle installe un mod\u00e8le moyen de sept \u00e0 huit milliards de param\u00e8tres, qui tourne confortablement, tient le fil de ses demandes, et lui offre une vraie qualit\u00e9 tout en gardant absolument tout sur sa machine. Elle garde son abonnement cloud pour les rares t\u00e2ches tr\u00e8s complexes, mais l'essentiel de son travail sensible se fait d\u00e9sormais en local, chez elle. Deux profils, deux m\u00e9moires, deux mod\u00e8les bien accord\u00e9s : c'est \u00e7a, choisir juste.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">5 \u00b7 Le contre-exemple<\/div><h3><\/h3><p>Restons honn\u00eates jusqu'au bout, c'est la r\u00e8gle de ce module. M\u00eame sur la meilleure machine locale, un mod\u00e8le qui tourne chez toi n'\u00e9gale pas un grand mod\u00e8le cloud de pointe. Sur les raisonnements les plus difficiles, sur la culture g\u00e9n\u00e9rale la plus large et la plus \u00e0 jour, le cloud garde l'avantage, parce qu'il tourne sur une puissance que ta machine personnelle ne peut pas \u00e9galer. Et c'est tr\u00e8s bien comme \u00e7a : le local n'a jamais eu vocation \u00e0 gagner la course \u00e0 la puissance brute. Sa valeur est ailleurs, et elle est immense : c'est ta continuit\u00e9 quand le quota tombe, ton ind\u00e9pendance vis-\u00e0-vis d'un abonnement, ta confidentialit\u00e9 totale, ta disponibilit\u00e9 hors-ligne, ta souverainet\u00e9 sur ton propre outil. Autre point de franchise : plus tu montes en taille de mod\u00e8le pour gagner en qualit\u00e9, plus tu perds en vitesse, et plus tu sollicites ta machine. Il n'existe pas de r\u00e9glage parfait qui donnerait \u00e0 la fois la qualit\u00e9 du cloud et la l\u00e9g\u00e8ret\u00e9 d'un petit mod\u00e8le. Tu arbitres toujours entre qualit\u00e9, vitesse et confidentialit\u00e9, en fonction de ta machine et de ta t\u00e2che. Ne cherche pas le mod\u00e8le miracle : cherche le bon compromis pour toi, aujourd'hui, sur cette machine-l\u00e0. Notre engagement, c'est de te donner la m\u00e9thode et les rep\u00e8res, pas de te promettre que ton local rivalisera avec les plus grands mod\u00e8les en ligne. Une nuance importante, tout de m\u00eame, pour ne pas te d\u00e9courager : les mod\u00e8les ouverts progressent vite, ann\u00e9e apr\u00e8s ann\u00e9e, et ce qu'un bon mod\u00e8le local sait faire aujourd'hui aurait paru impressionnant il y a peu. La tendance joue en ta faveur. Ce que tu installes maintenant n'est pas fig\u00e9 : \u00e0 m\u00e9moire \u00e9gale, les mod\u00e8les de demain seront plus capables que ceux d'aujourd'hui, sans que tu aies \u00e0 changer de machine. Investir un peu de temps dans le local, c'est donc un pari qui se bonifie avec le temps, \u00e0 condition de garder les bons rep\u00e8res, la m\u00e9moire et le ressenti \u00e0 l'usage, plut\u00f4t que de courir apr\u00e8s un chiffre de vitesse ou une version pr\u00e9cise.<\/p><\/div><div class=\"mga-step\"><div class=\"n\">6 \u00b7 Les pi\u00e8ges<\/div><h3><\/h3><p>Pi\u00e8ge num\u00e9ro un : choisir sa machine ou son mod\u00e8le sur le nom de la puce plut\u00f4t que sur la m\u00e9moire. C'est la m\u00e9moire qui d\u00e9cide quel mod\u00e8le tient et tourne bien. Une puce rapide avec peu de m\u00e9moire fera quand m\u00eame ramer un gros mod\u00e8le. Regarde la m\u00e9moire d'abord, toujours.<\/p><p>Pi\u00e8ge num\u00e9ro deux : prendre le plus gros mod\u00e8le disponible par principe. S'il d\u00e9borde de ta m\u00e9moire, il ne d\u00e9marre pas ou il rame. Le meilleur mod\u00e8le pour toi n'est pas le plus gros du monde, c'est le plus gros que TA m\u00e9moire avale confortablement.<\/p><p>Pi\u00e8ge num\u00e9ro trois : oublier la quantification. Un mod\u00e8le non quantifi\u00e9 est bien plus lourd. Prends les versions quantifi\u00e9es, faites expr\u00e8s pour tenir sur nos machines, en acceptant une petite perte de qualit\u00e9 souvent invisible \u00e0 l'usage courant.<\/p><p>Pi\u00e8ge num\u00e9ro quatre : m\u00e9moriser une version pr\u00e9cise de mod\u00e8le. Elles se renouvellent tout le temps. Retiens les familles durables, Llama, Qwen, Mistral, Gemma, Phi, et juge par la taille et ta m\u00e9moire, jamais par un num\u00e9ro de version qui sera p\u00e9rim\u00e9.<\/p><p>Pi\u00e8ge num\u00e9ro cinq : sur un MacBook Air, lancer une longue s\u00e9ance intensive et s'\u00e9tonner que \u00e7a ralentisse. Sans ventilateur, l'Air chauffe et se bride pour se prot\u00e9ger. Pour de longues s\u00e9ances, une machine ventil\u00e9e est plus adapt\u00e9e ; sur Air, privil\u00e9gie les t\u00e2ches courtes.<\/p><p>Pi\u00e8ge num\u00e9ro six : attendre du local qu'il \u00e9gale le cloud, puis \u00eatre d\u00e9\u00e7u. Le local est un plan B et un atout de confidentialit\u00e9 formidable, pas un rempla\u00e7ant sup\u00e9rieur. Juge-le sur sa vraie valeur, la souverainet\u00e9, et tu ne seras jamais d\u00e9\u00e7u.<\/p><\/div><div class=\"mga-step atelier\" id=\"at-4627e7\" data-atlabel=\"\u00c0 toi : la bonne d\u00e9cision\"><div class=\"n\"><span class=\"mga-atbadge\">Atelier - a toi de jouer<\/span><\/div><h3><\/h3><div class=\"mga-decision\"><script type=\"application\/json\" class=\"mga-data\">[{\"q\":\"Tu h\\u00e9sites entre deux Mac pour faire du local : l'un a une puce plus r\\u00e9cente mais 8 Go de m\\u00e9moire, l'autre une puce un peu plus ancienne mais 16 Go. Lequel pour l'IA locale ?\",\"options\":[{\"t\":\"Celui \\u00e0 16 Go de m\\u00e9moire, m\\u00eame avec une puce un peu plus ancienne\",\"ok\":true,\"why\":\"La m\\u00e9moire d\\u00e9cide quels mod\\u00e8les tiennent et tournent bien. 16 Go ouvre les mod\\u00e8les moyens confortables, un cap de qualit\\u00e9 que 8 Go n'atteint pas, quelle que soit la puce.\"},{\"t\":\"Celui \\u00e0 la puce la plus r\\u00e9cente, la puce compte plus que la m\\u00e9moire\",\"ok\":false,\"why\":\"Erreur classique : une puce rapide avec peu de m\\u00e9moire fera quand m\\u00eame ramer un mod\\u00e8le qui d\\u00e9borde. La m\\u00e9moire prime pour le local.\"}]},{\"q\":\"Tu installes un mod\\u00e8le et ta machine se met \\u00e0 ramer terriblement. Quel est le bon r\\u00e9flexe ?\",\"options\":[{\"t\":\"Descendre d'une taille de mod\\u00e8le, ou prendre une version quantifi\\u00e9e plus l\\u00e9g\\u00e8re\",\"ok\":true,\"why\":\"Le ralentissement signale un mod\\u00e8le trop gros pour ta m\\u00e9moire. Un mod\\u00e8le plus petit ou plus fortement quantifi\\u00e9 redonnera de la fluidit\\u00e9.\"},{\"t\":\"Conclure que le local ne fonctionne pas et abandonner\",\"ok\":false,\"why\":\"Le probl\\u00e8me n'est pas le local, c'est l'accord entre la taille du mod\\u00e8le et ta m\\u00e9moire. Un mod\\u00e8le \\u00e0 ta taille change tout.\"}]}]<\/script><div class=\"mga-host\"><\/div><\/div><\/div><div class=\"mga-step atelier\" id=\"at-d12e6e\" data-atlabel=\"\u00c0 toi : ton playbook\"><div class=\"n\"><span class=\"mga-atbadge\">Atelier - a toi de jouer<\/span><\/div><h3><\/h3><p>Pour choisir le bon mod\u00e8le sur ta machine, d\u00e9roule ces points dans l'ordre :<\/p><div class=\"mga-checklist\"><script type=\"application\/json\" class=\"mga-data\">{\"ck\":\"z3_c\",\"items\":[\"J'ai v\\u00e9rifi\\u00e9 la quantit\\u00e9 de m\\u00e9moire (RAM) de mon Mac : c'est mon rep\\u00e8re num\\u00e9ro un.\",\"J'ai compris que la m\\u00e9moire, pas la puce, d\\u00e9cide quels mod\\u00e8les tiennent et tournent bien.\",\"Je sais que la quantification compresse un mod\\u00e8le pour qu'il tienne, au prix d'un peu de qualit\\u00e9.\",\"\\u00c0 8 Go, je vise de petits mod\\u00e8les (autour de trois \\u00e0 quatre milliards) pour des t\\u00e2ches simples.\",\"\\u00c0 16 Go, je vise des mod\\u00e8les moyens (autour de sept \\u00e0 huit milliards) : mon point d'entr\\u00e9e confortable.\",\"\\u00c0 24 ou 36 Go, j'envisage des mod\\u00e8les plus gros, meilleurs mais plus lents.\",\"\\u00c0 48, 64 Go et plus, je peux viser de tr\\u00e8s gros mod\\u00e8les quantifi\\u00e9s, lentement, pour des besoins critiques.\",\"Je choisis une famille ouverte durable (Llama, Qwen, Mistral, Gemma, Phi) et une version quantifi\\u00e9e.\",\"Sur un MacBook Air sans ventilateur, j'\\u00e9vite les longues s\\u00e9ances intensives qui font chauffer et ralentir.\",\"Je teste et j'ajuste : si \\u00e7a rame je descends d'une taille, si c'est fluide et limit\\u00e9 avec de la marge je monte.\"]}<\/script><div class=\"mga-host\"><\/div><\/div><\/div><div class=\"mga-q\" data-q=\"z3c1\"><p style=\"margin:0 0 6px;color:#0F2237\">Qu&#039;est-ce qui d\u00e9termine d&#039;abord quel mod\u00e8le tu peux faire tourner sur un Mac ?<\/p><button type=\"button\" class=\"opt\" data-good=\"1\">La quantit\u00e9 de m\u00e9moire unifi\u00e9e (RAM) de la machine<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">La couleur et la finesse de l&#039;\u00e9cran<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">Le nombre de logiciels d\u00e9j\u00e0 install\u00e9s<\/button><\/div><div class=\"mga-q\" data-q=\"z3c2\"><p style=\"margin:0 0 6px;color:#0F2237\">\u00c0 quoi sert la quantification d&#039;un mod\u00e8le ?<\/p><button type=\"button\" class=\"opt\" data-good=\"1\">\u00c0 compresser le mod\u00e8le pour qu&#039;il tienne en m\u00e9moire, au prix d&#039;un peu de qualit\u00e9<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">\u00c0 le rendre plus intelligent que les mod\u00e8les cloud<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">\u00c0 le connecter automatiquement \u00e0 internet<\/button><\/div><div class=\"mga-q\" data-q=\"z3c3\"><p style=\"margin:0 0 6px;color:#0F2237\">Quel palier de m\u00e9moire repr\u00e9sente le vrai point d&#039;entr\u00e9e agr\u00e9able pour le local ?<\/p><button type=\"button\" class=\"opt\" data-good=\"1\">16 Go, qui fait tourner confortablement des mod\u00e8les moyens<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">8 Go, largement suffisant pour les plus gros mod\u00e8les<\/button><button type=\"button\" class=\"opt\" data-good=\"0\">Peu importe la m\u00e9moire, seule la puce compte<\/button><\/div><\/div><\/div><div class=\"mga-carnet\"><h3>Ton dictionnaire s'agrandit (+8 mots)<\/h3><p class=\"sub\">Ils rejoignent ton Carnet de mots. On ne les reintroduira jamais sans te rappeler leur sens.<\/p><div class=\"mga-mot\"><b>Mod\u00e8le local<\/b><div class=\"df\">Le fichier d&#039;intelligence artificielle t\u00e9l\u00e9charg\u00e9 sur ta propre machine, dont le calcul se fait enti\u00e8rement chez toi, sans que rien ne sorte.<\/div><div class=\"an\">C&#039;est le cuisinier qui habite chez toi, plut\u00f4t que le grand chef d&#039;un restaurant lointain que tu dois toujours appeler.<\/div><\/div><div class=\"mga-mot\"><b>LM Studio<\/b><div class=\"df\">Une application gratuite et visuelle qui fait tourner un mod\u00e8le sur ta machine et l&#039;expose par un point d&#039;acc\u00e8s local, id\u00e9ale pour d\u00e9buter.<\/div><div class=\"an\">Une cha\u00eene hi-fi tout-en-un avec de gros boutons : tu ins\u00e8res le disque, tu appuies sur lecture, et \u00e7a joue.<\/div><\/div><div class=\"mga-mot\"><b>Ollama<\/b><div class=\"df\">Un logiciel local l\u00e9ger, pilot\u00e9 surtout en ligne de commande, qui lance un mod\u00e8le et ouvre automatiquement un point d&#039;acc\u00e8s local sur ta machine.<\/div><div class=\"an\">Un bo\u00eetier discret qui reste branch\u00e9 en arri\u00e8re-plan et se met en route d\u00e8s que tu lui demandes, sans encombrer l&#039;espace.<\/div><\/div><div class=\"mga-mot\"><b>Quantification<\/b><div class=\"df\">La technique qui compresse un mod\u00e8le en r\u00e9duisant la pr\u00e9cision de ses nombres, pour qu&#039;il tienne dans une m\u00e9moire plus modeste, au prix d&#039;un peu de qualit\u00e9.<\/div><div class=\"an\">Plier soigneusement un grand plan pour qu&#039;il rentre dans ta poche : un peu moins net, mais transportable partout.<\/div><\/div><div class=\"mga-mot\"><b>M\u00e9moire unifi\u00e9e (RAM)<\/b><div class=\"df\">La m\u00e9moire partag\u00e9e d&#039;un Mac Apple, o\u00f9 le mod\u00e8le doit tenir en entier pour bien fonctionner ; elle d\u00e9cide quels mod\u00e8les ta machine peut faire tourner.<\/div><div class=\"an\">Le plan de travail de ta cuisine : petit, tu ne fais que de petits plats ; grand, tu pr\u00e9pares de grandes recettes.<\/div><\/div><div class=\"mga-mot\"><b>Point d&#039;acc\u00e8s local (API)<\/b><div class=\"df\">La porte de service qu&#039;ouvre LM Studio ou Ollama sur ta machine, \u00e0 une adresse locale, pour que d&#039;autres outils viennent utiliser ton mod\u00e8le sans passer par internet.<\/div><div class=\"an\">Une prise \u00e0 l&#039;arri\u00e8re de ta cha\u00eene hi-fi pour envoyer le son dans les autres pi\u00e8ces de la maison.<\/div><\/div><div class=\"mga-mot\"><b>Hors-ligne<\/b><div class=\"df\">Le fait de fonctionner sans aucune connexion internet ; une IA locale r\u00e9pond m\u00eame Wi-Fi coup\u00e9, ce qui est la preuve que le calcul se passe bien chez toi.<\/div><div class=\"an\">Le v\u00e9lo dans ton garage qui roule m\u00eame le jour o\u00f9 il n&#039;y a plus un seul taxi disponible dans toute la ville.<\/div><\/div><div class=\"mga-mot\"><b>Mod\u00e8le ouvert<\/b><div class=\"df\">Un mod\u00e8le librement t\u00e9l\u00e9chargeable et utilisable, comme les familles Llama, Qwen, Mistral, Gemma ou Phi, sur lesquelles repose l&#039;IA locale gratuite.<\/div><div class=\"an\">Une recette de cuisine publi\u00e9e et partag\u00e9e, que tu peux pr\u00e9parer chez toi autant de fois que tu veux, sans rien devoir \u00e0 personne.<\/div><\/div><\/div><div class=\"mga-reflexe\">Quand le quota tombe, je ne subis pas : je bascule sur mon IA locale, \u00e0 moi, gratuite et hors-ligne.<\/div><div class=\"mga-liv\"><h3>Ton livrable<\/h3><p>\u00c0 la fin de ce module, tu repars avec ton IA locale r\u00e9ellement install\u00e9e et fonctionnelle sur ton Mac (via LM Studio ou Ollama), test\u00e9e hors-ligne pour prouver qu'elle ne d\u00e9pend de personne. Tu repars aussi avec ta fiche personnelle quel mod\u00e8le pour MON Mac : la m\u00e9moire de ta machine, le palier qui te correspond, la taille de mod\u00e8le \u00e0 viser et une famille ouverte durable \u00e0 essayer. Concr\u00e8tement, tu tiens ton plan B souverain, pr\u00eat le jour o\u00f9 le quota tombe ou quand la confidentialit\u00e9 l'exige.<\/p><\/div><div class=\"mga-eval\" data-code=\"z3\"><div class=\"mga-eval-in\"><h3>Valider le module<\/h3><p>Tu as fait les ateliers et les quiz ? Valide le module.<\/p><button type=\"button\" class=\"mga-cta mga-eval-btn\">Je valide Z3<\/button><\/div><div class=\"mga-eval-done\" hidden><div class=\"badge\">Module valide<\/div><p>Bravo. Ce module est marque comme termin\u00e9, et ton badge est enregistr\u00e9.<\/p><\/div><\/div><div class=\"mga-final\" style=\"margin-top:8px\"><h2>Tu as install\u00e9 ton IA locale ? Passe \u00e0 la vitesse sup\u00e9rieure<\/h2><p>Ce chapitre est offert. Mais l'IA en local, c'est ton plan B : la vraie comp\u00e9tence se construit dans le parcours complet, de la d\u00e9couverte \u00e0 ton propre agent souverain.<\/p><div class=\"mga-fcta\"><a class=\"mga-cta\" href=\"\/academy\/a1\/\">Commencer gratuitement, Bloc D\u00e9couverte<\/a><a class=\"mga-cta ghost\" href=\"\/academy\/\">Voir le programme complet<\/a><a class=\"mga-cta ghost\" href=\"https:\/\/wa.me\/212620229114\">En parler sur WhatsApp<\/a><\/div><p class=\"mga-fnote\">Le Bloc D\u00e9couverte est 100% gratuit. Les blocs suivants s'ouvrent bloc par bloc, sans engagement.<\/p><\/div><div class=\"mga-step\" style=\"border-left-color:#128a4f\"><h3>Prochaine \u00e9tape &middot; BONUS 2<\/h3><p>Bonus avanc\u00e9 : le best-of du moment (skills, MCP, playbooks)<\/p><a class=\"mga-cta\" href=\"\/academy\/best-of-skills-mcp-playbooks\/\">Continuer vers BONUS 2<\/a><\/div><\/div><script>(function(){\n  document.querySelectorAll('.mga-q').forEach(function(q){q.querySelectorAll('.opt').forEach(function(b){b.addEventListener('click',function(){q.querySelectorAll('.opt').forEach(function(x){x.classList.remove('ok','no')});b.classList.add(b.getAttribute('data-good')==='1'?'ok':'no');try{localStorage.setItem('mga_'+q.getAttribute('data-q'),b.getAttribute('data-good'));}catch(e){}});});});\n  function call(ex,mode,input){return fetch('\/wp-json\/mga\/v1\/atelier',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({exercise:ex,mode:mode,input:input})}).then(function(r){return r.json().then(function(j){return {ok:r.ok,j:j};});});}\n  document.querySelectorAll('.mga-lab').forEach(function(lab){\n    var ex=lab.getAttribute('data-ex');\n    var ta=lab.querySelector('.mga-in'),o1=lab.querySelector('.mga-o1'),n1=lab.querySelector('.mga-n1'),cc=lab.querySelector('.cc .n');\n    if(ta&&cc){ta.addEventListener('input',function(){cc.textContent=ta.value.length;});}\n    function run(mode){var input=ta?ta.value.trim():'';if(mode!=='guide'&&!input){if(ta)ta.focus();return;}var bs=lab.querySelectorAll('button');bs.forEach(function(b){b.disabled=true;});o1.hidden=false;o1.innerHTML='<span class=\"who\">Le mod\u00e8le<\/span>...';if(n1)n1.hidden=true;\n      call(ex,mode,input).then(function(x){if(!x.ok){o1.innerHTML='<span class=\"who\">Le mod\u00e8le<\/span>'+((x.j&&x.j.error)||'Indisponible.');}else{o1.innerHTML='<span class=\"who\">Le mod\u00e8le r\u00e9pond<\/span>'+((x.j.output||'(r\u00e9ponse vide)'));if(mode==='guide'&&n1){n1.hidden=false;n1.textContent=\"Tu vois ? Sur ce terrain, il atteint sa limite : il ne sait pas, ou il invente. C'est exactement ce qu'on apprend \\u00e0 rep\\u00e9rer et \\u00e0 corriger.\";}}}).catch(function(){o1.innerHTML='<span class=\"who\">Le mod\u00e8le<\/span>Erreur r\u00e9seau, reessaie.';}).finally(function(){bs.forEach(function(b){b.disabled=false;});});}\n    var t=lab.querySelector('.mga-try'),g=lab.querySelector('.mga-guide'),cmp=lab.querySelector('.mga-compare');\n    if(t)t.addEventListener('click',function(){run('libre');});\n    if(g)g.addEventListener('click',function(){run('guide');});\n    if(cmp){cmp.addEventListener('click',function(){var input=ta?ta.value.trim():'';if(!input){if(ta)ta.focus();return;}var box=lab.querySelector('.mga-cmp'),oL=lab.querySelector('.mga-oL'),oR=lab.querySelector('.mga-oR');box.hidden=false;cmp.disabled=true;oL.innerHTML='<span class=\"who\">Ton prompt<\/span>...';oR.innerHTML='<span class=\"who\">Le prompt pro<\/span>en attente...';\n      call(ex,'libre',input).then(function(a){oL.innerHTML='<span class=\"who\">Ton prompt<\/span>'+((a.j&&(a.j.output||a.j.error))||'');oR.innerHTML='<span class=\"who\">Le prompt pro : r\u00f4le + contexte + t\u00e2che + format<\/span>...';return call(ex,'guide','');}).then(function(b){oR.innerHTML='<span class=\"who\">Le prompt pro : r\u00f4le + contexte + t\u00e2che + format<\/span>'+((b.j&&(b.j.output||b.j.error))||'');if(n1){n1.hidden=false;n1.textContent=\"M\u00eame mod\u00e8le, m\u00eame serveur. Seul le prompt a change. Voil\u00e0 pourquoi savoir prompter est une vraie comp\u00e9tence.\";}}).catch(function(){oR.innerHTML='<span class=\"who\">Le prompt pro<\/span>Erreur r\u00e9seau.';}).finally(function(){cmp.disabled=false;});});}\n  });\n})();<\/script>\n<script>\n(function(){\n  function esc(s){var d=document.createElement('div');d.textContent=(s==null?'':s);return d.innerHTML;}\n  function call(ex,mode,input,opts){opts=opts||{};var b={exercise:ex,mode:mode,input:input||''};if(opts.temperature!=null)b.temperature=opts.temperature;if(opts.maxTokens!=null)b.maxTokens=opts.maxTokens;\n    return fetch('\/wp-json\/mga\/v1\/atelier',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify(b)}).then(function(r){return r.json().then(function(j){return{ok:r.ok,j:j};});}).catch(function(){return{ok:false,j:{error:'Erreur r\u00e9seau, reessaie.'}};});}\n  function lget(){try{return JSON.parse(localStorage.getItem('mga_lib')||'[]');}catch(e){return[];}}\n  function ladd(it){try{var a=lget();a.unshift(it);localStorage.setItem('mga_lib',JSON.stringify(a.slice(0,50)));}catch(e){}renderLibs();}\n  function done(code){try{var m=JSON.parse(localStorage.getItem('mga_done')||'{}');m[code]=1;localStorage.setItem('mga_done',JSON.stringify(m));}catch(e){}}\n  function isDone(code){try{return !!(JSON.parse(localStorage.getItem('mga_done')||'{}')[code]);}catch(e){return false;}}\n  function counter(box){var ta=box.querySelector('.mga-in'),cc=box.querySelector('.cc .n');if(ta&&cc){ta.addEventListener('input',function(){cc.textContent=ta.value.length;});}}\n  function wdata(el){try{return JSON.parse(el.querySelector('script.mga-data').textContent);}catch(e){return null;}}\n\n  document.querySelectorAll('.mga-forge').forEach(function(el){\n    counter(el);\n    var ta=el.querySelector('.mga-in'),ru=el.querySelector('.mga-rubric'),out=el.querySelector('.mga-o1'),sr=el.querySelector('.mga-saverow');\n    el.querySelectorAll('.chip').forEach(function(c){c.addEventListener('click',function(){ta.value=c.getAttribute('data-load');ta.focus();var cc=el.querySelector('.cc .n');if(cc)cc.textContent=ta.value.length;});});\n    function rubric(t){t=(t||'').toLowerCase().normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'');return{\n      'Un r\u00f4le':\/\\b(tu es|agis comme|en tant que|ton role|comporte-toi|tu joues)\\b\/.test(t),\n      'Un contexte':(t.length>140)||\/\\b(contexte|situation|il s agit|pour un|pour une|notre|mon |ma |mes |client|entreprise|facture|projet|dossier)\\b\/.test(t)||\/[0-9]\/.test(t),\n      'Une t\u00e2che claire':\/\\b(redige|r\u00e9sum\u00e9|traduis|ecris|liste|explique|corrige|analyse|classe|g\u00e9n\u00e8re|propose|reformule|compare|calcule|trie)\\b\/.test(t),\n      'Un format':\/\\b(ligne|lignes|mot|mots|liste|tableau|point|points|objet|format|paragraphe|puces|colonnes|json|phrase|phrases)\\b\/.test(t),\n      'Une contrainte':\/\\b(max|maximum|sans|ne pas|uniquement|seulement|en francais|en anglais|courtois|ferme|formel|au plus|jusqu|court|bref|pr\u00e9cis)\\b\/.test(t)\n    };}\n    el.querySelector('.mga-analyze').addEventListener('click',function(){\n      var t=ta.value.trim();if(!t){ta.focus();return;}\n      var r=rubric(t),keys=Object.keys(r),ok=keys.filter(function(k){return r[k];}).length;\n      var tips={'Un r\u00f4le':'Ajoute qui est l IA : Tu es un...','Un contexte':'Donne ta situation : chiffres, client, projet.','Une t\u00e2che claire':'Un verbe d action pr\u00e9cis : r\u00e9dige, r\u00e9sum\u00e9, classe...','Un format':'Pr\u00e9cise la forme : nombre de lignes, liste, objet...','Une contrainte':'Cadre : longueur max, ton, langue, ce qu il faut \u00e9viter.'};\n      var h='<div class=\"score\">Structure : '+ok+'\/5'+(ok>=4?' - solide':' - a renforcer')+'<\/div>';\n      keys.forEach(function(k){h+='<div class=\"r\"><span class=\"m '+(r[k]?'ok2':'no2')+'\">'+(r[k]?'OK':'X')+'<\/span><span>'+k+(r[k]?'':' - '+esc(tips[k]))+'<\/span><\/div>';});\n      ru.innerHTML=h;ru.hidden=false;\n      out.hidden=false;out.innerHTML='<span class=\"who\">L IA ex\u00e9cute ton prompt<\/span>...';\n      var btn=this;btn.disabled=true;\n      call('b1_run','libre',t,{maxTokens:400}).then(function(x){out.innerHTML='<span class=\"who\">L IA ex\u00e9cute ton prompt<\/span>'+esc((x.j&&(x.j.output||x.j.error))||'');if(ok>=4){sr.hidden=false;}}).finally(function(){btn.disabled=false;});\n    });\n    el.querySelector('.mga-save').addEventListener('click',function(){var t=ta.value.trim();if(!t)return;ladd({type:'Prompt',title:t.slice(0,60),body:t,ts:Date.now()});el.querySelector('.saved').hidden=false;});\n  });\n\n  document.querySelectorAll('.mga-fewshot').forEach(function(el){\n    var tog=el.querySelector('.mga-fs-toggle'),inp=el.querySelector('.mga-in2'),out=el.querySelector('.mga-o1');\n    el.querySelector('.mga-fs-run').addEventListener('click',function(){\n      var msg=inp.value.trim();if(!msg)return;\n      var ex=\"Message : Livraison rapide, je recommande. -> positif\\nMessage : Colis casse et service injoignable. -> n\u00e9gatif\\nMessage : \u00c7a fait le job, sans plus. -> neutre\\n\";\n      var user=(tog.checked?ex:'')+'Message : '+msg+' -> ';\n      out.hidden=false;out.innerHTML='<span class=\"who\">'+(tog.checked?'Avec 3 exemples':'Sans exemple')+'<\/span>...';\n      var btn=this;btn.disabled=true;\n      call('b1_fewshot','libre',user,{maxTokens:60}).then(function(x){out.innerHTML='<span class=\"who\">'+(tog.checked?'Avec 3 exemples':'Sans exemple')+'<\/span>'+esc((x.j&&(x.j.output||x.j.error))||'');}).finally(function(){btn.disabled=false;});\n    });\n  });\n\n  document.querySelectorAll('.mga-temp').forEach(function(el){\n    var rg=el.querySelector('.mga-temp-range'),val=el.querySelector('.mga-temp-val'),out=el.querySelector('.mga-temp-out');\n    function lab(v){return v<=0.3?'prudente':(v<=0.6?'\u00e9quilibr\u00e9e':'cr\u00e9ative');}\n    rg.addEventListener('input',function(){val.innerHTML='Temp\u00e9rature : <b>'+rg.value+'<\/b> <span class=\"tl\">'+lab(parseFloat(rg.value))+'<\/span>';});\n    el.querySelector('.mga-temp-run').addEventListener('click',function(){\n      var t=parseFloat(rg.value);out.innerHTML='';var btn=this;btn.disabled=true;var seq=Promise.resolve();\n      [0,1,2].forEach(function(i){seq=seq.then(function(){var d=document.createElement('div');d.className='mga-out';d.innerHTML='<span class=\"who\">Essai '+(i+1)+' (temp '+t+')<\/span>...';out.appendChild(d);\n        return call('b1_temp','guide','',{temperature:t,maxTokens:40}).then(function(x){d.innerHTML='<span class=\"who\">Essai '+(i+1)+' (temp '+t+')<\/span>'+esc((x.j&&(x.j.output||x.j.error))||'');});});});\n      seq.finally(function(){btn.disabled=false;});\n    });\n  });\n\n  document.querySelectorAll('.mga-tools').forEach(function(el){\n    var data=wdata(el)||[];var host=el.querySelector('.mga-host');var cur='all';\n    var tags=[['all','Tout'],['souverain','Souverain'],['confidentialit\u00e9','Confidentialit\u00e9'],['g\u00e9n\u00e9ral','G\u00e9n\u00e9ral'],['code','Code'],['bureautique','Bureautique'],['r\u00e9daction','R\u00e9daction']];\n    host.innerHTML='<div class=\"mga-tf\">'+tags.map(function(t){return '<button data-t=\"'+t[0]+'\"'+(t[0]==='all'?' class=\"on\"':'')+'>'+t[1]+'<\/button>';}).join('')+'<\/div><div class=\"mga-tgrid\"><\/div><p class=\"mga-tnote\" style=\"color:#5A6B80;font-size:12px;margin:12px 0 0\">Rep\u00e8res g\u00e9n\u00e9raux, \u00e0 jour au moment de l ecriture. V\u00e9rifie toujours les prix courants.<\/p>';\n    var grid=host.querySelector('.mga-tgrid');\n    function draw(){grid.innerHTML=data.filter(function(d){return cur==='all'||(d.tags||[]).indexOf(cur)>=0;}).map(function(d){var sv=d.souv==='Oui'?'y':(d.souv==='Non'?'n':'p');return '<div class=\"mga-tcard\"><h4>'+esc(d.nom)+'<\/h4><div class=\"kv\"><b>Forts :<\/b> '+esc(d.forts)+'<\/div><div class=\"kv\"><b>Confidentialit\u00e9 :<\/b> '+esc(d.confid)+'<\/div><div class=\"kv\"><b>Prix :<\/b> '+esc(d.prix)+'<\/div><div class=\"kv\"><b>Quand :<\/b> '+esc(d.quand)+'<\/div><span class=\"sv '+sv+'\">Souverain : '+esc(d.souv)+'<\/span><\/div>';}).join('');}\n    host.querySelectorAll('.mga-tf button').forEach(function(b){b.addEventListener('click',function(){cur=b.getAttribute('data-t');host.querySelectorAll('.mga-tf button').forEach(function(x){x.classList.remove('on');});b.classList.add('on');draw();});});\n    draw();\n  });\n\n  document.querySelectorAll('.mga-decision').forEach(function(el){\n    var data=wdata(el)||[];var host=el.querySelector('.mga-host');var i=0,score=0;\n    function draw(){if(i>=data.length){host.innerHTML='<div class=\"dscore\">Termin\u00e9 : '+score+' \/ '+data.length+' bons choix.<\/div>';return;}\n      var q=data[i];host.innerHTML='<div class=\"dprog\">Situation '+(i+1)+' \/ '+data.length+'<\/div><div class=\"dq\">'+esc(q.q)+'<\/div>'+q.options.map(function(o,k){return '<button class=\"dopt\" data-k=\"'+k+'\">'+esc(o.t)+'<\/button>';}).join('')+'<div class=\"dwhy\" hidden><\/div><div class=\"dnext\" hidden><button class=\"mga-cta dnb\">Suivant<\/button><\/div>';\n      host.querySelectorAll('.dopt').forEach(function(b){b.addEventListener('click',function(){var o=q.options[+b.getAttribute('data-k')];host.querySelectorAll('.dopt').forEach(function(x){x.disabled=true;});b.classList.add(o.ok?'ok':'no');if(o.ok)score++;var w=host.querySelector('.dwhy');w.textContent=(o.ok?'Bon choix. ':'Pas ideal. ')+o.why;w.hidden=false;host.querySelector('.dnext').hidden=false;});});\n      host.querySelector('.dnb').addEventListener('click',function(){i++;draw();});\n    }\n    draw();\n  });\n\n  document.querySelectorAll('.mga-workbench').forEach(function(el){\n    var tasks=wdata(el)||[];var host=el.querySelector('.mga-host');var cur=0;\n    host.innerHTML='<div class=\"mga-wtabs\">'+tasks.map(function(t,k){return '<button data-k=\"'+k+'\"'+(k===0?' class=\"on\"':'')+'>'+esc(t.label)+'<\/button>';}).join('')+'<\/div><div class=\"mga-wbody\"><\/div>';\n    var body=host.querySelector('.mga-wbody');\n    function draw(){var t=tasks[cur];var h='<div class=\"mga-wgain\">Temps gagne estime : '+esc(t.gain)+'<\/div><div class=\"mga-wf\">';\n      t.fields.forEach(function(fl){h+='<label>'+esc(fl.label)+'<\/label>'+(fl.big?'<textarea data-n=\"'+fl.name+'\" placeholder=\"'+esc(fl.ph)+'\"><\/textarea>':'<input type=\"text\" data-n=\"'+fl.name+'\" placeholder=\"'+esc(fl.ph)+'\" value=\"'+esc(fl.def||'')+'\">');});\n      h+='<\/div><div class=\"row\" style=\"margin-top:12px\"><button class=\"mga-cta mga-wrun\">Produire avec l IA<\/button><\/div><div class=\"mga-wout\" hidden><label style=\"font-weight:700;color:#0F2237;display:block;margin-bottom:6px\">Ton livrable (\u00e9ditable) :<\/label><textarea class=\"mga-wres\"><\/textarea><div class=\"row\" style=\"display:flex;gap:10px;margin-top:10px\"><button class=\"mga-wexport\" style=\"background:transparent;color:#0F2237;border:1px solid var(--gold);border-radius:9px;padding:10px 16px;cursor:pointer;font:inherit;font-weight:700\">Exporter (.txt)<\/button><button class=\"mga-wsave\" style=\"background:transparent;color:#0F2237;border:1px solid var(--gold);border-radius:9px;padding:10px 16px;cursor:pointer;font:inherit;font-weight:700\">Sauver dans ma biblio<\/button><\/div><\/div>';\n      body.innerHTML=h;\n      body.querySelector('.mga-wrun').addEventListener('click',function(){\n        var vals={};body.querySelectorAll('[data-n]').forEach(function(f){vals[f.getAttribute('data-n')]=f.value.trim();});\n        var prompt=t.tpl.replace(\/\\{(\\w+)\\}\/g,function(_,n){return vals[n]||('['+n+']');});\n        var wo=body.querySelector('.mga-wout'),res=body.querySelector('.mga-wres');wo.hidden=false;res.value='...';var btn=this;btn.disabled=true;\n        call(t.key,'libre',prompt,{maxTokens:500}).then(function(x){res.value=(x.j&&(x.j.output||x.j.error))||'';}).finally(function(){btn.disabled=false;});\n      });\n      body.querySelector('.mga-wexport').addEventListener('click',function(){var v=body.querySelector('.mga-wres').value;var bl=new Blob([v],{type:'text\/plain'});var a=document.createElement('a');a.href=URL.createObjectURL(bl);a.download='livrable-'+t.key+'.txt';a.click();});\n      body.querySelector('.mga-wsave').addEventListener('click',function(){var v=body.querySelector('.mga-wres').value;if(!v)return;ladd({type:t.label,title:t.label+' produit',body:v,ts:Date.now()});});\n    }\n    host.querySelectorAll('.mga-wtabs button').forEach(function(b){b.addEventListener('click',function(){cur=+b.getAttribute('data-k');host.querySelectorAll('.mga-wtabs button').forEach(function(x){x.classList.remove('on');});b.classList.add('on');draw();});});\n    draw();\n  });\n\n  document.querySelectorAll('.mga-checklist').forEach(function(el){\n    var d=wdata(el)||[];var items=Array.isArray(d)?d:(d.items||[]);var host=el.querySelector('.mga-host');var KEY='mga_ck_'+((!Array.isArray(d)&&d.ck)?d.ck:'x');\n    var st={};try{st=JSON.parse(localStorage.getItem(KEY)||'{}');}catch(e){}\n    function save(){try{localStorage.setItem(KEY,JSON.stringify(st));}catch(e){}}\n    function draw(){var n=Object.keys(st).filter(function(k){return st[k];}).length;\n      var h='<div class=\"mga-cprog\">'+n+' \/ '+items.length+' t\u00e2ches d\u00e9l\u00e9gu\u00e9es<\/div>';\n      items.forEach(function(it,k){h+='<div class=\"ci'+(st[k]?' on':'')+'\" data-k=\"'+k+'\"><span class=\"bx\"><\/span><span>'+esc(it)+'<\/span><\/div>';});\n      h+='<div class=\"row\" style=\"margin-top:12px\"><button class=\"mga-ckexp\" style=\"background:transparent;color:#0F2237;border:1px solid var(--gold);border-radius:9px;padding:10px 16px;cursor:pointer;font:inherit;font-weight:700\">Exporter mon playbook<\/button><\/div>';\n      host.innerHTML=h;\n      host.querySelectorAll('.ci').forEach(function(c){c.addEventListener('click',function(){var k=c.getAttribute('data-k');st[k]=!st[k];save();draw();});});\n      host.querySelector('.mga-ckexp').addEventListener('click',function(){var txt='Mon playbook IA - t\u00e2ches \u00e0 d\u00e9l\u00e9guer\\n\\n'+items.map(function(it,k){return (st[k]?'[x] ':'[ ] ')+it;}).join('\\n');var bl=new Blob([txt],{type:'text\/plain'});var a=document.createElement('a');a.href=URL.createObjectURL(bl);a.download='mon-playbook-ia.txt';a.click();});\n    }\n    draw();\n  });\n\n  document.querySelectorAll('.mga-hunt').forEach(function(el){\n    var d=wdata(el)||{};var host=el.querySelector('.mga-host');var segs=d.segments||[];var sel={};\n    host.innerHTML='<p class=\"hi\">'+esc(d.intro)+'<\/p>'+segs.map(function(sg,k){return '<button class=\"mga-hseg\" data-k=\"'+k+'\">'+esc(sg.t)+'<\/button>';}).join('')+'<div class=\"row\" style=\"margin-top:12px\"><button class=\"mga-cta mga-hverify\">V\u00e9rifier<\/button><\/div><div class=\"mga-hres\" style=\"margin-top:10px;font-weight:700;color:#0F2237\" hidden><\/div>';\n    host.querySelectorAll('.mga-hseg').forEach(function(b){b.addEventListener('click',function(){var k=b.getAttribute('data-k');sel[k]=!sel[k];b.classList.toggle('sel');});});\n    host.querySelector('.mga-hverify').addEventListener('click',function(){var good=0,bad=0;\n      segs.forEach(function(sg,k){var b=host.querySelector('.mga-hseg[data-k=\"'+k+'\"]');b.classList.remove('sel');b.disabled=true;\n        if(sg.bad){bad++;b.classList.add('bad');if(sel[k])good++;b.innerHTML=esc(sg.t)+'<span class=\"wy\">A rejeter : '+esc(sg.why)+'<\/span>';}\n        else{b.classList.add('good');b.innerHTML=esc(sg.t)+'<span class=\"wy\">Correct : '+esc(sg.why)+'<\/span>';}});\n      var res=host.querySelector('.mga-hres');res.hidden=false;res.textContent='Tu as rep\u00e8re '+good+' erreur(s) sur '+bad+'. '+(good===bad?'Sans faute, oeil de pro.':'Regarde en rouge celles que tu as manquees.');\n      this.disabled=true;});\n  });\n\n  document.querySelectorAll('.mga-critique').forEach(function(el){\n    counter(el);var ta=el.querySelector('.mga-in'),oA=el.querySelector('.mga-oA'),oC=el.querySelector('.mga-oC'),bc=el.querySelector('.mga-selfcrit');var lastAns='';\n    el.querySelector('.mga-ask').addEventListener('click',function(){var t=ta.value.trim();if(!t)return;oA.hidden=false;oA.innerHTML='<span class=\"who\">L IA r\u00e9pond<\/span>...';oC.hidden=true;var btn=this;btn.disabled=true;bc.disabled=true;\n      call('b4_answer','libre',t,{maxTokens:280}).then(function(x){lastAns=(x.j&&x.j.output)||'';oA.innerHTML='<span class=\"who\">L IA r\u00e9pond<\/span>'+esc(lastAns||(x.j&&x.j.error)||'');if(lastAns)bc.disabled=false;}).finally(function(){btn.disabled=false;});});\n    bc.addEventListener('click',function(){if(!lastAns)return;oC.hidden=false;oC.innerHTML='<span class=\"who\">L IA se critique<\/span>...';var btn=this;btn.disabled=true;\n      call('b4_critique','libre',lastAns,{maxTokens:280}).then(function(x){oC.innerHTML='<span class=\"who\">L IA se critique<\/span>'+esc((x.j&&(x.j.output||x.j.error))||'');}).finally(function(){btn.disabled=false;});});\n  });\n\n  document.querySelectorAll('.mga-redact').forEach(function(el){\n    var d=wdata(el)||{};var host=el.querySelector('.mga-host');var toks=d.tokens||[];var red={};\n    host.innerHTML='<p class=\"hi\" style=\"color:#33475b;line-height:1.6\">'+esc(d.intro)+'<\/p><div class=\"mga-doc\"><b>'+esc(d.title)+'<\/b><br>'+toks.map(function(t,k){return '<span class=\"mga-tok'+(t.pii?' pii':'')+'\" data-k=\"'+k+'\">'+esc(t.t)+'<\/span>';}).join('')+'<\/div><div class=\"row\"><button class=\"mga-cta mga-rverify\">V\u00e9rifier<\/button><\/div><div class=\"mga-rres\" style=\"margin-top:10px;font-weight:700;color:#0F2237\" hidden><\/div><div class=\"mga-rnote\" style=\"margin-top:8px;color:#33475b;line-height:1.6\" hidden><\/div>';\n    host.querySelectorAll('.mga-tok').forEach(function(sp){sp.addEventListener('click',function(){var k=sp.getAttribute('data-k');red[k]=!red[k];sp.classList.toggle('red');});});\n    host.querySelector('.mga-rverify').addEventListener('click',function(){var piiN=0,hit=0,over=0;\n      toks.forEach(function(t,k){var sp=host.querySelector('.mga-tok[data-k=\"'+k+'\"]');if(t.pii){piiN++;if(red[k]){hit++;sp.classList.remove('red');sp.classList.add('hit');}else{sp.classList.add('miss');}}else{if(red[k]){over++;sp.classList.remove('red');}}sp.style.cursor='default';});\n      var res=host.querySelector('.mga-rres');res.hidden=false;res.textContent='Donn\u00e9es personnelles caviard\u00e9es : '+hit+' \/ '+piiN+(over?(' - '+over+' \u00e9l\u00e9ment(s) non sensible(s) caviard\u00e9(s) inutilement'):'')+'.';\n      var note=host.querySelector('.mga-rnote');note.hidden=false;note.innerHTML=(hit===piiN?'Parfait. ':'Il en reste (surlignees en rouge). ')+'Le r\u00e9flexe le plus sur : plut\u00f4t que de caviarder \u00e0 la main, utilise une IA souveraine o\u00f9 rien ne sort de chez toi.';\n      this.disabled=true;});\n  });\n\n  function renderLibs(){document.querySelectorAll('.mga-lib-list').forEach(function(list){var a=lget();if(!a.length){list.innerHTML='<div class=\"mga-lib-item\">Rien encore. Sauve un prompt ou un livrable pour le retrouver ici.<\/div>';return;}list.innerHTML=a.map(function(it){return '<div class=\"mga-lib-item\"><b>'+esc(it.type)+' :<\/b> '+esc(it.title)+'<\/div>';}).join('');});}\n  document.querySelectorAll('.mga-lib-export').forEach(function(b){b.addEventListener('click',function(){var a=lget();var txt=a.map(function(it){return '=== '+it.type+' : '+it.title+' ===\\n'+it.body+'\\n';}).join('\\n');var bl=new Blob([txt||'Bibliotheque vide'],{type:'text\/plain'});var u=document.createElement('a');u.href=URL.createObjectURL(bl);u.download='ma-bibliotheque-mogacode.txt';u.click();});});\n  document.querySelectorAll('.mga-lib-clear').forEach(function(b){b.addEventListener('click',function(){try{localStorage.removeItem('mga_lib');}catch(e){}renderLibs();});});\n  renderLibs();\n\n  document.querySelectorAll('.mga-eval').forEach(function(el){\n    var code=el.getAttribute('data-code');\n    if(isDone(code)){el.querySelector('.mga-eval-in').hidden=true;el.querySelector('.mga-eval-done').hidden=false;}\n    el.querySelector('.mga-eval-btn').addEventListener('click',function(){done(code);el.querySelector('.mga-eval-in').hidden=true;el.querySelector('.mga-eval-done').hidden=false;try{fetch('\/wp-json\/mga\/v1\/progress',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({code:code})}).catch(function(){});}catch(e){}});\n  });\n\n  function apiRender(host,status,obj){host.hidden=false;host.innerHTML='<div class=\"mga-apistatus '+(status>=200&&status<300?'ok':'ko')+'\">HTTP '+status+'<\/div><pre class=\"mga-json\">'+esc(JSON.stringify(obj,null,2))+'<\/pre>';}\n  document.querySelectorAll('.mga-apiexplorer').forEach(function(el){\n    var host=el.querySelector('.mga-apiout');\n    el.querySelectorAll('button[data-ep]').forEach(function(b){b.addEventListener('click',function(){\n      host.hidden=false;host.innerHTML='<div class=\"mga-apistatus\">...<\/div>';var ep=b.getAttribute('data-ep');\n      fetch('\/wp-json\/mga\/v1\/demo?endpoint='+encodeURIComponent(ep)).then(function(r){return r.json().then(function(j){apiRender(host,r.status,j);});}).catch(function(){host.innerHTML='<div class=\"mga-apistatus ko\">Erreur reseau<\/div>';});\n    });});\n  });\n  document.querySelectorAll('.mga-console').forEach(function(el){\n    var host=el.querySelector('.mga-apiout');\n    el.querySelectorAll('button[data-sc]').forEach(function(b){b.addEventListener('click',function(){\n      var sc=b.getAttribute('data-sc');host.hidden=false;host.innerHTML='<div class=\"mga-apistatus\">...<\/div>';\n      fetch('\/wp-json\/mga\/v1\/demo?scenario='+encodeURIComponent(sc)).then(function(r){return r.json().then(function(j){apiRender(host,r.status,j);\n        var tip={ok:\"Code 200 : tout va bien, on lit la r\u00e9ponse.\",badkey:\"Code 401 : cl\u00e9 invalide. Le pro affiche un message clair, il ne plante pas.\",quota:\"Code 429 : quota d\u00e9pass\u00e9. Le pro attend, puis reessaie plus tard.\",timeout:\"Code 504 : trop lent. Le pro avait mis un timeout et g\u00e8re l abandon proprement.\"}[sc];\n        if(tip){var d=document.createElement('p');d.className='mga-apitip';d.textContent=tip;host.appendChild(d);}});}).catch(function(){host.innerHTML='<div class=\"mga-apistatus ko\">Erreur reseau, ton programme doit aussi g\u00e9rer ce cas.<\/div>';});\n    });});\n  });\n  document.querySelectorAll('.mga-cleaner').forEach(function(el){\n    counter(el);var ta=el.querySelector('.mga-in'),fmt=el.querySelector('.mga-fmt'),out=el.querySelector('.mga-o1');\n    el.querySelector('.mga-clean-run').addEventListener('click',function(){var t=ta.value.trim();if(!t){ta.focus();return;}\n      var user='Format demande : '+fmt.value+'. Transforme ce texte en donn\u00e9es propres et structurees au format '+fmt.value+', une entree par personne ou objet. Texte : '+t;\n      out.hidden=false;out.innerHTML='<span class=\"who\">Donn\u00e9es structurees ('+fmt.value+')<\/span>...';var btn=this;btn.disabled=true;\n      call('c2_clean','libre',user,{maxTokens:500}).then(function(x){out.innerHTML='<span class=\"who\">Donn\u00e9es structurees ('+fmt.value+')<\/span>'+esc((x.j&&(x.j.output||x.j.error))||'');}).finally(function(){btn.disabled=false;});\n    });\n  });\n  document.querySelectorAll('.mga-costcalc').forEach(function(el){\n    var res=el.querySelector('.mga-cc-res');\n    function num(sel){var v=parseFloat(el.querySelector(sel).value);return isFinite(v)&&v>=0?v:0;}\n    function calc(){var wi=num('.mga-cc-in'),wo=num('.mga-cc-out'),price=num('.mga-cc-price'),n=num('.mga-cc-n');\n      var tok=Math.round((wi+wo)*1.3);var perCall=tok\/1000*price;var total=perCall*n;\n      var ctx=(wi*1.3>8000)?'<p class=\"mga-ccwarn\">Attention : ton entree approche ou d\u00e9passe une fen\u00eatre de contexte courante (environ 8000 tokens). Il faudrait decouper le texte.<\/p>':'';\n      res.innerHTML='<div class=\"mga-ccline\"><span>Tokens par appel<\/span><b>'+tok+'<\/b><\/div><div class=\"mga-ccline\"><span>Co\u00fbt par appel<\/span><b>'+perCall.toFixed(4)+'<\/b><\/div><div class=\"mga-ccline big\"><span>Co\u00fbt total ('+n+' appels)<\/span><b>'+total.toFixed(2)+'<\/b><\/div>'+ctx;\n    }\n    el.querySelectorAll('input').forEach(function(i){i.addEventListener('input',calc);});calc();\n  });\n\n  document.querySelectorAll('.mga-depcalc').forEach(function(el){\n    var res=el.querySelector('.mga-cc-res');\n    function num(sel){var v=parseFloat(el.querySelector(sel).value);return isFinite(v)&&v>=0?v:0;}\n    function calc(){var n=num('.mga-dc-n'),p=num('.mga-dc-p'),mo=num('.mga-dc-m');var perMonth=n*p;var total=perMonth*mo;var perYear=perMonth*12;\n      res.innerHTML='<div class=\"mga-ccline\"><span>Co\u00fbt par mois<\/span><b>'+perMonth.toFixed(2)+'<\/b><\/div><div class=\"mga-ccline\"><span>Co\u00fbt par an<\/span><b>'+perYear.toFixed(2)+'<\/b><\/div><div class=\"mga-ccline big\"><span>Loue sur '+mo+' mois<\/span><b>'+total.toFixed(2)+'<\/b><\/div><div class=\"mga-ccline\"><span>Possede (code a toi)<\/span><b>co\u00fbt unique, puis 0 par mois<\/b><\/div>';\n    }\n    el.querySelectorAll('input').forEach(function(i){i.addEventListener('input',calc);});calc();\n  });\n  document.querySelectorAll('.mga-scriptlab').forEach(function(el){\n    counter(el);var ta=el.querySelector('.mga-in'),out=el.querySelector('.mga-o1');\n    el.querySelector('.mga-script-run').addEventListener('click',function(){var t=ta.value.trim();if(!t){ta.focus();return;}\n      out.hidden=false;out.innerHTML='<span class=\"who\">Ton script (commente)<\/span>...';var btn=this;btn.disabled=true;\n      call('d3_script','libre','T\u00e2che a automatiser : '+t,{maxTokens:500}).then(function(x){out.innerHTML='<span class=\"who\">Ton script (commente)<\/span>'+esc((x.j&&(x.j.output||x.j.error))||'');}).finally(function(){btn.disabled=false;});\n    });\n  });\n  document.querySelectorAll('.mga-roi').forEach(function(el){\n    var res=el.querySelector('.mga-cc-res');\n    function num(sel){var v=parseFloat(el.querySelector(sel).value);return isFinite(v)&&v>=0?v:0;}\n    function calc(){var f=num('.mga-roi-f'),t=num('.mga-roi-t'),p=num('.mga-roi-p');var perDay=f*t,perWeek=perDay*5,score=f*t*p;var v,c;\n      if(score>=200){v='Priorit\u00e9 absolue : automatise \u00e7a en premier.';c='hot';}\n      else if(score>=60){v='Bon candidat : \u00e0 automatiser bient\u00f4t.';c='warm';}\n      else if(score>=15){v='Int\u00e9ressant : mets-le dans ta file.';c='mid';}\n      else{v='Plus tard : le gain ne justifie pas l\\'effort maintenant.';c='cold';}\n      res.innerHTML='<div class=\"mga-ccline\"><span>Temps par jour<\/span><b>'+perDay.toFixed(0)+' min<\/b><\/div><div class=\"mga-ccline\"><span>Temps par semaine<\/span><b>'+Math.round(perWeek)+' min ('+(perWeek\/60).toFixed(1)+' h)<\/b><\/div><div class=\"mga-ccline big\"><span>Score ROI<\/span><b>'+score.toFixed(0)+'<\/b><\/div><div class=\"mga-roi-verdict '+c+'\">'+v+'<\/div>';}\n    el.querySelectorAll('input,select').forEach(function(i){i.addEventListener('input',calc);});calc();\n  });\n  document.querySelectorAll('.mga-carto').forEach(function(el){\n    var body=el.querySelector('.mga-carto-rows'),res=el.querySelector('.mga-carto-res');\n    var seed=[['Recevoir et v\u00e9rifier la commande',5,20],['Cr\u00e9er la facture',4,20],['Envoyer l\\'accus\u00e9 au client',3,20]];\n    function row(name,min,freq){var d=document.createElement('div');d.className='mga-carto-row';\n      d.innerHTML='<input class=\"cn\" type=\"text\" placeholder=\"\u00c9tape\">'+'<input class=\"cm\" type=\"number\" min=\"0\" placeholder=\"min\">'+'<input class=\"cf\" type=\"number\" min=\"0\" placeholder=\"x\/jour\">'+'<button type=\"button\" class=\"cd\" title=\"Retirer\">x<\/button>';\n      body.appendChild(d);d.querySelector('.cn').value=name||'';if(min!=null)d.querySelector('.cm').value=min;if(freq!=null)d.querySelector('.cf').value=freq;\n      d.querySelector('.cd').addEventListener('click',function(){d.remove();calc();});\n      d.querySelectorAll('input').forEach(function(i){i.addEventListener('input',calc);});}\n    function calc(){var rows=[].slice.call(body.querySelectorAll('.mga-carto-row'));var total=0,max=-1,maxN='';var L='';\n      rows.forEach(function(r){var n=r.querySelector('.cn').value||'(\u00e9tape)';var m=parseFloat(r.querySelector('.cm').value)||0;var f=parseFloat(r.querySelector('.cf').value)||0;var dd=m*f;total+=dd;if(dd>max){max=dd;maxN=n;}L+='<div class=\"mga-ccline\"><span>'+esc(n)+'<\/span><b>'+dd.toFixed(0)+' min\/j<\/b><\/div>';});\n      var g=max>0?'<div class=\"mga-roi-verdict hot\">Ton goulot probable : <b>'+esc(maxN)+'<\/b> ('+max.toFixed(0)+' min\/jour). Commence par automatiser celle-l\u00e0.<\/div>':'';\n      res.innerHTML=L+'<div class=\"mga-ccline big\"><span>Total du process<\/span><b>'+total.toFixed(0)+' min\/jour ('+(total\/60).toFixed(1)+' h)<\/b><\/div>'+g;}\n    seed.forEach(function(sd){row(sd[0],sd[1],sd[2]);});\n    el.querySelector('.mga-carto-add').addEventListener('click',function(){row('',null,null);});\n    el.querySelector('.mga-carto-exp').addEventListener('click',function(){var rows=[].slice.call(body.querySelectorAll('.mga-carto-row'));var txt='Ma cartographie de process\\n\\n'+rows.map(function(r){return '- '+(r.querySelector('.cn').value||'(\u00e9tape)')+' : '+(r.querySelector('.cm').value||0)+' min x '+(r.querySelector('.cf').value||0)+'\/jour';}).join('\\n');var bl=new Blob([txt],{type:'text\/plain'});var a=document.createElement('a');a.href=URL.createObjectURL(bl);a.download='ma-cartographie.txt';a.click();});\n    calc();\n  });\n  document.querySelectorAll('.mga-chunker').forEach(function(el){\n    var ta=el.querySelector('.mga-in'),out=el.querySelector('.mga-chunk-out'),sz=el.querySelector('.mga-ck-size'),ov=el.querySelector('.mga-ck-ov');\n    function run(){var words=ta.value.trim().split(\/\\s+\/).filter(Boolean);var size=Math.max(5,parseInt(sz.value)||25);var ovl=Math.min(size-1,Math.max(0,parseInt(ov.value)||0));\n      var chunks=[],i=0;while(i<words.length){chunks.push(words.slice(i,i+size).join(' '));if(i+size>=words.length)break;i+=(size-ovl);}\n      out.innerHTML='<p style=\"font-weight:700;color:#0F2237;margin:8px 0 4px\">'+words.length+' mots d\u00e9coup\u00e9s en '+chunks.length+' chunks ('+size+' mots, chevauchement '+ovl+') :<\/p>'+chunks.map(function(c,k){return '<div class=\"mga-chunk\"><div class=\"h\">Chunk '+(k+1)+'<\/div>'+esc(c)+'<\/div>';}).join('');}\n    el.querySelector('.mga-ck-run').addEventListener('click',run);el.querySelectorAll('input').forEach(function(i){i.addEventListener('input',run);});run();\n  });\n  document.querySelectorAll('.mga-rag').forEach(function(el){\n    var kb=wdata(el)||[];var ta=el.querySelector('.mga-in'),out=el.querySelector('.mga-rag-out');\n    var STOP={quel:1,quelle:1,quels:1,quelles:1,pour:1,les:1,des:1,une:1,est:1,que:1,qui:1,sont:1,avec:1,dans:1,sur:1,ton:1,tes:1,mon:1,mes:1,the:1,ont:1,vous:1};\n    function toks(s){return (s||'').toLowerCase().normalize('NFD').replace(\/[\u0300-\u036f]\/g,'').split(\/[^a-z0-9]+\/).filter(function(w){return w.length>2&&!STOP[w];});}\n    function retrieve(q){var qt=toks(q);return kb.map(function(c,idx){var ct=toks(c);var sc=0;qt.forEach(function(w){ct.forEach(function(cw){if(cw===w||cw.indexOf(w)===0||w.indexOf(cw)===0)sc++;});});return {c:c,idx:idx,sc:sc};}).sort(function(a,b){return b.sc-a.sc;});}\n    function run(withCtx){var q=ta.value.trim();if(!q){ta.focus();return;}\n      var ranked=retrieve(q);var hits=ranked.filter(function(x){return x.sc>0;});var top=(hits.length?hits:ranked).slice(0,2);\n      var passages=top.map(function(x){return x.c;});\n      var nodes=el.querySelectorAll('.mga-rag-kb');nodes.forEach(function(n){n.classList.remove('on');});\n      if(withCtx){top.forEach(function(x){if(nodes[x.idx])nodes[x.idx].classList.add('on');});}\n      var html=withCtx?passages.map(function(p){return '<div class=\"mga-rag-passage\"><b>Passage retrouv\u00e9 :<\/b> '+esc(p)+'<\/div>';}).join(''):'<div class=\"mga-rag-passage\" style=\"border-left-color:#c0392b\"><b>Sans RAG :<\/b> aucun passage fourni, l\\'IA r\u00e9pond de m\u00e9moire.<\/div>';\n      out.innerHTML=html+'<div class=\"mga-rag-ans\"><span class=\"who\">R\u00e9ponse de l\\'IA<\/span>...<\/div>';\n      var ansBox=out.querySelector('.mga-rag-ans');\n      var input=withCtx?('Contexte:\\n'+passages.join('\\n---\\n')+'\\n\\nQuestion: '+q):('Contexte:\\n(aucun)\\n\\nQuestion: '+q);\n      var bs=el.querySelectorAll('button');bs.forEach(function(b){b.disabled=true;});\n      call('f_rag','libre',input,{maxTokens:200}).then(function(x){ansBox.innerHTML='<span class=\"who\">R\u00e9ponse de l\\'IA'+(withCtx?' (avec RAG)':' (sans RAG)')+'<\/span>'+esc((x.j&&(x.j.output||x.j.error))||'');}).finally(function(){bs.forEach(function(b){b.disabled=false;});});\n    }\n    el.querySelectorAll('.mga-rag-q').forEach(function(b){b.addEventListener('click',function(){ta.value=b.textContent;run(true);});});\n    el.querySelector('.mga-rag-run').addEventListener('click',function(){run(true);});\n    var nb=el.querySelector('.mga-rag-norag');if(nb)nb.addEventListener('click',function(){run(false);});\n  });\n  document.querySelectorAll('.mga-chapters').forEach(function(el){\n    var code=el.getAttribute('data-code'), n=+el.getAttribute('data-n');\n    var tabs=el.querySelectorAll('.mga-chtab'), panels=el.querySelectorAll('.mga-chapter'), bar=el.querySelector('.mga-chprog .bar');\n    var KEY='mga_ch_'+code; var seen={}; try{seen=JSON.parse(localStorage.getItem(KEY)||'{}');}catch(e){}\n    function prog(){var c=Object.keys(seen).filter(function(k){return seen[k];}).length;if(bar)bar.style.width=Math.round(c\/n*100)+'%';tabs.forEach(function(t,i){if(seen[i])t.classList.add('done');});}\n    function mark(i){seen[i]=1;try{localStorage.setItem(KEY,JSON.stringify(seen));}catch(e){}prog();}\n    function show(i,scroll){panels.forEach(function(p,j){p.classList.toggle('hid',j!==i);});tabs.forEach(function(t,j){t.classList.toggle('on',j===i);});mark(i);if(scroll){var top=el.getBoundingClientRect().top+window.pageYOffset-90;window.scrollTo({top:top,behavior:'smooth'});}}\n    tabs.forEach(function(t,i){t.addEventListener('click',function(){show(i,true);});});\n    el.querySelectorAll('.mga-chnext').forEach(function(b){b.addEventListener('click',function(){show(+b.getAttribute('data-go'),true);});});\n    mark(0);prog();\n    function fromHash(){var h=location.hash||'';var mm=h.match(\/sm-(\\d+)\/);if(mm){var i=+mm[1];if(i>=0&&i<n)show(i,true);return;}\n      var am=h.match(\/^#(at-[a-f0-9]{6})$\/);if(am){var target=el.querySelector('#'+am[1]);if(target){var idx=-1;panels.forEach(function(p,j){if(p.contains(target))idx=j;});if(idx>=0)show(idx,false);setTimeout(function(){var top=target.getBoundingClientRect().top+window.pageYOffset-90;window.scrollTo({top:top,behavior:'smooth'});},60);}}}\n    window.addEventListener('hashchange',fromHash);fromHash();\n  });\n})();\n<\/script>\n<\/div><\/div><div class=\"mga-side-scrim\"><\/div><script>(function(){\n  var shell=document.querySelector('.mga-shell'); if(!shell) return;\n  var KEY='mga_nav_open';\n  function getOpen(){try{return JSON.parse(localStorage.getItem(KEY)||'[]');}catch(e){return [];}}\n  function setOpen(a){try{localStorage.setItem(KEY,JSON.stringify(a));}catch(e){}}\n  var open=getOpen();\n  shell.querySelectorAll('.mga-blk').forEach(function(blk){\n    var b=blk.getAttribute('data-bloc');\n    if(open.indexOf(b)>=0) blk.classList.add('mgaon');\n    var h=blk.querySelector('.mga-blk-h');\n    h.addEventListener('click',function(){blk.classList.toggle('mgaon');var o=getOpen();var i=o.indexOf(b);if(blk.classList.contains('mgaon')){if(i<0)o.push(b);}else{if(i>=0)o.splice(i,1);}setOpen(o);});\n  });\n  var done={};try{done=JSON.parse(localStorage.getItem('mga_done')||'{}');}catch(e){}\n  var links=shell.querySelectorAll('.mga-modlink[data-state]');var total=0,doneN=0;\n  links.forEach(function(a){var c=a.getAttribute('data-code');if(a.getAttribute('data-state')!=='soon')total++;if(done[c]){a.classList.add('done');doneN++;}});\n  var bar=shell.querySelector('.mga-side-prog .bar'),lbl=shell.querySelector('.mga-side-prog .lbl');\n  if(bar)bar.style.width=(total?Math.round(doneN\/total*100):0)+'%';\n  if(lbl)lbl.textContent=doneN+' \/ '+total+' modules';\n  var tgl=shell.querySelector('.mga-side-toggle'),scrim=shell.querySelector('.mga-side-scrim');\n  function close(){shell.classList.remove('drawer');}\n  if(tgl)tgl.addEventListener('click',function(){shell.classList.toggle('drawer');});\n  if(scrim)scrim.addEventListener('click',close);\n  shell.querySelectorAll('.mga-badge').forEach(function(el){\n    var mods=(el.getAttribute('data-mods')||'').split(',').filter(Boolean);\n    var done={};try{done=JSON.parse(localStorage.getItem('mga_done')||'{}');}catch(e){}\n    var got=mods.filter(function(m){return done[m];}).length; var lbl=el.querySelector('.lbl');\n    if(mods.length && got>=mods.length){el.classList.add('earned');try{var bd=JSON.parse(localStorage.getItem('mga_badges')||'{}');bd[el.getAttribute('data-bloc')]=1;localStorage.setItem('mga_badges',JSON.stringify(bd));}catch(e){}if(lbl)lbl.textContent='Badge obtenu : Bloc '+el.getAttribute('data-blocname');}\n    else if(lbl){lbl.textContent='Badge du Bloc '+el.getAttribute('data-blocname')+' : '+got+'\/'+mods.length+' modules valid\u00e9s';}\n  });\n  shell.querySelectorAll('.mga-sublink').forEach(function(a){a.addEventListener('click',function(e){var m=(a.getAttribute('href')||'').match(\/sm-(\\d+)\/);if(m){e.preventDefault();var i=m[1];if(location.hash==='#sm-'+i){location.hash='';}location.hash='sm-'+i;close();}});});\n})();<\/script>\n<script>(function(){\n  document.querySelectorAll('.mga-regform').forEach(function(f){\n    if(f.dataset.mgabound) return; f.dataset.mgabound='1';\n    f.addEventListener('submit',function(e){e.preventDefault();\n      if(f.website && f.website.value) return;\n      var msg=f.querySelector('.mga-regmsg'); var btn=f.querySelector('button');\n      var fd={prenom:((f.prenom&&f.prenom.value)||'').trim(),whatsapp:((f.whatsapp&&f.whatsapp.value)||'').trim(),email:((f.email&&f.email.value)||'').trim(),website:''};\n      if(!fd.prenom||fd.whatsapp.replace(\/\\D\/g,'').length<8){if(msg){msg.hidden=false;msg.className='mga-regmsg';msg.textContent='Indique ton pr\u00e9nom et un WhatsApp valide.';}return;}\n      btn.disabled=true;if(msg){msg.hidden=false;msg.className='mga-regmsg';msg.textContent='...';}\n      fetch('\/wp-json\/mga\/v1\/register',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify(fd)}).then(function(r){return r.json();}).then(function(j){\n        if(j&&j.code){f.reset();if(msg){msg.className='mga-regmsg ok';msg.hidden=false;msg.innerHTML='Compte cr\u00e9\u00e9. Ton code d\\'acc\u00e8s : <b>'+j.code+'<\/b><br>Note-le bien. \u00c9cris-nous sur WhatsApp avec ce code pour r\u00e9gler ton bloc via Payoneer, on l\\'ouvre aussit\u00f4t.';}}\n        else{if(msg){msg.hidden=false;msg.className='mga-regmsg';msg.textContent=(j&&j.error)||'Erreur, r\u00e9essaie.';}}\n      }).catch(function(){if(msg){msg.hidden=false;msg.className='mga-regmsg';msg.textContent='Erreur r\u00e9seau, r\u00e9essaie.';}}).finally(function(){btn.disabled=false;});\n    });\n  });\n})();<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":1966,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2024","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v28.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Faire tourner une IA en local sur Mac (LM Studio, Ollama)<\/title>\n<meta name=\"description\" content=\"Installe une IA en local sur ton Mac avec LM Studio ou Ollama : ton plan B quand le quota tombe, gratuit et priv\u00e9. Tuto pas \u00e0 pas et comparatif par Mac.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mogacode.ma\/en\/academy\/faire-tourner-une-ia-en-local-sur-mac\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Faire tourner une IA en local sur ton Mac (LM Studio, Ollama)\" \/>\n<meta property=\"og:description\" content=\"Installe une IA en local sur ton Mac avec LM Studio ou Ollama : ton plan B quand le quota tombe, gratuit et priv\u00e9. Tuto pas \u00e0 pas et comparatif par Mac.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mogacode.ma\/en\/academy\/faire-tourner-une-ia-en-local-sur-mac\/\" \/>\n<meta property=\"og:site_name\" content=\"Mogacode\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/mogacode\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mogacode.ma\/wp-content\/uploads\/2026\/09\/og\/og-mod-faire-tourner-une-ia-en-local-sur-mac.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.mogacode.ma\/wp-content\/uploads\/2026\/09\/og\/og-mod-faire-tourner-une-ia-en-local-sur-mac.png\" \/>\n<meta name=\"twitter:site\" content=\"@mogacode\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Faire tourner une IA en local sur Mac (LM Studio, Ollama)","description":"Installe une IA en local sur ton Mac avec LM Studio ou Ollama : ton plan B quand le quota tombe, gratuit et priv\u00e9. Tuto pas \u00e0 pas et comparatif par Mac.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mogacode.ma\/en\/academy\/faire-tourner-une-ia-en-local-sur-mac\/","og_locale":"en_US","og_type":"article","og_title":"Faire tourner une IA en local sur ton Mac (LM Studio, Ollama)","og_description":"Installe une IA en local sur ton Mac avec LM Studio ou Ollama : ton plan B quand le quota tombe, gratuit et priv\u00e9. Tuto pas \u00e0 pas et comparatif par Mac.","og_url":"https:\/\/www.mogacode.ma\/en\/academy\/faire-tourner-une-ia-en-local-sur-mac\/","og_site_name":"Mogacode","article_publisher":"https:\/\/www.facebook.com\/mogacode","og_image":[{"url":"https:\/\/www.mogacode.ma\/wp-content\/uploads\/2026\/09\/og\/og-mod-faire-tourner-une-ia-en-local-sur-mac.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/www.mogacode.ma\/wp-content\/uploads\/2026\/09\/og\/og-mod-faire-tourner-une-ia-en-local-sur-mac.png","twitter_site":"@mogacode","schema":{"@context":"https:\/\/schema.org","@graph":[]}},"_links":{"self":[{"href":"https:\/\/www.mogacode.ma\/en\/wp-json\/wp\/v2\/pages\/2024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mogacode.ma\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mogacode.ma\/en\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mogacode.ma\/en\/wp-json\/wp\/v2\/comments?post=2024"}],"version-history":[{"count":0,"href":"https:\/\/www.mogacode.ma\/en\/wp-json\/wp\/v2\/pages\/2024\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.mogacode.ma\/en\/wp-json\/wp\/v2\/pages\/1966"}],"wp:attachment":[{"href":"https:\/\/www.mogacode.ma\/en\/wp-json\/wp\/v2\/media?parent=2024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}