<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Non classé &#8211; tazmenworld</title>
	<atom:link href="https://tazmenworld.com/category/non-classe/feed/" rel="self" type="application/rss+xml" />
	<link>https://tazmenworld.com</link>
	<description>Mon site WordPress</description>
	<lastBuildDate>Thu, 11 Jun 2026 06:30:52 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>Quel matériel et pour quel prix en 2026 pour faire de l&#8217;IA en local</title>
		<link>https://tazmenworld.com/2026/06/11/quel-materiel-et-pour-quel-prix-en-2026-pour-faire-de-lia-en-local/</link>
					<comments>https://tazmenworld.com/2026/06/11/quel-materiel-et-pour-quel-prix-en-2026-pour-faire-de-lia-en-local/#respond</comments>
		
		<dc:creator><![CDATA[tazmen3]]></dc:creator>
		<pubDate>Thu, 11 Jun 2026 06:30:52 +0000</pubDate>
				<category><![CDATA[Intelligence Artificielle (IA)]]></category>
		<category><![CDATA[Non classé]]></category>
		<guid isPermaLink="false">https://tazmenworld.com/?p=318</guid>

					<description><![CDATA[Fais le tour des réseaux sociaux et tu tomberas vite sur le même argument, répété en boucle : « l&#8217;IA en local, c&#8217;est gratuit, tu ne paies pas les tokens ». C&#8217;est l&#8217;argument massue, celui qui fait briller les yeux et sortir la carte bleue. Sauf que c&#8217;est faux. L&#8217;IA en local, tu la paies [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img width="1024" height="575"  alt="" class="wp-image-328"/ loading="eager" fetchpriority="high" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/ia-local-cout-1024x575.jpeg" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/ia-local-cout-1024x575.jpeg 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/ia-local-cout-300x168.jpeg 300w, https://tazmenworld.com/wp-content/uploads/2026/06/ia-local-cout-768x431.jpeg 768w, https://tazmenworld.com/wp-content/uploads/2026/06/ia-local-cout-1536x863.jpeg 1536w, https://tazmenworld.com/wp-content/uploads/2026/06/ia-local-cout.jpeg 1672w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Fais le tour des réseaux sociaux et tu tomberas vite sur le même argument, répété en boucle : « l&rsquo;IA en local, c&rsquo;est gratuit, tu ne paies pas les tokens ». C&rsquo;est l&rsquo;argument massue, celui qui fait briller les yeux et sortir la carte bleue.</p>



<p class="wp-block-paragraph">Sauf que c&rsquo;est faux. L&rsquo;IA en local, <strong>tu la paies deux fois</strong> : une fois à l&rsquo;achat du matériel, et une deuxième fois en consommation électrique, mois après mois, tant que la machine tourne. Le cloud te facture au token ; le local te facture en watts. Dans les deux cas, il y a un compteur qui tourne. Il est juste moins visible côté local, parce qu&rsquo;il se planque dans ta facture EDF au lieu d&rsquo;arriver par mail à la fin du mois.</p>



<p class="wp-block-paragraph">Et tu risques d&rsquo;être surpris par le montant. Plus loin dans l&rsquo;article, je te montre ma propre facture sur douze mois, relevé fournisseur à l&rsquo;appui. Spoiler : ce n&rsquo;est pas anodin.</p>



<p class="wp-block-paragraph">Ça ne veut pas dire que le local est une mauvaise idée. Au contraire, sur certains usages c&rsquo;est imbattable, et tu gardes la main sur tes données et tes modèles sans dépendre d&rsquo;une API qui peut changer ses CGU ou ses prix du jour au lendemain. Ça veut juste dire qu&rsquo;il faut acheter en connaissance de cause, avec les deux factures en tête, pas une seule.</p>



<p class="wp-block-paragraph">Donc avant de claquer un budget, posons les bases. Et la première règle, celle qui détermine tout le reste, tient en une phrase : en IA locale, <strong>tu n&rsquo;achètes pas de la puissance de calcul, tu achètes de la mémoire</strong>.</p>



<h2 class="wp-block-heading">La règle de base : la mémoire d&rsquo;abord</h2>



<p class="wp-block-paragraph">Toute la littérature sérieuse 2026 dit la même chose. Tu choisis d&rsquo;abord la quantité de mémoire (VRAM sur un GPU, ou mémoire unifiée sur un mini-PC / un Mac), et ensuite seulement le reste.</p>



<p class="wp-block-paragraph">Les repères à garder en tête :</p>



<ul class="wp-block-list">
<li><strong>8–16 Go</strong> : modèles 7B en quantifié. Du RAG léger, des petits agents, de l&rsquo;expérimentation.</li>



<li><strong>24 Go</strong> : 32B utilisables en Q4/Q5 (Qwen 2.5-Coder 32B, Mistral Small). Le vrai point de bascule pour bosser sérieusement.</li>



<li><strong>40 Go+ ou mémoire unifiée 64–192 Go</strong> : 70B quantifiés (Llama 3.3 70B, DeepSeek R1 distill 70B, Qwen 2.5 72B), voire du 120B en 4-bit.</li>
</ul>



<p class="wp-block-paragraph">Un détail qu&rsquo;on oublie souvent : <strong>la bande passante mémoire détermine ta vitesse en tokens/seconde</strong>. Une RTX 3090 tape dans les ~936 Go/s, un boîtier AMD à mémoire unifiée plafonne souvent autour de ~120 Go/s, un Mac M4 Pro est à 273 Go/s. À mémoire égale, ça change tout sur le ressenti en inférence. Avoir 64 Go ne sert à rien si le modèle crache 4 tok/s.</p>



<h2 class="wp-block-heading">Les familles de matériel</h2>



<p class="wp-block-paragraph">Avant les tranches de budget, il faut distinguer <strong>les formes de produit</strong>, parce qu&rsquo;on compare souvent des trucs qui n&rsquo;ont rien à voir.</p>



<p class="wp-block-paragraph"><strong>GPU grand public (GeForce).</strong> Le meilleur rapport perf/prix pour du LLM + image classique. RTX 3060, 4060 Ti, 3090, 4090, 5090. Le marché de l&rsquo;occasion est ton ami.</p>



<p class="wp-block-paragraph"><strong>Mini-PC IA à mémoire unifiée.</strong> Ryzen AI Max (Strix Halo), Minisforum, GMKtec, Mac mini/Studio. Beaucoup de mémoire, faible conso, format compact. En contrepartie, une bande passante plus faible que les gros GPU (sauf Apple).</p>



<p class="wp-block-paragraph"><strong>Cartes data center détournées.</strong> Tesla P100, T4, P4, V100 récupérées d&rsquo;occasion et collées dans une tour ATX. Beaucoup de VRAM pour pas cher, mais c&rsquo;est un truc de bricoleur Linux (cooling à ajouter, drivers data center, pas de sortie vidéo).</p>



<p class="wp-block-paragraph"><strong>Edge / embarqué (Jetson).</strong> Orin Nano, AGX Orin, Thor. Conso ultra-basse, format NUC, parfait pour de l&rsquo;always-on silencieux ou du RAG embarqué. Pas pour du gros LLM à la maison.</p>



<p class="wp-block-paragraph"><strong>Stations IA compactes premium.</strong> DGX Spark, Mac Studio haut de gamme. 128 Go+ de mémoire unifiée, cher, mais redoutable en perf/watt.</p>



<h2 class="wp-block-heading">Par tranche de budget</h2>



<p class="wp-block-paragraph">Petite précaution avant de lire : les prix ci-dessous sont des prix observés mi-2026 sur le marché français/européen (occasion comprise). Ça bouge vite, parfois dans le mauvais sens : les Jetson Orin Nano ont pris une grosse hausse ces derniers mois, et le marché de l&rsquo;occasion réserve des absurdités (un Mac mini M1 d&rsquo;occasion peut coûter plus cher qu&rsquo;un M4 neuf… cherchez la logique).</p>



<h3 class="wp-block-heading">Moins de 400 €</h3>



<figure class="wp-block-image size-large is-resized"><img width="1024" height="788"  alt="" class="wp-image-322" style="aspect-ratio:1.2994888127422661;width:292px;height:auto"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-8-1024x788.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-8-1024x788.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/image-8-300x231.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/image-8-768x591.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/image-8.png 1254w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">L&rsquo;entrée de gamme. Tu vises du 7B quantifié et du RAG léger.</p>



<ul class="wp-block-list">
<li><strong>RTX 3060 12 Go d&rsquo;occasion</strong> : le classique. CUDA partout, ça marche, point.</li>



<li><strong>Tesla P4 8 Go</strong> ou <strong>P100 16 Go d&rsquo;occasion</strong> (~150–250 €) : énormément de VRAM par euro, mais cooling DIY et drivers data center.</li>



<li><strong>Tesla V100 32 Go sur AliExpress (~350 €)</strong> : le vrai bon plan VRAM/prix du moment, mais c&rsquo;est réservé aux bricoleurs. Voir l&rsquo;encadré dédié plus bas, parce qu&rsquo;il y a un piège électrique sérieux.</li>



<li><strong>Jetson Orin Nano (~350 €)</strong> : si tu veux un truc qui consomme 7 W et tourne en permanence. Attention, le prix a fortement grimpé ces derniers mois, ce n&rsquo;est plus le kit à 99 $ avant.</li>
</ul>



<p class="wp-block-paragraph">À ce niveau, ne rêve pas de génération d&rsquo;image lourde ni de 32B. C&rsquo;est un terrain de jeu, pas une station de prod.</p>



<h3 class="wp-block-heading">400 – 900 €</h3>



<figure class="wp-block-image size-large is-resized"><img width="1024" height="827"  alt="" class="wp-image-323" style="aspect-ratio:1.2382026633852146;width:353px;height:auto"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-9-1024x827.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-9-1024x827.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/image-9-300x242.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/image-9-768x620.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/image-9.png 1254w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Le sweet spot pour débuter sérieusement. 16 Go de VRAM ou un mini-PC milieu de gamme.</p>



<ul class="wp-block-list">
<li><strong>RTX 4060 Ti 16 Go</strong> ou <strong>RX 7600 XT 16 Go</strong> : 7–13B confortables et de l&rsquo;image raisonnable (SDXL, Flux en presets corrects).</li>



<li><strong>Tesla T4 16 Go</strong> : 70 W, excellente en perf/watt, parfaite pour un serveur d&rsquo;inférence allumé H24.</li>



<li><strong>Mini-PC Ryzen AI 32 Go</strong> : polyvalent, basse conso, mais attention au support GPU sous Linux (j&rsquo;y reviens plus bas).</li>
</ul>



<h3 class="wp-block-heading">900 – 1 800 €</h3>



<figure class="wp-block-image size-full is-resized"><img width="600" height="518"  alt="" class="wp-image-324" style="width:281px;height:auto"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-10.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-10.png 600w, https://tazmenworld.com/wp-content/uploads/2026/06/image-10-300x259.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure>



<p class="wp-block-paragraph">Là, tu passes en 24 Go et tu peux faire du ComfyUI sérieux + du 32B. C&rsquo;est la tranche des <strong>GPU 24 Go d&rsquo;occasion</strong>, et clairement la plus rentable.</p>



<ul class="wp-block-list">
<li><strong>RTX 3090 24 Go d&rsquo;occasion (700–1 000 €)</strong> : LE meilleur achat, toutes catégories confondues. 24 Go, ~936 Go/s, compatibilité parfaite. Le neuf ne sert à rien ici, prends de l&rsquo;occasion. Si tu ne devais retenir qu&rsquo;une carte, c&rsquo;est elle.</li>



<li><strong>RTX 4090 24 Go d&rsquo;occasion (1 000–1 100 €)</strong> : même VRAM que la 3090 mais plus de patate, notamment en image. Là aussi le neuf est inutile.</li>



<li><strong>Tesla P100 32 Go</strong> : encore plus de VRAM pour pas cher, mais idle médiocre (voir section conso).</li>



<li><strong>Mini-PC à mémoire unifiée 64 Go</strong> type <strong>Minisforum AI X1 Pro</strong> (~1 100 $) : tu charges des modèles jusqu&rsquo;à ~50B en Q4 sans GPU dédié. Le piège : ~120 Go/s de bande passante, donc compte 15–25 tok/s sur un Qwen 14B Q4. C&rsquo;est lent mais ça tient en RAM ce qu&rsquo;un GPU 24 Go ne tiendra jamais.</li>
</ul>



<h3 class="wp-block-heading">1 800 – 3 000 €</h3>



<figure class="wp-block-image size-large is-resized"><img width="1024" height="434"  alt="" class="wp-image-325" style="aspect-ratio:2.359479850669964;width:277px;height:auto"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-11-1024x434.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-11-1024x434.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/image-11-300x127.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/image-11-768x326.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/image-11.png 1089w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">La tranche de la <strong>mémoire unifiée compacte</strong> et de l&rsquo;edge costaud. Beaucoup de mémoire, faible conso, format de bureau, mais on troque la vitesse des gros GPU contre la capacité.</p>



<ul class="wp-block-list">
<li><strong>Beelink SER9 (HX-370, ~2 300 €)</strong> : mini-PC Ryzen AI, basse conso (~7–9 W idle).</li>



<li><strong>Minisforum Strix Halo 64 Go (~2 300 €)</strong> : le modèle 128 Go n&rsquo;est toujours pas dispo, on est cantonné au 64 Go pour l&rsquo;instant. TDP modulable 45–120 W.</li>



<li><strong>Mac mini M4 64 Go (~2 800 €)</strong> : 70B quantifiés accessibles, idle dérisoire (~4–8 W), perf/watt imbattable. L&rsquo;option la plus propre pour un nœud LLM always-on costaud.</li>



<li><strong>Jetson AGX Orin 64 Go (~2 400 € avec boîtier)</strong> : si tu fais de l&rsquo;edge sérieux ou du RAG embarqué.</li>
</ul>



<h3 class="wp-block-heading">Plus de 3 000 €</h3>



<figure class="wp-block-image size-large is-resized"><img width="1024" height="824"  alt="" class="wp-image-326" style="aspect-ratio:1.2434030224569432;width:400px;height:auto"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-12-1024x824.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-12-1024x824.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/image-12-300x241.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/image-12-768x618.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/image-12.png 1226w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Le haut du panier. C&rsquo;est là que le 70B confortable, le 120B en 4-bit et l&rsquo;image lourde deviennent vraiment fluides, mais le ticket d&rsquo;entrée fait mal.</p>



<ul class="wp-block-list">
<li><strong>RTX 5090 32 Go (3 500–5 000 €)</strong> : la puissance brute. 32 Go GDDR7, ~575 W rien que pour la carte. Réserve-la si tu fais de l&rsquo;image lourde ou du training.</li>



<li><strong>Mac Studio M4 (à partir de ~4 400 € selon config)</strong> : jusqu&rsquo;à 192 Go unifiée, 70B quantifiés + vidéo + IA, idle ridicule. Le compromis perf/watt le plus propre pour une station.</li>



<li><strong>DGX Spark (~5 000 €)</strong> : 128 Go unifiée (GB10), écosystème CUDA natif dans un format de bureau.</li>



<li><strong>Multi-GPU 4× 3090</strong> en rack : 96 Go de VRAM totale pour qui veut du 70B+ sans compromis. C&rsquo;est plus un labo qu&rsquo;une machine perso, et la facture électrique suit (voir plus bas).</li>
</ul>



<h2 class="wp-block-heading">Le prix de la mémoire : la variable qui va tout chambouler</h2>



<p class="wp-block-paragraph">Tous les prix ci-dessus sont une photo à l&rsquo;instant T, et cette photo va se dégrader. On a passé l&rsquo;article à répéter que tu achètes de la mémoire avant tout : il faut donc parler du fait que la mémoire est en pleine crise de prix.</p>



<p class="wp-block-paragraph">Depuis fin 2025, la DRAM et la NAND flambent. Les tarifs ont été multipliés par 3 à 4 en moins d&rsquo;un an. La cause tient en trois lettres : la HBM, cette mémoire ultra-rapide qui équipe les accélérateurs IA des data centers (NVIDIA H100/H200/B200, AMD MI300…). Les trois seuls fabricants mondiaux (Samsung, SK Hynix, Micron) ont réorienté leurs capacités vers cette HBM à forte marge, au détriment de la DDR4, DDR5, LPDDR5 et de la NAND grand public. Résultat : moins d&rsquo;offre, des stocks tendus, des prix qui s&rsquo;envolent. Et ça ne s&rsquo;arrête pas à la RAM système : la GDDR des cartes graphiques est touchée par le même effet, donc les GPU sont aussi concernés.</p>



<p class="wp-block-paragraph">Et ce n&rsquo;est pas fini. Micron annonce +50 à 60 % sur la DRAM dès le premier trimestre 2026, TrendForce table sur +58 à 63 % de plus au deuxième trimestre. Pour résorber la pénurie, il faudrait augmenter la production de 12 % par an d&rsquo;ici 2027 ; les plans industriels actuels ne prévoient que 7,5 %. L&rsquo;écart ne se comble pas par magie : une nouvelle usine de semi-conducteurs met des années à monter en cadence. Les prévisions convergent vers une tension qui dure au moins jusqu&rsquo;en 2027, avec un plateau des prix cette année-là et une éventuelle détente seulement à partir de 2028. Les plus pessimistes (Counterpoint) évoquent 2030.</p>



<figure class="wp-block-image size-large"><img width="1024" height="542"  alt="" class="wp-image-321"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-7-1024x542.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-7-1024x542.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/image-7-300x159.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/image-7-768x406.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/image-7-1536x812.png 1536w, https://tazmenworld.com/wp-content/uploads/2026/06/image-7.png 1830w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Donc oui, il y a eu de légères respirations sur certains tarifs, mais la tendance de fond est haussière, et elle va le rester un moment. Ça a deux conséquences très concrètes pour toi.</p>



<p class="wp-block-paragraph">D&rsquo;abord, <strong>les configs gourmandes en mémoire vont coûter de plus en plus cher</strong>. Un mini-PC 128 Go de mémoire unifiée ou une carte à grosse VRAM, c&rsquo;est exactement ce que le marché s&rsquo;arrache. Si ton projet en dépend, le surcoût ne fera que grimper.</p>



<p class="wp-block-paragraph">Ensuite, et c&rsquo;est là que je vais à contre-courant du discours ambiant : <strong>dans pas mal de cas, le calcul honnête, c&rsquo;est de ne pas acheter maintenant</strong>. À ces prix-là, monter une vraie config locale revient cher, et on sait que la mémoire restera tendue jusqu&rsquo;en 2027-2028. Une stratégie tout à fait défendable, c&rsquo;est donc : j&rsquo;attends deux ans que le marché se détende, et en attendant j&rsquo;utilise les API. Tu paies au token sur la période, mais tu n&rsquo;immobilises pas 3 000 ou 5 000 € dans une machine achetée au pic, qui aura perdu de la valeur quand les prix mémoire seront retombés. Pour un usage modéré, l&rsquo;addition API sur deux ans peut largement rester sous le coût d&rsquo;achat + électricité d&rsquo;une grosse config.</p>



<p class="wp-block-paragraph">Si malgré tout tu veux du local tout de suite, <strong>l&rsquo;occasion est ta meilleure protection</strong>. Une RTX 3090 ou 4090 d&rsquo;occasion, avec sa VRAM déjà soudée et payée au prix d&rsquo;hier, te met à l&rsquo;abri de la flambée. C&rsquo;est l&rsquo;arbitrage à faire : soit tu passes par l&rsquo;occasion maintenant, soit tu encaisses le coût API quelque temps et tu investis quand le marché aura soufflé. Ce qui n&rsquo;a pas de sens, c&rsquo;est d&rsquo;acheter du neuf gourmand en mémoire en plein pic.</p>



<p class="wp-block-paragraph">Dernier point à connaître : à partir de 2026, <strong>la disponibilité risque de devenir un problème avant même le prix</strong>. Si tu choisis la voie « j&rsquo;achète maintenant », garde en tête que trouver le composant pourra être plus compliqué que le payer.</p>



<h2 class="wp-block-heading">Inférence vs diffusion : ce que ça change</h2>



<p class="wp-block-paragraph">On mélange trop souvent les deux usages, alors qu&rsquo;ils ne sollicitent pas le matériel pareil.</p>



<p class="wp-block-paragraph"><strong>Inférence LLM.</strong> C&rsquo;est dominé par la <strong>bande passante mémoire</strong>. Le modèle doit être lu en entier à chaque token généré. D&rsquo;où l&rsquo;importance de la VRAM (pour faire rentrer le modèle) ET de la bande passante (pour le lire vite). Une P100 à 16 Go fera tourner un 32B Q4, mais ses ~550 Go/s la rendent plus lente qu&rsquo;une 3090.</p>



<p class="wp-block-paragraph"><strong>Diffusion / génération d&rsquo;image.</strong> Là, l&rsquo;architecture du GPU compte davantage. Les Tensor Cores modernes (FP8, etc.) accélèrent énormément. C&rsquo;est pour ça qu&rsquo;une Pascal (P100) fait tourner ComfyUI mais reste sensiblement plus lente qu&rsquo;une 3090/4090/5090 sur le même workflow. En image, l&rsquo;ancienneté de l&rsquo;archi se paie cash.</p>



<p class="wp-block-paragraph">Conclusion pratique : si ton truc c&rsquo;est le LLM, optimise la mémoire et la bande passante. Si c&rsquo;est l&rsquo;image, oriente-toi vers une archi récente (Ampere minimum, idéalement Ada/Blackwell).</p>



<h2 class="wp-block-heading">La consommation : le truc que personne ne regarde</h2>



<p class="wp-block-paragraph">C&rsquo;est l&rsquo;angle mort des tableaux VRAM/prix. Si ta machine tourne H24 pour Ollama, n8n ou ComfyUI, deux chiffres comptent : la conso <strong>idle</strong> (machine allumée, modèle pas chargé) et la conso <strong>en calcul</strong>.</p>



<p class="wp-block-paragraph"><strong>Attention, point crucial</strong> : les chiffres ci-dessous sont <strong>pour la carte seule</strong>. C&rsquo;est toute la config qui consomme. CPU, carte mère, RAM, ventilation, alim avec son rendement : ajoute facilement 100 à 250 W sous charge par-dessus le GPU. Une config autour d&rsquo;une RTX 5090 dépasse le plus souvent <strong>1 000 W</strong> à pleine charge. Donc quand tu lis « 575 W » pour la 5090, lis plutôt « 1 000 W au mur » pour la machine complète.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">GPU (carte seule)</th><th class="has-text-align-left" data-align="left">Mémoire</th><th class="has-text-align-right" data-align="right">Idle</th><th class="has-text-align-right" data-align="right">Calcul</th><th class="has-text-align-left" data-align="left">Verdict 24/7</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">Tesla T4</td><td class="has-text-align-left" data-align="left">16 Go</td><td class="has-text-align-right" data-align="right">~36 W</td><td class="has-text-align-right" data-align="right">~70–75 W</td><td class="has-text-align-left" data-align="left">Excellent serveur sobre</td></tr><tr><td class="has-text-align-left" data-align="left">Tesla P100</td><td class="has-text-align-left" data-align="left">16 Go</td><td class="has-text-align-right" data-align="right">~25–30 W</td><td class="has-text-align-right" data-align="right">~250 W</td><td class="has-text-align-left" data-align="left">Bricolable, idle moyen</td></tr><tr><td class="has-text-align-left" data-align="left">Tesla V100</td><td class="has-text-align-left" data-align="left">16–32 Go</td><td class="has-text-align-right" data-align="right">~40–50 W</td><td class="has-text-align-right" data-align="right">~250 W</td><td class="has-text-align-left" data-align="left">Puissant, mauvaise veille</td></tr><tr><td class="has-text-align-left" data-align="left">RTX 3090</td><td class="has-text-align-left" data-align="left">24 Go</td><td class="has-text-align-right" data-align="right">~10–30 W</td><td class="has-text-align-right" data-align="right">~350 W</td><td class="has-text-align-left" data-align="left">Bon ratio polyvalent</td></tr><tr><td class="has-text-align-left" data-align="left">RTX 4090</td><td class="has-text-align-left" data-align="left">24 Go</td><td class="has-text-align-right" data-align="right">~4–29 W</td><td class="has-text-align-right" data-align="right">~450–480 W</td><td class="has-text-align-left" data-align="left">Fort, lourd en charge</td></tr><tr><td class="has-text-align-left" data-align="left">RTX 5090</td><td class="has-text-align-left" data-align="left">32 Go</td><td class="has-text-align-right" data-align="right">~45–100 W</td><td class="has-text-align-right" data-align="right">~575 W</td><td class="has-text-align-left" data-align="left">Config complète &gt;1 000 W</td></tr><tr><td class="has-text-align-left" data-align="left">Jetson Orin Nano</td><td class="has-text-align-left" data-align="left">8 Go</td><td class="has-text-align-right" data-align="right">~2,5–7 W</td><td class="has-text-align-right" data-align="right">~7–15 W</td><td class="has-text-align-left" data-align="left">Top edge always-on</td></tr><tr><td class="has-text-align-left" data-align="left">Jetson AGX Orin</td><td class="has-text-align-left" data-align="left">64 Go</td><td class="has-text-align-right" data-align="right">~15–20 W</td><td class="has-text-align-right" data-align="right">~30–60 W</td><td class="has-text-align-left" data-align="left">Bon compromis edge costaud</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Côté boîtiers compacts, l&rsquo;intérêt c&rsquo;est que les chiffres sont <strong>système complet</strong> (pas de tour à ajouter autour) :</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Plateforme (système complet)</th><th class="has-text-align-left" data-align="left">Mémoire</th><th class="has-text-align-right" data-align="right">Idle</th><th class="has-text-align-right" data-align="right">Charge</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">Mac mini M4</td><td class="has-text-align-left" data-align="left">16–64 Go</td><td class="has-text-align-right" data-align="right">~4–8 W</td><td class="has-text-align-right" data-align="right">~30–40 W</td></tr><tr><td class="has-text-align-left" data-align="left">Mac Studio M4</td><td class="has-text-align-left" data-align="left">36–192 Go</td><td class="has-text-align-right" data-align="right">~6–10 W</td><td class="has-text-align-right" data-align="right">~170–220 W</td></tr><tr><td class="has-text-align-left" data-align="left">DGX Spark</td><td class="has-text-align-left" data-align="left">128 Go</td><td class="has-text-align-right" data-align="right">~22–25 W</td><td class="has-text-align-right" data-align="right">~240 W (max système)</td></tr><tr><td class="has-text-align-left" data-align="left">Beelink SER9 (HX-370)</td><td class="has-text-align-left" data-align="left">32–64 Go</td><td class="has-text-align-right" data-align="right">~7–9 W</td><td class="has-text-align-right" data-align="right">~78 W</td></tr><tr><td class="has-text-align-left" data-align="left">Minisforum Strix Halo (Ryzen AI Max+ 395)</td><td class="has-text-align-left" data-align="left">jusqu&rsquo;à 128 Go</td><td class="has-text-align-right" data-align="right">~9–12 W</td><td class="has-text-align-right" data-align="right">~120 W</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">C&rsquo;est aussi là que les boîtiers compacts à mémoire unifiée prennent leur revanche sur les gros GPU : un Mac mini ou un Strix Halo te fait tourner un 70B en consommant ce qu&rsquo;une tour avec 5090 brûle au repos. Si ton usage c&rsquo;est l&rsquo;always-on, le perf/watt écrase la perf brute.</p>



<p class="wp-block-paragraph">Le truc à retenir, qui n&rsquo;apparaît jamais dans un tableau prix/VRAM : <strong>une P100 ou une V100 est souvent bloquée en état de perf élevé au repos</strong>, donc son idle est mauvais. Géniale pour bricoler et calculer, beaucoup moins pour un serveur domestique qui passe sa vie à attendre. Ça se rattrape sous Linux en réglant les p-states (voir l&rsquo;astuce dans l&rsquo;encadré V100 plus bas), mais c&rsquo;est un réglage à faire, ce n&rsquo;est pas automatique. À l&rsquo;inverse, une T4, un Jetson ou un Mac mini sont imbattables pour de l&rsquo;always-on sans rien toucher.</p>



<p class="wp-block-paragraph">Règle simple de lecture :</p>



<ul class="wp-block-list">
<li><strong>Tu calcules souvent</strong> : 3090/4090/5090, peu importe l&rsquo;idle.</li>



<li><strong>Tu veux un nœud IA allumé toute la journée</strong> : Mac mini, Jetson, T4. La sobriété prime.</li>
</ul>



<h3 class="wp-block-heading">Rien n&rsquo;est gratuit : la facture, en vrai</h3>



<p class="wp-block-paragraph">Petite parenthèse vécue, parce que c&rsquo;est facile de raisonner en watts sans jamais regarder la note. Voici ma conso réelle sur 12 mois (relevé fournisseur, en € par mois) :</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Mois</th><th class="has-text-align-right" data-align="right">€</th><th class="has-text-align-left" data-align="left">Mois</th><th class="has-text-align-right" data-align="right">€</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">Juil. 2025</td><td class="has-text-align-right" data-align="right">86</td><td class="has-text-align-left" data-align="left">Janv. 2026</td><td class="has-text-align-right" data-align="right">215</td></tr><tr><td class="has-text-align-left" data-align="left">Août 2025</td><td class="has-text-align-right" data-align="right">92</td><td class="has-text-align-left" data-align="left">Févr. 2026</td><td class="has-text-align-right" data-align="right">209</td></tr><tr><td class="has-text-align-left" data-align="left">Sept. 2025</td><td class="has-text-align-right" data-align="right">97</td><td class="has-text-align-left" data-align="left">Mars 2026</td><td class="has-text-align-right" data-align="right">193</td></tr><tr><td class="has-text-align-left" data-align="left">Oct. 2025</td><td class="has-text-align-right" data-align="right">116</td><td class="has-text-align-left" data-align="left">Avr. 2026</td><td class="has-text-align-right" data-align="right">164</td></tr><tr><td class="has-text-align-left" data-align="left">Nov. 2025</td><td class="has-text-align-right" data-align="right">149</td><td class="has-text-align-left" data-align="left">Mai 2026</td><td class="has-text-align-right" data-align="right">86</td></tr><tr><td class="has-text-align-left" data-align="left">Déc. 2025</td><td class="has-text-align-right" data-align="right">195</td><td class="has-text-align-left" data-align="left"><strong>Total</strong></td><td class="has-text-align-right" data-align="right"><strong>~1 601</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">J&rsquo;ai commencé à utiliser ma 5070 mi-octobre, et la courbe grimpe à partir de là. En mai, je suis passé sur des API pour une partie du travail, et la facture retombe à 86 €, exactement le niveau d&rsquo;avant la 5070.</p>



<figure class="wp-block-image size-large"><img width="1024" height="404"  alt="" class="wp-image-320"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-6-1024x404.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-6-1024x404.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/image-6-300x118.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/image-6-768x303.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/image-6.png 1428w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Et là, pas d&rsquo;échappatoire : <strong>je me chauffe au bois</strong> :D. Le pic hivernal n&rsquo;est donc pas un artefact du chauffage électrique. Le seul gros changement sur la période, c&rsquo;est la machine qui s&rsquo;est mise à tourner pour faire de l&rsquo;IA. La corrélation est limpide : GPU allumé mi-octobre, la facture décolle ; bascule sur API en mai, elle redescend à son niveau de départ. Il reste bien quelques variations saisonnières mineures (éclairage, jours plus courts), mais elles ne pèsent pas 100 € par mois. Le coupable, c&rsquo;est le calcul local.</p>



<p class="wp-block-paragraph">Mais le message de fond tient : <strong>rien n&rsquo;est gratuit</strong>. La machine locale a un coût électrique réel et récurrent, et l&rsquo;API a un coût au token. L&rsquo;IA locale n&rsquo;est pas « gratuite » par opposition au cloud : tu déplaces juste la dépense de la facture API vers la facture EDF. À toi de voir laquelle correspond à ton usage et à ton volume.</p>



<h3 class="wp-block-heading">Encadré bricoleur : la Tesla V100 32 Go (~350 €)</h3>



<figure class="wp-block-image size-large is-resized"><img width="1024" height="1024"  alt="" class="wp-image-319" style="width:489px;height:auto"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-5-1024x1024.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-5-1024x1024.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/image-5-300x300.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/image-5-150x150.png 150w, https://tazmenworld.com/wp-content/uploads/2026/06/image-5-768x768.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/image-5-1536x1536.png 1536w, https://tazmenworld.com/wp-content/uploads/2026/06/image-5.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">C&rsquo;est le meilleur ratio VRAM/prix du moment, mais ça se mérite. Avant de cliquer sur AliExpress, tu dois savoir trois choses :</p>



<ul class="wp-block-list">
<li><strong>L&rsquo;alimentation est piégeuse.</strong> Le connecteur n&rsquo;est pas un PCIe standard, il y a une modif/adaptateur à faire. Mal branchée, <strong>tu risques de cramer la carte mère</strong>. Les adaptateurs se trouvent en ligne, mais c&rsquo;est une manip à ne pas rater.</li>



<li><strong>Ventilation passive.</strong> Comme toutes les cartes data center, pas de ventilo intégré. Il faut ajouter un shroud + ventilateur sinon ça monte en température.</li>



<li><strong>Idle à programmer sous Linux.</strong> Par défaut elle reste bloquée en état de perf élevé (P0), donc elle tire 40 W et plus au repos pour ne rien faire. Sans réglage des p-states, ton idle est catastrophique pour du 24/7.</li>
</ul>



<p class="wp-block-paragraph"><strong>Astuce : dompter les p-states.</strong> Le problème touche toutes les cartes data center (P100, V100, T4…) : par défaut elles ne redescendent pas en basse conso au repos. Deux approches.</p>



<p class="wp-block-paragraph">D&rsquo;abord, active le persistence mode pour fiabiliser le comportement des clocks :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo nvidia-smi -pm 1</code></pre>



<p class="wp-block-paragraph">Ensuite, le plus simple et le plus propre : le démon <strong><code>nvidia-pstated</code></strong> (open-source, dispo sur GitHub). Il surveille l&rsquo;utilisation du GPU et force la carte en p-state bas (P8) dès qu&rsquo;elle est inactive, puis la repasse en P0 sous charge, automatiquement, sans bricoler tes clocks à la main. Sur une P100/V100, ça fait tomber l&rsquo;idle de ~40 W à une dizaine de watts. Tu le lances en service systemd et tu n&rsquo;y penses plus.</p>



<p class="wp-block-paragraph">Alternative manuelle si tu veux verrouiller les fréquences toi-même (<code>nvidia-smi -lgc</code>), mais tu plafonnes alors les perfs et c&rsquo;est moins souple que le démon. Pour un serveur allumé en permanence, <code>nvidia-pstated</code> est de loin la meilleure option : c&rsquo;est lui qui transforme une carte « mauvais idle » en carte 24/7 acceptable.</p>



<p class="wp-block-paragraph">En clair : 350 € pour 32 Go, c&rsquo;est imbattable, mais c&rsquo;est un projet Linux à part entière, pas un achat plug-and-play. Si tu n&rsquo;es pas à l&rsquo;aise avec le tuning matériel, reste sur une 3090 d&rsquo;occasion.</p>



<h2 class="wp-block-heading">Compatibilité : le piège PyTorch / CUDA</h2>



<p class="wp-block-paragraph">C&rsquo;est là que beaucoup se font avoir. Avoir 64 Go de mémoire unifiée ne sert à rien si ta stack logicielle ne sait pas l&rsquo;exploiter au GPU. Petit tour par écosystème.</p>



<p class="wp-block-paragraph"><strong>NVIDIA / CUDA.</strong> Le standard de fait. PyTorch, vLLM, Ollama, ComfyUI : sur de l&rsquo;Ampere ou de l&rsquo;Ada (3090, 4090…), tout marche nativement, builds officiels, zéro galère. C&rsquo;est la raison numéro un pour rester sur du NVIDIA si tu fais du dev ou du training, pas juste de l&rsquo;inférence.</p>



<p class="wp-block-paragraph">Sauf qu&rsquo;il y a une grosse exception, et elle est contre-intuitive : <strong>la série RTX 5000 (Blackwell) est aujourd&rsquo;hui le moins bon choix CUDA</strong>. Ces cartes utilisent une nouvelle compute capability, sm_120, et les versions stables de PyTorch ne sont compilées que jusqu&rsquo;à sm_90 (Hopper). Concrètement, sur une 5070 / 5080 / 5090 fraîchement montée, tu te prends souvent un <code>CUDA error: no kernel image is available for execution on the device</code>, ou pire, un fallback silencieux sur le CPU. Le seul moyen d&rsquo;en tirer quelque chose, c&rsquo;est de passer par les builds <strong>nightly</strong> (cu128/cu129, Python 3.13 conseillé) ou de compiler PyTorch depuis les sources. Ça fonctionne, mais ce n&rsquo;est pas une version stable définitive.</p>



<p class="wp-block-paragraph">Et ça dure. La série 50 est sortie début 2025 ; on est mi-2026 et le support officiel de sm_120 dans le PyTorch stable n&rsquo;est toujours pas là. Les demandes côté PyTorch (dont une qui cite nommément la 5070 Ti) sont encore ouvertes. Plus d&rsquo;un an à bricoler du nightly pour faire tourner une carte vendue, entre autres, pour l&rsquo;IA : c&rsquo;est le monde à l&rsquo;envers. Et le plus cocasse, c&rsquo;est qu&rsquo;on parle déjà de la suite : les fuites (Kopite7kimi, relayé par Wccftech) annoncent une génération RTX 60 sous architecture Rubin pour le second semestre 2027. Autrement dit, NVIDIA prépare déjà la relève alors que la génération actuelle n&rsquo;est toujours pas correctement prise en charge par la stack logicielle. Bref, si tu veux du NVIDIA sans prise de tête logicielle, une 3090 ou 4090 d&rsquo;occasion t&rsquo;évitera ces galères ; la 5090 ne se justifie que si tu as vraiment besoin de sa puissance brute et que le tuning logiciel ne te fait pas peur.</p>



<p class="wp-block-paragraph"><strong>AMD / ROCm.</strong> Sur les gros GPU AMD dédiés, ROCm progresse et PyTorch a ses builds. Mais sur les <strong>iGPU Ryzen AI récents (Strix Halo compris), le support ROCm reste partiel en 2026</strong>. Ollama tourne très bien en CPU+RAM, mais sans accélération GPU complète. Donc le mini-PC AMD 64 Go que tu lorgnes : il chargera de gros modèles, mais souvent en s&rsquo;appuyant sur le CPU. À garder en tête avant d&rsquo;acheter.</p>



<p class="wp-block-paragraph"><strong>Apple / Metal / MLX.</strong> PyTorch a un backend MPS qui fonctionne, mais tous les ops ne sont pas couverts. Pour Apple Silicon, le vrai chemin c&rsquo;est <strong>MLX</strong> (le framework d&rsquo;Apple) ou Ollama/llama.cpp. La bonne nouvelle : la grosse bande passante mémoire (273 Go/s sur M4 Pro) compense, et le perf/watt est excellent.</p>



<p class="wp-block-paragraph"><strong>Pascal (P100/V100).</strong> CUDA-capable, donc Ollama/vLLM/ComfyUI tournent. Mais c&rsquo;est de l&rsquo;archi ancienne : pas de FP8, pas de Tensor Cores modernes, et il faut surveiller que les versions récentes de PyTorch ne lâchent pas le support des vieilles compute capabilities (sm_60/sm_70). Plus les drivers <strong>data center</strong> (pas GeForce) et le cooling DIY. C&rsquo;est jouable, mais ce n&rsquo;est clairement pas plug-and-play.</p>



<p class="wp-block-paragraph"><strong>Jetson.</strong> Écosystème Linux embarqué (JetPack), pas Windows. CUDA présent mais parfois plus limité que sur GPU desktop côté bibliothèques. Parfait pour de l&rsquo;edge, pas pour reproduire ta station de dev.</p>



<h2 class="wp-block-heading">En résumé : quel matériel pour quel besoin</h2>



<ul class="wp-block-list">
<li><strong>Découvrir, RAG léger, 7B, petit budget.</strong> RTX 3060 12 Go d&rsquo;occasion, ou une Tesla P4/T4 si tu acceptes le bricolage. T4 si c&rsquo;est pour du H24 sobre. Et si tu es à l&rsquo;aise avec le tuning matériel, la V100 32 Go à ~350 € est imbattable en VRAM/prix.</li>



<li><strong>Bosser sérieusement, 32B, ComfyUI, le meilleur rapport qualité/prix.</strong> La <strong>RTX 3090 24 Go d&rsquo;occasion (700–1 000 €)</strong>. Sans hésiter. CUDA natif, 24 Go, bande passante correcte. Le neuf ne sert à rien.</li>



<li><strong>Charger de gros modèles 70B sans exploser le budget GPU.</strong> Un mini-PC à mémoire unifiée 64–128 Go (Minisforum, Strix Halo, ~2 300 €). En acceptant la lenteur et le support GPU partiel sous Linux.</li>



<li><strong>Nœud IA allumé en permanence, basse conso.</strong> Mac mini M4 (~2 800 € en 64 Go) ou Jetson. Conso de N100, moteur IA en plus.</li>



<li><strong>70B confortable, perf/watt propre, format bureau.</strong> Mac Studio M4 (~4 400 €) ou DGX Spark (~5 000 €), si le budget suit.</li>



<li><strong>Image lourde, puissance brute, training.</strong> RTX 4090 d&rsquo;occasion (~1 000–1 100 €) ou 5090 (3 500–5 000 €), archi récente obligatoire, sans oublier que la config 5090 complète tape dans les 1 000 W.</li>
</ul>



<p class="wp-block-paragraph">Le bon réflexe : pars de ton usage réel (inférence ? image ? always-on ?), déduis la mémoire dont tu as besoin, vérifie que ta stack supporte le matériel <strong>au GPU</strong>, et seulement après regarde le prix. Dans cet ordre. La machine la plus tape-à-l&rsquo;œil sur le papier n&rsquo;est pas forcément celle qui tournera le mieux chez toi.</p>



<p class="wp-block-paragraph">Et garde en tête les deux factures et le calendrier. À l&rsquo;achat, la mémoire est en pleine flambée et la tendance reste haussière jusqu&rsquo;en 2027-2028 : à ces prix-là, le calcul le plus malin n&rsquo;est pas forcément d&rsquo;acheter aujourd&rsquo;hui. Pour beaucoup, attendre deux ans que le marché se détende et tenir avec les API entre-temps coûte moins cher que d&rsquo;immobiliser plusieurs milliers d&rsquo;euros dans une machine achetée au pic. Si tu veux quand même du local maintenant, passe par l&rsquo;occasion, pas par du neuf gourmand en mémoire. En consommation, un GPU qui tourne, c&rsquo;est une centaine d&rsquo;euros par mois sur ta facture, chiffre réel à l&rsquo;appui. L&rsquo;IA en local n&rsquo;est pas gratuite. Elle peut valoir largement le coup, mais en connaissance de cause, les deux factures posées sur la table, et parfois la meilleure décision c&rsquo;est juste d&rsquo;attendre.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://tazmenworld.com/2026/06/11/quel-materiel-et-pour-quel-prix-en-2026-pour-faire-de-lia-en-local/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>J&#8217;ai quitté OpenRouter pour OpenCode Go : ce que ça change vraiment sur la facture</title>
		<link>https://tazmenworld.com/2026/06/09/jai-quitte-openrouter-pour-opencode-go-ce-que-ca-change-vraiment-sur-la-facture/</link>
					<comments>https://tazmenworld.com/2026/06/09/jai-quitte-openrouter-pour-opencode-go-ce-que-ca-change-vraiment-sur-la-facture/#respond</comments>
		
		<dc:creator><![CDATA[tazmen3]]></dc:creator>
		<pubDate>Tue, 09 Jun 2026 06:49:40 +0000</pubDate>
				<category><![CDATA[Non classé]]></category>
		<guid isPermaLink="false">https://tazmenworld.com/?p=312</guid>

					<description><![CDATA[Je fais tourner un agent autonome (Hermes Agent de Nous Research) sur un mini PC dédié à la maison. Jusqu&#8217;à cette semaine, toutes ses requêtes LLM passaient par OpenRouter, avec DeepSeek V4 Flash comme modèle par défaut. OpenRouter, c&#8217;est pratique : une seule clé, des dizaines de modèles, paiement à l&#8217;usage. Mais le paiement à [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img width="1024" height="572"  alt="" class="wp-image-316"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/opencode_cleanup.jpeg" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/opencode_cleanup.jpeg 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/opencode_cleanup-300x168.jpeg 300w, https://tazmenworld.com/wp-content/uploads/2026/06/opencode_cleanup-768x429.jpeg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Je fais tourner un agent autonome (<a href="https://github.com/NousResearch/hermes-agent">Hermes Agent</a> de Nous Research) sur un mini PC dédié à la maison. Jusqu&rsquo;à cette semaine, toutes ses requêtes LLM passaient par OpenRouter, avec DeepSeek V4 Flash comme modèle par défaut.</p>



<p class="wp-block-paragraph">OpenRouter, c&rsquo;est pratique : une seule clé, des dizaines de modèles, paiement à l&rsquo;usage. Mais le paiement à l&rsquo;usage a un défaut quand on laisse tourner un agent : on ne sait jamais à l&rsquo;avance ce qu&rsquo;on va payer.</p>



<p class="wp-block-paragraph">J&rsquo;ai regardé mes chiffres. Ils m&rsquo;ont décidé.</p>



<h2 class="wp-block-heading">Les chiffres qui font mal</h2>



<p class="wp-block-paragraph">Sur <strong>2 jours</strong> d&rsquo;utilisation, voici ce que mon dashboard OpenRouter affichait :</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Modèle</th><th>Coût</th><th>Requêtes</th><th>Tokens</th></tr></thead><tbody><tr><td>DeepSeek V4 Flash</td><td>2,31 $</td><td>861</td><td>36 M</td></tr><tr><td>DeepSeek V4 Pro</td><td>1,40 $</td><td>13</td><td>~1,8 M</td></tr><tr><td><strong>Total</strong></td><td><strong>3,71 $</strong></td><td><strong>874</strong></td><td><strong>37,8 M</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Deux choses sautent aux yeux.</p>



<figure class="wp-block-image size-large"><img width="1024" height="331"  alt="" class="wp-image-315"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-4-1024x331.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-4-1024x331.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/image-4-300x97.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/image-4-768x248.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/image-4-1536x497.png 1536w, https://tazmenworld.com/wp-content/uploads/2026/06/image-4.png 1973w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">D&rsquo;abord, 3,71 $ en deux jours. Si je projette ça sur un mois, je tourne autour de <strong>55 $</strong>. C&rsquo;est beaucoup pour un agent perso.</p>



<p class="wp-block-paragraph">Ensuite, le détail qui m&rsquo;a le plus surpris : DeepSeek V4 Pro. <strong>13 requêtes seulement, mais 1,40 $</strong>  soit près de 40 % de ma facture pour 1,5 % de mes appels. Ces quelques requêtes lourdes que l&rsquo;agent décide de router vers un gros modèle, on ne les voit pas venir. Et c&rsquo;est exactement là que le paiement à l&rsquo;usage devient imprévisible.</p>



<h2 class="wp-block-heading">OpenCode Go : le coût fixe</h2>



<p class="wp-block-paragraph"><a href="https://opencode.ai/go">OpenCode Go</a>, c&rsquo;est un abonnement à <strong>10 $/mois</strong> (5 $ le premier mois) qui donne accès à une douzaine de modèles open source curatés : DeepSeek V4 Flash et Pro, Qwen3, Kimi K2, GLM-5, MiniMax, MiMo.</p>



<p class="wp-block-paragraph">Le point clé pour moi : l&rsquo;endpoint est <strong>compatible OpenAI</strong>. Pas besoin d&rsquo;utiliser l&rsquo;outil OpenCode lui-même. On branche la clé sur n&rsquo;importe quel agent qui parle à une API LLM/Hermes dans mon cas.</p>



<h2 class="wp-block-heading">La migration, étape par étape</h2>



<p class="wp-block-paragraph">Bonne surprise : Hermes supporte OpenCode Go nativement. La section est déjà prévue dans le fichier de config. La bascule m&rsquo;a pris cinq minutes.</p>



<h3 class="wp-block-heading">1. Récupérer la clé OpenCode Go</h3>



<p class="wp-block-paragraph">Après abonnement sur <a href="https://opencode.ai/go">opencode.ai/go</a>, la clé API se récupère depuis le dashboard. Elle commence par <code>sk-</code>.</p>



<h3 class="wp-block-heading">2. Ajouter la clé dans le <code>.env</code></h3>



<p class="wp-block-paragraph">Le fichier d&rsquo;environnement de Hermes se trouve dans <code>~/.hermes/.env</code>. On y décommente la ligne dédiée à OpenCode Go et on colle la clé :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>OPENCODE_GO_API_KEY=sk-votre-cle-ici</code></pre>



<p class="wp-block-paragraph">À noter : on peut laisser l&rsquo;ancienne clé OpenRouter en place. Hermes utilise le provider défini dans la config, pas celui dont la clé est présente. Pratique pour revenir en arrière sans rien réécrire.</p>



<h3 class="wp-block-heading">3. Pointer Hermes sur OpenCode Go</h3>



<p class="wp-block-paragraph">Trois commandes suffisent. On change le provider, l&rsquo;URL de base, et le modèle par défaut :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>hermes config set model.provider opencode-go
hermes config set model.base_url https://opencode.ai/zen/go/v1
hermes config set model.default opencode-go/deepseek-v4-flash</code></pre>



<p class="wp-block-paragraph">Je garde le même modèle (DeepSeek V4 Flash), je change juste le tuyau qui y mène.</p>



<h3 class="wp-block-heading">4. Vérifier depuis Telegram</h3>



<p class="wp-block-paragraph">Mon Hermes est piloté en partie via Telegram. La commande <code>/model</code> affiche la configuration courante et permet de changer de provider à la volée. C&rsquo;est le moyen le plus rapide de confirmer que la bascule a pris.</p>



<figure class="wp-block-image size-full"><img width="424" height="341"  alt="" class="wp-image-313"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-2.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-2.png 424w, https://tazmenworld.com/wp-content/uploads/2026/06/image-2-300x241.png 300w" sizes="auto, (max-width: 424px) 100vw, 424px" /></figure>



<p class="wp-block-paragraph">Et le résultat une fois le modèle sélectionné :</p>



<figure class="wp-block-image size-full"><img width="496" height="199"  alt="" class="wp-image-314"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-3.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-3.png 496w, https://tazmenworld.com/wp-content/uploads/2026/06/image-3-300x120.png 300w" sizes="auto, (max-width: 496px) 100vw, 496px" /></figure>



<p class="wp-block-paragraph">C&rsquo;est fait. L&rsquo;agent tourne désormais entièrement sur OpenCode Go.</p>



<h2 class="wp-block-heading">Le calcul, sans enjoliver</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th></th><th>Sur 2 jours</th><th>Projeté sur ~30 jours</th></tr></thead><tbody><tr><td>OpenRouter (réel)</td><td>3,71 $</td><td>~55 $</td></tr><tr><td>OpenCode Go (fixe)</td><td>—</td><td>10 $</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Sur le papier, c&rsquo;est <strong>80 % d&rsquo;économie</strong>. Mais je veux être honnête sur deux nuances, parce que c&rsquo;est facile de vendre du rêve avec ce genre de tableau.</p>



<p class="wp-block-paragraph"><strong>Nuance 1 : mes deux jours étaient atypiques.</strong> J&rsquo;étais en plein build de mon serveur d&rsquo;automation, avec des sessions très denses. Mon usage courant est plus léger. Donc les 55 $ projetés sont un plafond, pas une moyenne.</p>



<p class="wp-block-paragraph"><strong>Nuance 2 : OpenCode Go n&rsquo;est pas illimité.</strong> Les limites sont exprimées en valeur dollar, pas en nombre de requêtes, et elles se rechargent toutes les 5 heures. Les modèles plus légers durent plus longtemps que les gros. Si vous balancez du DeepSeek V4 Pro en continu, vous taperez le plafond. Pour un usage agent normal sur un modèle Flash, ça passe largement.</p>



<p class="wp-block-paragraph">Autrement dit : l&rsquo;économie est réelle, mais elle suppose un usage qui rentre dans les limites du forfait. Ce n&rsquo;est pas une licence pour consommer sans compter.</p>



<h2 class="wp-block-heading">Ce que je retiens</h2>



<p class="wp-block-paragraph">Le vrai gain, ce n&rsquo;est pas seulement le prix. C&rsquo;est la <strong>prévisibilité</strong>. Je sais que je paie 10 $ ce mois-ci, point. Plus de facture qui dérape à cause de quelques requêtes routées vers un modèle premium sans que je l&rsquo;aie demandé.</p>



<p class="wp-block-paragraph">Pour un agent qui tourne 24/7 sur du matériel perso, c&rsquo;est exactement ce que je cherchais : un coût plat, une seule clé, et assez de modèles pour ne jamais être bloqué.</p>



<h2 class="wp-block-heading">Je n&rsquo;abandonne pas OpenRouter pour autant</h2>



<p class="wp-block-paragraph">Important : OpenCode Go remplace OpenRouter pour le <strong>cerveau texte</strong> de mon agent, pas pour tout le reste. Je garde OpenRouter en parallèle, et il garde tout son sens pour des usages plus spécialisés : le TTS, la génération d&rsquo;image et la génération de vidéo. C&rsquo;est devenu un vrai hub multimodal, là où le paiement à l&rsquo;usage reste le bon modèle, on ne génère pas une vidéo toutes les cinq minutes.</p>



<p class="wp-block-paragraph">En vidéo justement, je travaille beaucoup en local sur ma machine principale (ComfyUI, GPU dédié). LTX et Wan sont d&rsquo;excellents modèles open source, largement suffisants pour la plupart de mes besoins, et gratuits une fois le matériel amorti.</p>



<p class="wp-block-paragraph">Mais soyons honnêtes : quand je veux le résultat au-dessus du lot, un Seedance 2.0 reste exceptionnel. C&rsquo;est là que le cloud garde l&rsquo;avantage  pour ces générations ponctuelles où la qualité prime sur le coût. D&rsquo;où l&rsquo;intérêt de garder une porte ouverte sur OpenRouter, qui donne accès à ce genre de modèle sous la même clé.</p>



<p class="wp-block-paragraph">La bonne architecture, pour moi, n&rsquo;est donc pas « tout cloud » ni « tout local ». C&rsquo;est : <strong>OpenCode Go pour le LLM de l&rsquo;agent</strong> (coût fixe, prévisible), <strong>le local pour le gros du multimodal</strong> (LTX, Wan), et <strong>OpenRouter en appoint</strong> pour le TTS et les générations haut de gamme comme Seedance 2.0.</p>



<h2 class="wp-block-heading">En résumé</h2>



<p class="wp-block-paragraph">Si votre conso OpenRouter en LLM dépasse régulièrement 10 $/mois, basculer le cerveau de votre agent vers OpenCode Go est vite rentable. En dessous, restez sur le paiement à l&rsquo;usage vous paierez moins. Et dans les deux cas, gardez OpenRouter sous la main pour ce qu&rsquo;il fait désormais très bien : le multimodal à la demande.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tazmenworld.com/2026/06/09/jai-quitte-openrouter-pour-opencode-go-ce-que-ca-change-vraiment-sur-la-facture/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pourquoi acheter un Mac mini ? Alors qu&#8217;un mini PC à 130€ fait tourner Hermes Agent 24h/24 aussi bien</title>
		<link>https://tazmenworld.com/2026/06/05/pourquoi-acheter-un-mac-mini-alors-quun-mini-pc-a-130e-fait-tourner-hermes-agent-24h-24-aussi-bien/</link>
					<comments>https://tazmenworld.com/2026/06/05/pourquoi-acheter-un-mac-mini-alors-quun-mini-pc-a-130e-fait-tourner-hermes-agent-24h-24-aussi-bien/#respond</comments>
		
		<dc:creator><![CDATA[tazmen3]]></dc:creator>
		<pubDate>Fri, 05 Jun 2026 13:54:20 +0000</pubDate>
				<category><![CDATA[Non classé]]></category>
		<guid isPermaLink="false">https://tazmenworld.com/?p=296</guid>

					<description><![CDATA[Depuis quelques mois, je vois passer beaucoup de publications et de vidéos YouTube qui expliquent qu&#8217;il faut un Mac mini ou un VPS pour faire tourner un agent autonome comme OpenClow ou Hermes Agent. 700€ la machine, ou un abonnement mensuel qui part indéfiniment. Et en y réfléchissant bien, à ce qu&#8217;on leur demande concrètement [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img width="1024" height="569"  alt="" class="wp-image-307"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/mac-vs-n150v2-1024x569.jpg" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/mac-vs-n150v2-1024x569.jpg 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/mac-vs-n150v2-300x167.jpg 300w, https://tazmenworld.com/wp-content/uploads/2026/06/mac-vs-n150v2-768x427.jpg 768w, https://tazmenworld.com/wp-content/uploads/2026/06/mac-vs-n150v2-1536x854.jpg 1536w, https://tazmenworld.com/wp-content/uploads/2026/06/mac-vs-n150v2.jpg 1682w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Depuis quelques mois, je vois passer beaucoup de publications et de vidéos YouTube qui expliquent qu&rsquo;il faut un Mac mini ou un VPS pour faire tourner un agent autonome comme OpenClow ou Hermes Agent. 700€ la machine, ou un abonnement mensuel qui part indéfiniment. Et en y réfléchissant bien, à ce qu&rsquo;on leur demande concrètement : tourner 24h/24, attendre des messages Telegram, exécuter des workflows la nuit pendant qu&rsquo;on dort. Pas de l&rsquo;inférence lourde, pas de rendu 3D. Juste orchestrer et déléguer.</p>



<p class="wp-block-paragraph">Je vais te montrer une autre voie : un mini PC à 130€, moins gourmand, moins cher, qui fait exactement le même boulot.</p>



<p class="wp-block-paragraph">Cette machine tourne sans écran ni clavier depuis plusieurs semaines chez moi. Elle reçoit mes ordres par Telegram, exécute des tâches en arrière-plan, et s&rsquo;appuie sur ma machine principale ou OpenRouter quand elle a besoin de compute. C&rsquo;est le <strong>control plan permanent</strong> du setup, pas la brute de calcul.</p>



<p class="wp-block-paragraph">Voilà comment j&rsquo;ai fait, brique par brique, avec les détails d&rsquo;installation que j&rsquo;aurais aimé trouver en un seul endroit.</p>



<figure class="wp-block-image size-full"><img width="1020" height="768"  alt="" class="wp-image-297"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/PXL_20260604_155539924.jpg" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/PXL_20260604_155539924.jpg 1020w, https://tazmenworld.com/wp-content/uploads/2026/06/PXL_20260604_155539924-300x226.jpg 300w, https://tazmenworld.com/wp-content/uploads/2026/06/PXL_20260604_155539924-768x578.jpg 768w" sizes="auto, (max-width: 1020px) 100vw, 1020px" /></figure>



<h2 class="wp-block-heading">1. Le matos et pourquoi pas autre chose</h2>



<h3 class="wp-block-heading">Le mini PC : MLLSE G2 Pro</h3>



<p class="wp-block-paragraph">Intel N150, 12 Go de LPDDR5, 512 Go de SSD, WiFi 5, Bluetooth 5.0. Windows 11 Pro pré-installé, que j&rsquo;ai remplacé par du Linux en dix minutes.</p>



<p class="wp-block-paragraph">Le N150 est un quad-core basse consommation. Il ne va pas faire tourner un Llama 70B en local. Ce n&rsquo;est pas son rôle. Son rôle, c&rsquo;est d&rsquo;être <strong>sobre et toujours allumé</strong>. Sous charge normale de serveur, il tire <strong>9W</strong>. C&rsquo;est ridicule. Une ampoule LED de bureau en consomme davantage. Ramené à l&rsquo;année entière, ça représente environ <strong>8€ d&rsquo;électricité</strong> pour un serveur qui tourne 24h/24, à comparer aux 180€ d&rsquo;un VPS entrée de gamme sur la même période, rien qu&rsquo;en abonnement. Le chassis est conçu pour un usage permanent : pas de batterie qui gonfle, pas de ventilo qui s&rsquo;encrasse.</p>



<h3 class="wp-block-heading">Pourquoi pas un VPS cloud ?</h3>



<p class="wp-block-paragraph">5€/mois, ça paraît rien. Sur trois ans, tu as payé 180€ pour une machine qui n&rsquo;est pas chez toi, qui ne voit pas ton réseau local, et qui te facture chaque byte de trafic sortant. Mon agent IA a besoin de parler à Ollama sur ma machine principale, à ComfyUI, à SearXNG. Avec un VPS, tout ça passerait soit par internet (latence plus coût), soit par un tunnel VPN. Avec un mini PC sur le LAN, c&rsquo;est une simple requête HTTP sur le réseau interne. Pas de souci.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th></th><th>Mini PC local</th><th>VPS cloud</th></tr></thead><tbody><tr><td>Coût d&rsquo;entrée</td><td>130€ une fois</td><td>0€</td></tr><tr><td>Abonnement mensuel</td><td>0€</td><td>5 à 15€/mois</td></tr><tr><td>Coût total sur 3 ans</td><td>~154€ (matériel + élec)</td><td>180 à 540€</td></tr><tr><td>Accès réseau local</td><td>✅ Natif, zéro config</td><td>❌ Tunnel VPN requis</td></tr><tr><td>Latence vers Ollama, ComfyUI</td><td>&lt; 1ms (LAN)</td><td>20 à 100ms+</td></tr><tr><td>Données chez soi</td><td>✅</td><td>❌ Chez le prestataire</td></tr><tr><td>Coupure si impayé</td><td>Non</td><td>Oui</td></tr><tr><td>Upgrade RAM / SSD</td><td>✅ Possible</td><td>Dépend de l&rsquo;offre</td></tr><tr><td>Accès admin complet</td><td>✅ Root physique</td><td>✅ Root SSH</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Le mini PC coûte plus cher le premier jour. Il est moins cher dès le quatorzième mois, et il reste sur ton réseau.</p>



<h3 class="wp-block-heading">Pourquoi pas un vieux laptop ?</h3>



<p class="wp-block-paragraph">Un laptop qui tourne 24h/24, c&rsquo;est une batterie qui gonfle dans les douze mois, un ventilo qui accumule de la poussière, et une consommation 3 à 5× supérieure au mini PC. La machine n&rsquo;est pas faite pour ça. Le mini PC, si.</p>



<h3 class="wp-block-heading">Pourquoi pas le Mac mini M4 à 700€ ?</h3>



<p class="wp-block-paragraph">Parce que le gros calcul, je l&rsquo;ai déjà : Ryzen 9 + RTX 5070 Ti sur ma machine principale. Ce que je cherche ici, c&rsquo;est un <strong>orchestrateur sobre et permanent</strong> qui sait déléguer. La même logique headless que partout ailleurs : mettre le bon outil au bon endroit, ne pas gâcher la ressource. Le Mac mini ferait la même chose six fois plus cher.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2. La stack : ce qu&rsquo;on installe et pourquoi chaque brique</h2>



<p class="wp-block-paragraph">Avant le détail de l&rsquo;installation, une vue d&rsquo;ensemble de l&rsquo;architecture cible.</p>



<p class="wp-block-paragraph">[SCHÉMA : tazmenworld ↔ autoserver ↔ Telegram ↔ internet]</p>



<figure class="wp-block-image size-large"><img width="1024" height="936"  alt="" class="wp-image-310"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image-1-1024x936.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image-1-1024x936.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/image-1-300x274.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/image-1-768x702.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/image-1.png 1205w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Le control plan (<code>autoserver</code>) décide et orchestre. Le compute (<code>tazmenworld</code>) calcule. La seule sortie cloud : les appels LLM vers OpenRouter. C&rsquo;est du <strong>pay-per-use</strong>, pas un abonnement fixe. À l&rsquo;usage courant, quelques dizaines de requêtes par jour sur DeepSeek V4, ça se chiffre en centimes. Tout le reste reste sur le réseau local.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3. Ubuntu Server 26.04 LTS : le socle headless</h2>



<p class="wp-block-paragraph">Pas d&rsquo;interface graphique. C&rsquo;est un serveur, il vit en console. On choisit <strong>Ubuntu Server 26.04 LTS « Resolute Raccoon »</strong>, supporté jusqu&rsquo;en 2031 (2036 avec Ubuntu Pro, gratuit jusqu&rsquo;à 5 machines personnelles).</p>



<h3 class="wp-block-heading">Créer la clé USB depuis tazmenworld</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>cd ~/Downloads
wget https://releases.ubuntu.com/26.04/ubuntu-26.04-live-server-amd64.iso

# Identifier la clé USB
lsblk

# Écrire l'image (remplace /dev/sdX, ATTENTION : tout sera effacé)
sudo dd if=ubuntu-26.04-live-server-amd64.iso of=/dev/sdX bs=4M status=progress conv=fsync
sync</code></pre>



<h3 class="wp-block-heading">Options d&rsquo;installation qui comptent</h3>



<p class="wp-block-paragraph">On démarre sur la clé (touche <strong>F7</strong> ou <strong>Del</strong> au boot pour le menu), puis dans l&rsquo;installeur Subiquity :</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Étape</th><th>Choix</th></tr></thead><tbody><tr><td>Type d&rsquo;installation</td><td><strong>Ubuntu Server (minimized)</strong>, moins de paquets, moins de RAM grignotée</td></tr><tr><td>Réseau</td><td>DHCP pour l&rsquo;instant, on passe en IP statique après</td></tr><tr><td>Stockage</td><td><strong>Use entire disk</strong>, pas de LVM pour simplifier</td></tr><tr><td>Nom du serveur</td><td><code>autoserver</code></td></tr><tr><td><strong>OpenSSH</strong></td><td>✅ <strong>À cocher absolument</strong>, sinon tu ne peux plus te connecter à distance</td></tr><tr><td>Snaps additionnels</td><td>Rien, on installe tout manuellement</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Une fois installé, on retire la clé USB, on redémarre. La machine boote en console texte. C&rsquo;est normal, c&rsquo;est voulu.</p>



<h3 class="wp-block-heading">Mise à jour complète et outils de base</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo apt update &amp;&amp; sudo apt upgrade -y
sudo apt autoremove -y

sudo apt install -y \
  curl wget git nano htop net-tools \
  ca-certificates gnupg lsb-release \
  ufw fail2ban unattended-upgrades \
  tree jq ncdu

sudo reboot</code></pre>



<h3 class="wp-block-heading">IP statique via Netplan</h3>



<p class="wp-block-paragraph">Un serveur ne peut pas changer d&rsquo;IP à chaque redémarrage. On configure une IP fixe via Netplan, mais avant d&rsquo;écrire quoi que ce soit, on vérifie <strong>la vraie adresse de la passerelle</strong>. Sur ton réseau, elle n&rsquo;est pas forcément <code>192.168.1.1</code>. La vérifier d&rsquo;abord sur <code>tazmenworld</code> :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>ip route | grep default
# Exemple : default via 192.168.1.254 dev enp14s0
#                       ↑ c'est cette IP qu'on met dans netplan</code></pre>



<p class="wp-block-paragraph">Puis on identifie l&rsquo;interface réseau sur <code>autoserver</code> :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>ip link show
# Exemple : enp2s0 (Ethernet), préférer l'Ethernet au WiFi pour un serveur</code></pre>



<p class="wp-block-paragraph">On édite la config :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo nano /etc/netplan/00-installer-config.yaml</code></pre>



<p class="wp-block-paragraph">yaml</p>



<pre class="wp-block-code"><code>network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:                        # adapter à ton interface
      addresses:
        - 192.168.1.20/24
      routes:
        - to: default
          via: 192.168.1.254       # ta vraie passerelle, pas une supposée
      nameservers:
        addresses: &#91;1.1.1.1, 8.8.8.8]
      dhcp4: <strong>false</strong></code></pre>



<p class="wp-block-paragraph">On applique et on vérifie :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo netplan apply
ip addr show enp2s0        # l'IP 192.168.1.20 doit apparaître
ping -c 3 1.1.1.1          # si ça ne répond pas → passerelle incorrecte
ping -c 3 tazmenworld      # joignabilité réseau local</code></pre>



<h3 class="wp-block-heading">Synchronisation horaire</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo timedatectl set-timezone Europe/Paris
timedatectl status
# "System clock synchronized: yes" doit apparaître</code></pre>



<h3 class="wp-block-heading">Sécurisation SSH</h3>



<p class="wp-block-paragraph">On génère une paire de clés ed25519 sur <code>tazmenworld</code> :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>ssh-keygen -t ed25519 -C "tazmenworld→autoserver" -f ~/.ssh/autoserver_key</code></pre>



<p class="wp-block-paragraph">On copie la clé publique sur <code>autoserver</code> (avec le mot de passe temporaire) :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>ssh-copy-id -i ~/.ssh/autoserver_key.pub &lt;votre_user&gt;@192.168.1.20</code></pre>



<p class="wp-block-paragraph">On teste la connexion par clé :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>ssh -i ~/.ssh/autoserver_key &lt;votre_user&gt;@192.168.1.20</code></pre>



<p class="wp-block-paragraph">Puis on durcit la config SSH sur <code>autoserver</code> :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo nano /etc/ssh/sshd_config</code></pre>



<pre class="wp-block-code"><code>Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 30
AllowUsers &lt;votre_user&gt;
X11Forwarding no</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Spécificité Ubuntu 26.04, deux points à ne pas rater :</strong></p>



<p class="wp-block-paragraph"><strong>1. X11Forwarding en double.</strong> Le fichier par défaut contient souvent <code>X11Forwarding yes</code> plus haut. Commente cette ligne, sinon ta ligne <code>no</code> en bas sera ignorée.</p>



<p class="wp-block-paragraph"><strong>2. Socket activation.</strong> Ubuntu 26.04 gère le port SSH via <code>ssh.socket</code>. Un simple <code>restart ssh</code> ne suffit pas :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo systemctl daemon-reload
sudo systemctl restart ssh.socket</code></pre>
</blockquote>



<p class="wp-block-paragraph"><strong>⚠️ Teste depuis un deuxième terminal avant de fermer ta session actuelle :</strong></p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code># Depuis tazmenworld, nouveau terminal
ssh -i ~/.ssh/autoserver_key -p 2222 &lt;votre_user&gt;@192.168.1.20</code></pre>



<p class="wp-block-paragraph">Si ça passe, on peut fermer l&rsquo;ancienne session. On configure ensuite un profil SSH sur <code>tazmenworld</code> pour ne plus jamais taper l&rsquo;IP :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>nano ~/.ssh/config</code></pre>



<pre class="wp-block-code"><code>Host autoserver
    HostName 192.168.1.20
    Port 2222
    User &lt;votre_user&gt;
    IdentityFile ~/.ssh/autoserver_key
    ServerAliveInterval 60</code></pre>



<p class="wp-block-paragraph">Désormais : <code>ssh autoserver</code>. C&rsquo;est tout.</p>



<h3 class="wp-block-heading">Pare-feu UFW et Fail2ban</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code># Règles UFW
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp comment "SSH"
sudo ufw allow 5678/tcp comment "n8n"
sudo ufw allow from 192.168.1.0/24 comment "Réseau local"
sudo ufw enable
sudo ufw status verbose</code></pre>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code># Fail2ban, bannissement auto des tentatives de brute-force
sudo nano /etc/fail2ban/jail.local</code></pre>



<p class="wp-block-paragraph">ini</p>



<pre class="wp-block-code"><code>&#91;DEFAULT]
bantime  = 3600
findtime = 600
maxretry = 3

&#91;sshd]
enabled  = true
port     = 2222
logpath  = /var/log/auth.log</code></pre>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd</code></pre>



<h3 class="wp-block-heading">Mises à jour automatiques de sécurité</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo dpkg-reconfigure --priority=low unattended-upgrades
# → Yes</code></pre>



<p class="wp-block-paragraph">Le serveur se patche tout seul sur les failles de sécurité. On n&rsquo;a plus à y penser.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4. Docker : l&rsquo;isolement propre</h2>



<p class="wp-block-paragraph">Pour n8n, on containerise. Docker isole le service, simplifie les mises à jour, et évite de polluer le système hôte.</p>



<p class="wp-block-paragraph"><strong>Note Ubuntu 26.04 :</strong> Resolute Raccoon a supprimé le support de cgroup v1. Docker le gère nativement depuis la v20.10, mais il faut impérativement passer par le <strong>dépôt officiel Docker</strong>, pas le paquet <code>docker.io</code> des dépôts Ubuntu qui est souvent en retard.</p>



<h3 class="wp-block-heading">Installation Docker CE (méthode officielle)</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code># Supprimer d'éventuelles vieilles versions
sudo apt remove -y docker docker-engine docker.io containerd runc <strong>2</strong>&gt;/dev/null

# Clés GPG et dépôt officiel Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb &#91;arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release &amp;&amp; echo "$VERSION_CODENAME") stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io \
                    docker-buildx-plugin docker-compose-plugin</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Si <code>apt update</code> échoue</strong> avec une erreur sur le codename <code>resolute</code> : le dépôt Docker n&rsquo;a peut-être pas encore indexé 26.04. Solution : forcer le codename <code>noble</code> (24.04), les paquets sont compatibles.</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>echo \
  "deb &#91;arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu noble stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null
sudo apt update</code></pre>
</blockquote>



<h3 class="wp-block-heading">Ajouter l&rsquo;utilisateur au groupe docker</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo usermod -aG docker &lt;votre_user&gt;</code></pre>



<p class="wp-block-paragraph"><strong>Piège sur install minimized :</strong> <code>newgrp</code> n&rsquo;est pas disponible. Le groupe ne s&rsquo;active pas dans la session en cours. Tu dois te déconnecter et te reconnecter, sans message d&rsquo;erreur explicite, juste un <code>permission denied</code> silencieux sur <code>docker run</code> si tu oublies ce détail.</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>exit
# puis : ssh autoserver

# Tester depuis la nouvelle session
docker run --rm hello-world
docker compose version</code></pre>



<h3 class="wp-block-heading">Configurer le daemon Docker</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo nano /etc/docker/daemon.json</code></pre>



<p class="wp-block-paragraph">json</p>



<pre class="wp-block-code"><code>{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "default-address-pools": &#91;
    {"base": "172.20.0.0/16", "size": 24}
  ]
}</code></pre>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo systemctl restart docker
docker info | grep -i "log driver"
# Attendu : Logging Driver: json-file</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5. Structure des répertoires</h2>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo mkdir -p /opt/autoserver/{n8n,hermes,shared,backups}
sudo chown -R &lt;votre_user&gt;:&lt;votre_user&gt; /opt/autoserver</code></pre>



<pre class="wp-block-code"><code>/opt/autoserver/
├── n8n/
│   ├── docker-compose.yml
│   ├── .env
│   └── data/            ← volume persistant n8n
├── hermes/
│   └── data/
├── shared/              ← fichiers échangés entre services
└── backups/             ← sauvegardes automatiques</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6. n8n : le moteur de workflows</h2>



<p class="wp-block-paragraph">n8n, c&rsquo;est le chef d&rsquo;orchestre des automatisations que tu as câblées. Il sait : « à 7h chaque matin, lance cette recherche ; si tel webhook arrive, déclenche ce traitement ». Interface visuelle, scriptable, il se connecte à des centaines de services.</p>



<h3 class="wp-block-heading">Fichier d&rsquo;environnement</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>nano /opt/autoserver/n8n/.env</code></pre>



<p class="wp-block-paragraph">env</p>



<pre class="wp-block-code"><code># Réseau
N8N_HOST=0.0.0.0
N8N_PORT=5678
N8N_PROTOCOL=http
WEBHOOK_URL=http://192.168.1.20:5678/

# Sécurité
N8N_ENCRYPTION_KEY=&lt;générer_avec_openssl_rand_-hex_16&gt;
GENERIC_TIMEZONE=Europe/Paris
NODE_ENV=production

# Indispensable en HTTP local, voir section "pièges"
N8N_SECURE_COOKIE=false

# Désactiver la télémétrie (évite des erreurs réseau parasites dans les logs)
N8N_DIAGNOSTICS_ENABLED=false
N8N_VERSION_NOTIFICATIONS_ENABLED=false

# Connexion Ollama sur tazmenworld
OLLAMA_BASE_URL=http://192.168.1.100:11434</code></pre>



<p class="wp-block-paragraph">Pour générer une clé d&rsquo;encryption solide :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>openssl rand -hex 16</code></pre>



<h3 class="wp-block-heading">Docker Compose n8n</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>nano /opt/autoserver/n8n/docker-compose.yml</code></pre>



<p class="wp-block-paragraph">yaml</p>



<pre class="wp-block-code"><code>services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    env_file:
      - .env
    volumes:
      - ./data:/home/node/.n8n
      - /opt/autoserver/shared:/shared
    networks:
      - autoserver_net
    extra_hosts:
      - "tazmenworld:192.168.1.100"

networks:
  autoserver_net:
    name: autoserver_net
    driver: bridge</code></pre>



<p class="wp-block-paragraph">Le <code>extra_hosts</code> permet d&rsquo;appeler <code>http://tazmenworld:11434</code> depuis les workflows n8n au lieu d&rsquo;une IP brute : plus lisible, et ça survit à un changement d&rsquo;IP sans tout recâbler.</p>



<h3 class="wp-block-heading">Fix permissions du volume (indispensable)</h3>



<p class="wp-block-paragraph">n8n tourne dans son container sous l&rsquo;utilisateur <code>node</code> (UID 1000). Si le dossier <code>data</code> appartient à root, il ne peut pas écrire et <strong>crashe en boucle</strong> dès le démarrage sans message clair.</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo chown -R 1000:1000 /opt/autoserver/n8n/data</code></pre>



<h3 class="wp-block-heading">Autoriser Docker à sortir sur internet (UFW)</h3>



<p class="wp-block-paragraph">Par défaut, UFW bloque le forwarding des containers. n8n démarre correctement, mais tout appel HTTP externe échoue en silence : les workflows ne peuvent pas joindre d&rsquo;API extérieure.</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo nano /etc/default/ufw
# Changer cette ligne :
# DEFAULT_FORWARD_POLICY="DROP"  →  DEFAULT_FORWARD_POLICY="ACCEPT"

sudo ufw reload</code></pre>



<h3 class="wp-block-heading">Lancer n8n</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>cd /opt/autoserver/n8n
docker compose up -d
docker compose logs -f     # Ctrl+C pour quitter</code></pre>



<p class="wp-block-paragraph">Quand tu vois <code>n8n ready on ::, port 5678</code>, l&rsquo;interface est accessible depuis <code>tazmenworld</code> via <code>http://192.168.1.20:5678</code>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">7. Hermes Agent : l&rsquo;IA qui décide seule</h2>



<p class="wp-block-paragraph">C&rsquo;est la brique qui fait passer le setup d&rsquo;un serveur d&rsquo;automatisation classique à un <strong>agent IA autonome</strong>. Hermes Agent est un projet open-source de Nous Research (licence MIT) : mémoire persistante entre les sessions, génération de ses propres skills, terminal sandboxé sous Docker, et gateway Telegram intégré. Là où n8n exécute des rails que tu as tracés, Hermes reçoit un objectif et se débrouille.</p>



<h3 class="wp-block-heading">Installation</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash</code></pre>



<p class="wp-block-paragraph">Le script gère tout : Python 3.11, Node.js 22, ripgrep, ffmpeg. Il lance ensuite automatiquement le wizard de configuration.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Prérequis :</strong> internet doit être accessible depuis <code>autoserver</code>. Si <code>curl -I https://github.com</code> répond <code>No route to host</code>, tu as un problème de passerelle dans Netplan. Voir la section sur l&rsquo;IP statique.</p>
</blockquote>



<h3 class="wp-block-heading">Configuration via le wizard</h3>



<figure class="wp-block-image size-large"><img width="1024" height="712"  alt="" class="wp-image-303"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-09-37-1024x712.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-09-37-1024x712.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-09-37-300x208.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-09-37-768x534.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-09-37.png 1498w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Les choix qui importent :</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Étape</th><th>Choix</th></tr></thead><tbody><tr><td>Backend LLM</td><td><strong>OpenRouter</strong>, pour requêter DeepSeek V4</td></tr><tr><td>Clé API OpenRouter</td><td><code>sk-or-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</code></td></tr><tr><td>Modèle</td><td><code>deepseek/deepseek-v4</code></td></tr><tr><td>Outils</td><td>Tout cocher ✅ (web search, génération d&rsquo;image, browser, terminal)</td></tr><tr><td>Terminal backend</td><td><strong>Docker</strong>, sandbox isolé, propre</td></tr><tr><td>Messaging</td><td><strong>Set up messaging now</strong> → Telegram</td></tr><tr><td>Type de service</td><td><strong>System service</strong>, démarre au boot sans session ouverte</td></tr></tbody></table></figure>



<figure class="wp-block-image size-large"><img width="1024" height="764"  alt="" class="wp-image-301"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-21-58-1024x764.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-21-58-1024x764.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-21-58-300x224.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-21-58-768x573.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-21-58.png 1505w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img width="1024" height="601"  alt="" class="wp-image-302"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-26-22-1024x601.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-26-22-1024x601.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-26-22-300x176.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-26-22-768x451.png 768w, https://tazmenworld.com/wp-content/uploads/2026/06/Capture-decran-du-2026-06-04-22-26-22.png 1505w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Configurer le bot Telegram</h3>



<ol class="wp-block-list">
<li>Ouvre Telegram, cherche <code>@BotFather</code> → <code>/newbot</code></li>



<li>Donne un nom et un identifiant à ton bot</li>



<li>Récupère le token : <code>123456789:AAH-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</code></li>



<li>Cherche <code>@userinfobot</code> → note ton User ID numérique</li>



<li>Renseigne le token et l&rsquo;User ID dans le wizard</li>



<li>Réponds <strong>Y</strong> pour le Home Channel (DM direct avec le bot)</li>



<li>Réponds <strong>Y</strong> pour installer comme service en arrière-plan</li>
</ol>



<h3 class="wp-block-heading">Activer le linger : le détail qui rend le setup vraiment autonome</h3>



<p class="wp-block-paragraph">Le gateway Telegram tourne en <strong>user service</strong> systemd. Sans cette configuration, il ne démarre pas au boot si aucune session utilisateur n&rsquo;est ouverte. Résultat : après une coupure de courant à 3h du matin, ton agent reste silencieux jusqu&rsquo;à ce que quelqu&rsquo;un se connecte en SSH.</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>sudo loginctl enable-linger &lt;votre_user&gt;

# Vérifier
loginctl show-user &lt;votre_user&gt; | grep Linger
# Attendu : Linger=yes</code></pre>



<p class="wp-block-paragraph">Une fois activé, le serveur peut redémarrer seul : le gateway Telegram revient en ligne sans intervention de ta part.</p>



<h3 class="wp-block-heading">Vérification et commandes utiles</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code># Statut du gateway
systemctl --user status hermes-gateway

# Test CLI interactif
source ~/.bashrc
hermes
&gt; Bonjour, que peux-tu faire sur ce serveur ?

# Changer de modèle à chaud, sans redémarrage
hermes setup model

# Mettre à jour
hermes update

# Diagnostic complet
hermes doctor</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">8. Intégration avec la stack de tazmenworld</h2>



<p class="wp-block-paragraph">Depuis n8n ou Hermes sur <code>autoserver</code>, tous les services de <code>tazmenworld</code> sont accessibles directement par IP locale :</p>



<pre class="wp-block-code"><code>Ollama        → http://192.168.1.100:11434
Open WebUI    → http://192.168.1.100:3000
ComfyUI       → http://192.168.1.100:8188
SearXNG       → http://192.168.1.100:8080
n8n principal → http://192.168.1.100:5678</code></pre>



<p class="wp-block-paragraph">Pour centraliser ça proprement :</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>nano /opt/autoserver/.env.global</code></pre>



<p class="wp-block-paragraph">env</p>



<pre class="wp-block-code"><code>TAZMENWORLD_IP=192.168.1.100
AUTOSERVER_IP=192.168.1.20

OLLAMA_URL=http://192.168.1.100:11434
OPENWEBUI_URL=http://192.168.1.100:3000
COMFYUI_URL=http://192.168.1.100:8188
SEARXNG_URL=http://192.168.1.100:8080
N8N_TAZMEN_URL=http://192.168.1.100:5678

OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
OPENROUTER_API_KEY=sk-or-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</code></pre>



<p class="wp-block-paragraph">Et les deux instances n8n peuvent se parler : depuis <code>autoserver</code>, un nœud <strong>HTTP Request</strong> vers <code>http://192.168.1.100:5678/webhook/&lt;ton-webhook-id&gt;</code> déclenche un workflow sur <code>tazmenworld</code>. Les deux instances bossent ensemble.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">9. Hermes en action : la démo Telegram</h2>



<p class="wp-block-paragraph">Là où n8n exécute des rails que tu as tracés, Hermes reçoit un <strong>objectif en langage naturel</strong> et se débrouille pour l&rsquo;atteindre. Sa mémoire persistante lui permet de se souvenir des échanges précédents et d&rsquo;ajuster son comportement au fil du temps.</p>



<p class="wp-block-paragraph">Exemple concret, hier soir depuis le téléphone :</p>



<pre class="wp-block-code"><code>Moi :    Fais une veille sur les modèles open-weight sortis cette semaine.
         Résume les 5 plus intéressants en 3 lignes chacun et dépose
         le résumé dans /shared/veille.md

Hermes : Je lance les recherches. Je te préviens quand c'est déposé.

&#91;quelques minutes plus tard]

Hermes : ✅ Résumé déposé dans /shared/veille.md, 5 modèles couverts.</code></pre>



<figure class="wp-block-video"><video height="468" style="aspect-ratio: 748 / 468;" width="748" controls src="https://tazmenworld.com/wp-content/uploads/2026/06/hermes_agent.mp4" class="lws-optimize-lazyload"></video></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Le fichier était là le matin. Je n&rsquo;avais pas rouvert l&rsquo;app entre les deux messages.</p>



<p class="wp-block-paragraph">Ce qui rend ça possible, c&rsquo;est le linger activé plus haut. L&rsquo;agent tourne en fond, il n&rsquo;a pas besoin que tu sois connecté en SSH, il n&rsquo;attend pas que l&rsquo;écran soit allumé. Il fait son boulot, prévient, et attend le prochain ordre.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">10. Les trois pièges que j&rsquo;ai rencontrés</h2>



<h3 class="wp-block-heading">Piège 1 : La passerelle réseau qu&rsquo;on suppose à tort</h3>



<p class="wp-block-paragraph">En configurant l&rsquo;IP statique, j&rsquo;ai mis <code>192.168.1.1</code> comme passerelle sans vérifier. Résultat : ping local OK, accès internet mort. Impossible d&rsquo;installer Hermes : <code>curl -I https://github.com</code> répondait <code>No route to host</code>.</p>



<p class="wp-block-paragraph">La règle : <strong>ne jamais supposer</strong> l&rsquo;IP de la passerelle. La vérifier en amont avec <code>ip route | grep default</code> sur une machine qui marche, reporter la vraie valeur dans Netplan. Vingt secondes de vérification qui évitent une heure de debug.</p>



<h3 class="wp-block-heading">Piège 2 : Les permissions Docker sur trois fronts</h3>



<p class="wp-block-paragraph">Trois problèmes distincts, tous liés aux permissions, tous bloquants à leur façon.</p>



<p class="wp-block-paragraph"><strong>Le groupe docker ne s&rsquo;active pas immédiatement.</strong> Après <code>usermod -aG docker</code>, sur une install minimized <code>newgrp</code> n&rsquo;est pas disponible. Le groupe ne prend effet qu&rsquo;après déconnexion/reconnexion, sans message d&rsquo;erreur explicite, juste un <code>permission denied</code> sur <code>docker run</code>.</p>



<p class="wp-block-paragraph"><strong>n8n crashe en boucle au démarrage.</strong> Le container tourne sous l&rsquo;UID 1000 (<code>node</code>). Si le dossier <code>data</code> appartient à root, n8n ne peut pas écrire et redémarre toutes les trente secondes. Fix : <code>sudo chown -R 1000:1000 /opt/autoserver/n8n/data</code>. C&rsquo;est la première chose à faire avant de lancer le container.</p>



<p class="wp-block-paragraph"><strong>n8n ne sort pas sur internet.</strong> UFW bloque par défaut le forwarding des containers. Les workflows se déclenchent, mais tout appel HTTP externe échoue en silence. Fix : passer <code>DEFAULT_FORWARD_POLICY</code> de <code>"DROP"</code> à <code>"ACCEPT"</code> dans <code>/etc/default/ufw</code>, puis <code>sudo ufw reload</code>.</p>



<h3 class="wp-block-heading">Piège 3 : Le cookie n8n qui bloque la connexion</h3>



<p class="wp-block-paragraph">Tu ouvres l&rsquo;interface, tu entres tes identifiants, ça ne passe pas. Aucun message d&rsquo;erreur clair. n8n exige par défaut un cookie sécurisé qui ne fonctionne qu&rsquo;en HTTPS. En HTTP sur le réseau local, c&rsquo;est l&rsquo;impasse.</p>



<p class="wp-block-paragraph">Une ligne dans le <code>.env</code> règle l&rsquo;affaire :</p>



<p class="wp-block-paragraph">env</p>



<pre class="wp-block-code"><code>N8N_SECURE_COOKIE=false</code></pre>



<p class="wp-block-paragraph">Redémarre le container, l&rsquo;interface s&rsquo;ouvre. À ne configurer qu&rsquo;en local sur un réseau de confiance. Dès qu&rsquo;on expose vers l&rsquo;extérieur, on passe par un reverse proxy HTTPS.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">11. Ce qu&rsquo;on peut faire avec</h2>



<p class="wp-block-paragraph">Le setup une fois en place, voilà ce qui tourne concrètement.</p>



<p class="wp-block-paragraph"><strong>Veille techno automatique.</strong> Chaque matin à 7h, n8n déclenche une recherche via SearXNG sur <code>tazmenworld</code>, envoie les résultats à l&rsquo;agent, et m&rsquo;expédie un digest propre sur Telegram. J&rsquo;ouvre le téléphone au réveil avec un résumé au lieu de vingt onglets à scroller.</p>



<p class="wp-block-paragraph"><strong>Tâches longues en arrière-plan.</strong> Je donne un objectif à Hermes le soir (un comparatif de solutions, une analyse de logs, une rédaction), il découpe, cherche, rédige, et dépose le fichier dans <code>/shared/</code>. Au matin, c&rsquo;est prêt. Le « pendant que tu dors » du titre, c&rsquo;est littéralement ça.</p>



<p class="wp-block-paragraph"><strong>Délégation au GPU.</strong> L&rsquo;agent reçoit une demande de génération d&rsquo;image, mais le N150 n&rsquo;a pas de GPU sérieux. Pas de souci : il envoie le job à ComfyUI sur <code>tazmenworld</code> via <code>http://192.168.1.100:8188</code>, récupère le résultat, me le renvoie. Le control plan décide, le compute exécute.</p>



<p class="wp-block-paragraph"><strong>Webhooks inter-machines.</strong> Un workflow sur <code>autoserver</code> peut déclencher un workflow sur le n8n de <code>tazmenworld</code> via un nœud HTTP Request vers <code>http://192.168.1.100:5678/webhook/&lt;id&gt;</code>. Les deux instances se parlent sans passer par internet.</p>



<p class="wp-block-paragraph"><strong>Sauvegarde automatique à 3h du matin.</strong> Un cron sauvegarde les volumes Docker et garde les 7 dernières copies. Un alias <code>as-status</code> donne en deux secondes l&rsquo;état des containers, la RAM, le disque, et la connectivité vers <code>tazmenworld</code>. Le serveur se surveille tout seul.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">Il y a six mois, monter ce genre de setup demandait une connaissance pointue de Docker, des agents IA, et du self-hosting Linux. Aujourd&rsquo;hui, l&rsquo;installation tient en une soirée, et le résultat c&rsquo;est un control plan IA permanent sur ton réseau local, piloté depuis ton téléphone, qui bosse sans te demander la permission.</p>



<p class="wp-block-paragraph">Le Mac mini n&rsquo;est pas mauvais. Il est juste disproportionné pour ce rôle. Et le vrai problème d&rsquo;un VPS, ce n&rsquo;est pas le prix : c&rsquo;est qu&rsquo;il ne voit pas ton réseau local. Un agent IA qui ne peut pas parler à tes services, c&rsquo;est un outil à moitié aveugle.</p>



<p class="wp-block-paragraph">Le mini PC à 130€ règle les deux problèmes : il est sur ton LAN, il est sobre, il ne s&rsquo;arrête pas. Le calcul lourd, il a juste à savoir l&rsquo;adresse de ta vraie machine pour le déléguer. C&rsquo;est la même logique qu&rsquo;on applique partout ici : ne pas gâcher la ressource, mettre le bon outil au bon endroit.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>Matériel : MLLSE G2 Pro (Intel N150, 12 Go LPDDR5, 512 Go SSD). Stack : Ubuntu Server 26.04 LTS, Docker, n8n, Hermes Agent (Nous Research, licence MIT), DeepSeek V4 via OpenRouter. Les tokens, clés API et mots de passe dans les exemples sont des espaces réservés, génère les tiens avec les commandes indiquées.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://tazmenworld.com/2026/06/05/pourquoi-acheter-un-mac-mini-alors-quun-mini-pc-a-130e-fait-tourner-hermes-agent-24h-24-aussi-bien/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://tazmenworld.com/wp-content/uploads/2026/06/hermes_agent.mp4" length="2948597" type="video/mp4" />

			</item>
		<item>
		<title>RAG vs Gros Contexte : pourquoi tout balancer dans le prompt dégrade tes réponses</title>
		<link>https://tazmenworld.com/2026/06/03/rag-vs-gros-contexte-pourquoi-tout-balancer-dans-le-prompt-degrade-tes-reponses/</link>
					<comments>https://tazmenworld.com/2026/06/03/rag-vs-gros-contexte-pourquoi-tout-balancer-dans-le-prompt-degrade-tes-reponses/#respond</comments>
		
		<dc:creator><![CDATA[tazmen3]]></dc:creator>
		<pubDate>Wed, 03 Jun 2026 12:19:27 +0000</pubDate>
				<category><![CDATA[Non classé]]></category>
		<guid isPermaLink="false">https://tazmenworld.com/?p=292</guid>

					<description><![CDATA[Depuis quelque temps, je vois passer pas mal d&#8217;articles sur l&#8217;IA locale ou dans du cloud, et souvent la même idée revient : jouer sur le contexte. Charger une grosse fenêtre de contexte pour « fixer l&#8217;état » du modèle, cadrer son comportement et orienter le type de réponse qu&#8217;il va te sortir. L&#8217;intention est [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img width="1024" height="573"  alt="" class="wp-image-293"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/rag-context-1024x573.jpeg" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/rag-context-1024x573.jpeg 1024w, https://tazmenworld.com/wp-content/uploads/2026/06/rag-context-300x168.jpeg 300w, https://tazmenworld.com/wp-content/uploads/2026/06/rag-context-768x430.jpeg 768w, https://tazmenworld.com/wp-content/uploads/2026/06/rag-context-1536x859.jpeg 1536w, https://tazmenworld.com/wp-content/uploads/2026/06/rag-context.jpeg 1677w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Depuis quelque temps, je vois passer pas mal d&rsquo;articles sur l&rsquo;IA locale ou dans du cloud, et souvent la même idée revient : jouer sur le contexte. Charger une grosse fenêtre de contexte pour « fixer l&rsquo;état » du modèle, cadrer son comportement et orienter le type de réponse qu&rsquo;il va te sortir. L&rsquo;intention est bonne donner au modèle un maximum de matière pour qu&rsquo;il réponde juste.</p>



<p class="wp-block-paragraph">Le problème, c&rsquo;est que ça part souvent dans le mur. Plus le contexte augmente, plus on tombe dans ce qu&rsquo;on appelle le <em>Lost in the Middle</em> : le modèle finit par perdre l&rsquo;info au milieu de tout ce qu&rsquo;on lui a donné. C&rsquo;est ce que je veux t&rsquo;expliquer ici, simplement  et voir pourquoi, dans la plupart des cas, un <strong>RAG</strong> (Retrieval-Augmented Generation) fait le boulot bien mieux qu&rsquo;un gros contexte.</p>



<h2 class="wp-block-heading">1. Le réflexe « balance tout, il triera »</h2>



<p class="wp-block-paragraph">Coller 800 pages dans la fenêtre et poser sa question, c&rsquo;est tentant parce que c&rsquo;est rapide à mettre en place. Pas de base vectorielle, pas de chunking, pas d&#8217;embeddings à calculer.</p>



<p class="wp-block-paragraph">Le souci, c&rsquo;est qu&rsquo;on mélange deux choses : <strong>la capacité</strong> (combien de tokens le modèle accepte en entrée) et <strong>l&rsquo;attention utile</strong> (ce qu&rsquo;il sait réellement exploiter là-dedans). Avoir 16 Go de VRAM ne veut pas dire qu&rsquo;on les utilise bien souviens-toi de la « taxe d&rsquo;affichage » Windows. Pour le contexte, c&rsquo;est le même principe.</p>



<h2 class="wp-block-heading">2. « Lost in the Middle » : l&rsquo;info au milieu passe à la trappe</h2>



<p class="wp-block-paragraph">Le papier de référence sur le sujet, c&rsquo;est <em>Lost in the Middle: How Language Models Use Long Contexts</em> (Liu et al., arXiv:2307.03172). Son constat : quand l&rsquo;information pertinente est placée <strong>au milieu</strong> d&rsquo;un long contexte, le modèle la retrouve mal.</p>



<p class="wp-block-paragraph">La performance suit une <strong>courbe en U</strong>. Le modèle exploite bien ce qui est en <strong>début</strong> et en <strong>fin</strong> de contexte, et décroche au centre. Autrement dit, ta réponse peut être présente noir sur blanc dans les tokens que tu as fournis, et passer à côté juste parce qu&rsquo;elle est tombée au mauvais endroit. Pour quelqu&rsquo;un qui automatise des workflows, c&rsquo;est un vrai problème : l&rsquo;info est là, mais le résultat est faux.</p>



<figure class="wp-block-image size-full"><img width="997" height="497"  alt="" class="wp-image-294"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/06/image.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/06/image.png 997w, https://tazmenworld.com/wp-content/uploads/2026/06/image-300x150.png 300w, https://tazmenworld.com/wp-content/uploads/2026/06/image-768x383.png 768w" sizes="auto, (max-width: 997px) 100vw, 997px" /></figure>



<h2 class="wp-block-heading">3. Le « context rot » : plus c&rsquo;est gros, plus ça hallucine</h2>



<p class="wp-block-paragraph">« Lost in the middle » est la partie la plus connue. Il existe un phénomène plus large, baptisé <strong>context rot</strong> : la qualité des réponses baisse à mesure que le contexte s&rsquo;allonge, et ça commence <strong>avant</strong> que la fenêtre soit pleine.</p>



<p class="wp-block-paragraph">Une étude de Chroma a testé 18 modèles récents. Tous se dégradent quand l&rsquo;entrée s&rsquo;allonge ; un modèle à 200K tokens peut déjà perdre en qualité dès 50K. Ce n&rsquo;est donc pas la capacité qui compte, mais le <strong>rapport signal/bruit</strong>.</p>



<p class="wp-block-paragraph">Deux mécanismes l&rsquo;expliquent :</p>



<ol class="wp-block-list">
<li><strong>La dilution de l&rsquo;attention.</strong> L&rsquo;attention « soft » d&rsquo;un Transformer a une capacité fixe. Plus tu ajoutes de tokens, plus elle s&rsquo;étale sur du bruit, et moins chaque token utile en reçoit. C&rsquo;est architectural aucun prompt ne le contourne.</li>



<li><strong>Les hallucinations.</strong> Noyé dans la masse, le modèle comble les trous en inventant, avec le même aplomb que d&rsquo;habitude.</li>
</ol>



<p class="wp-block-paragraph">L&rsquo;analogie infra, c&rsquo;est le <strong>spillover VRAM</strong> dont je parlais dans la série VRAM Tuning : tant que tout tient, ça file à ~1000 Go/s ; dès que ça déborde, on tombe à ~60 Go/s. Le gros contexte fait pareil avec l&rsquo;attention du modèle, sauf que tu paies en plus ces tokens à chaque requête.</p>



<h2 class="wp-block-heading">4. Ce que change le RAG</h2>



<p class="wp-block-paragraph">Le RAG inverse la logique. Au lieu de tout donner d&rsquo;un coup, on récupère en amont les passages pertinents pour la question posée, et on ne sert que ça.</p>



<p class="wp-block-paragraph">Le déroulé est simple :</p>



<ol class="wp-block-list">
<li>La question arrive.</li>



<li>Un système de récupération (base vectorielle, recherche sémantique) sort les quelques morceaux utiles de ta base de connaissances.</li>



<li>On injecte <strong>seulement</strong> ces morceaux, propres et bien placés.</li>



<li>Le modèle répond sur une base nette.</li>
</ol>



<p class="wp-block-paragraph">Les trois problèmes tombent en même temps : pas de milieu géant où se perdre, une attention concentrée sur l&rsquo;utile, et un signal/bruit qui limite les hallucinations.</p>



<p class="wp-block-paragraph">C&rsquo;est la même logique que le <strong>headless</strong> : on garde le moteur de calcul utile, on enlève le reste. On ne charge que ce qui sert.</p>



<h2 class="wp-block-heading">5. Quand le gros contexte reste pertinent</h2>



<p class="wp-block-paragraph">Le RAG n&rsquo;est pas la réponse à tout. Le gros contexte garde du sens dans des cas précis :</p>



<ul class="wp-block-list">
<li><strong>Un document unique et court</strong> à analyser en entier (un contrat de 10 pages, un fichier de code) : monter un RAG là-dessus, c&rsquo;est disproportionné.</li>



<li><strong>Un raisonnement transversal</strong> qui doit croiser des infos dispersées dans tout le document (« résume l&rsquo;évolution du ton sur l&rsquo;ensemble du rapport ») : un RAG qui ne récupère que des bouts isolés peut manquer la vue d&rsquo;ensemble.</li>



<li><strong>Le prototypage</strong> : pour un test rapide, coller dans le contexte va plus vite. À condition de savoir que ça ne tiendra pas à l&rsquo;échelle.</li>
</ul>



<p class="wp-block-paragraph">La vraie réponse dépend de la charge. Mais en production, sur du volume, le RAG l&#8217;emporte.</p>



<h2 class="wp-block-heading">Tableau comparatif : RAG vs Gros Contexte</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Critère</th><th>Gros Contexte</th><th>RAG</th></tr></thead><tbody><tr><td>Info au milieu</td><td>Souvent ratée (courbe en U)</td><td>Toujours en tête de contexte</td></tr><tr><td>Attention du modèle</td><td>Diluée sur le bruit</td><td>Concentrée sur l&rsquo;utile</td></tr><tr><td>Risque d&rsquo;hallucination</td><td>Augmente avec la taille</td><td>Réduit (bon signal/bruit)</td></tr><tr><td>Coût en tokens</td><td>Élevé (et facturé)</td><td>Minimal, ciblé</td></tr><tr><td>Mise en place</td><td>Triviale (copier-coller)</td><td>Pipeline à construire</td></tr><tr><td>Passage à l&rsquo;échelle</td><td>Se dégrade vite</td><td>Tient la route</td></tr><tr><td>Cas idéal</td><td>Doc unique et court, proto</td><td>Base de connaissances, prod</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">Le gros contexte, c&rsquo;est la solution rapide, et elle a un coût : ton info se perd au milieu, l&rsquo;attention se dilue, et tu paies plus pour des réponses moins fiables. « Lost in the middle » l&rsquo;a montré dès 2023, le context rot l&rsquo;a confirmé depuis.</p>



<p class="wp-block-paragraph">Le RAG demande un peu de travail en amont base vectorielle, chunking, embeddings. Mais c&rsquo;est la même logique que le reste du blog : ne pas gâcher la ressource, ne garder que l&rsquo;utile. La capacité brute, c&rsquo;est une chose ; savoir quoi mettre dedans, c&rsquo;en est une autre.</p>



<p class="wp-block-paragraph">On se retrouve pour la suite, où on montera un petit RAG local de bout en bout, avec une base vectorielle qui tourne sur ta machine et pas dans le cloud de quelqu&rsquo;un d&rsquo;autre. On va chunker, embedder et récupérer comme il faut.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>Source principale : Liu et al., « Lost in the Middle: How Language Models Use Long Contexts », arXiv:2307.03172. Compléments sur le context rot et la dilution de l&rsquo;attention : recherches Chroma (2025) et travaux associés sur la dégradation en long contexte.</em></p>



<p class="wp-block-paragraph">Source: <a href="https://arxiv.org/abs/2307.03172v3">https://arxiv.org/abs/2307.03172v3</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://tazmenworld.com/2026/06/03/rag-vs-gros-contexte-pourquoi-tout-balancer-dans-le-prompt-degrade-tes-reponses/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Comment remplacer Perplexity par Mistral en local</title>
		<link>https://tazmenworld.com/2026/04/30/comment-remplacer-perplexity-par-mistral-en-local/</link>
					<comments>https://tazmenworld.com/2026/04/30/comment-remplacer-perplexity-par-mistral-en-local/#respond</comments>
		
		<dc:creator><![CDATA[tazmen3]]></dc:creator>
		<pubDate>Wed, 29 Apr 2026 22:06:46 +0000</pubDate>
				<category><![CDATA[Intelligence Artificielle (IA)]]></category>
		<category><![CDATA[Non classé]]></category>
		<guid isPermaLink="false">https://tazmenworld.com/?p=240</guid>

					<description><![CDATA[Je l&#8217;avoue : Perplexity est devenu, en l&#8217;espace de quelques mois, mon réflexe quotidien. C&#8217;est l&#8217;outil qui m&#8217;a fait oublier la liste interminable de liens bleus de Google pour me proposer des réponses synthétisées, sourcées et presque toujours pertinentes. Pourtant, plus je l&#8217;utilisais, plus une certaine gêne s&#8217;installait. À chaque requête, j&#8217;envoie un fragment de [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img width="1024" height="572"  alt="" class="wp-image-260"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/Image_8411l08411l08411-1024x572.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/Image_8411l08411l08411-1024x572.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/Image_8411l08411l08411-300x167.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/Image_8411l08411l08411-768x429.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/Image_8411l08411l08411-1536x857.png 1536w, https://tazmenworld.com/wp-content/uploads/2026/04/Image_8411l08411l08411-2048x1143.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Je l&rsquo;avoue : Perplexity est devenu, en l&rsquo;espace de quelques mois, mon réflexe quotidien. C&rsquo;est l&rsquo;outil qui m&rsquo;a fait oublier la liste interminable de liens bleus de Google pour me proposer des réponses synthétisées, sourcées et presque toujours pertinentes. Pourtant, plus je l&rsquo;utilisais, plus une certaine gêne s&rsquo;installait. À chaque requête, j&rsquo;envoie un fragment de mes réflexions, de mes projets et de ma vie privée sur des serveurs dont je ne contrôle ni l&rsquo;accès, ni la politique de conservation.</p>



<p class="wp-block-paragraph">Aujourd&rsquo;hui, je refuse de « louer » mon intelligence et ma vie privée à une boîte noire. J&rsquo;ai décidé de reprendre les commandes en construisant ma propre alternative souveraine. L&rsquo;objectif est simple : obtenir la même puissance de recherche et de synthèse, mais de manière totalement privée, sans abonnement, et en exploitant la puissance de calcul qui dort dans mon propre bureau.</p>



<h2 class="wp-block-heading">La quête de la souveraineté numérique</h2>



<p class="wp-block-paragraph">Pourquoi s&#8217;embêter à configurer sa propre machine quand un service à 20 dollars par mois fait le travail ? La réponse tient en un mot : la maîtrise. En installant ma propre « Tazmen Station », je ne dépends plus d&rsquo;une connexion internet pour réfléchir ou d&rsquo;une mise à jour logicielle qui pourrait brider les capacités de mon modèle favori.</p>



<p class="wp-block-paragraph">Ma configuration repose sur un matériel que j&rsquo;ai choisi pour ses capacités de calcul : un processeur <strong>AMD Ryzen 9 9900X</strong> épaulé par une carte <strong>NVIDIA GeForce RTX 5070 Ti</strong>. C&rsquo;est cette dernière qui est le véritable moteur de mon installation. Avec ses <strong>13 Go de mémoire vidéo (VRAM)</strong> mobilisés, elle me permet de faire tourner des modèles sophistiqués comme <strong>Mistral-Nemo 12B</strong> avec une fluidité déconcertante.</p>



<figure class="wp-block-image size-large"><img width="1024" height="599"  alt="" class="wp-image-244"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-21-1024x599.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-21-1024x599.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-21-300x176.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-21-768x449.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-21.png 1109w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Le projet que je vais vous détailler n&rsquo;est pas une simple curiosité technique. C&rsquo;est un système de production robuste. Pour y parvenir, j&rsquo;ai assemblé une pile logicielle cohérente à l&rsquo;aide de conteneurs Docker :</p>



<ul class="wp-block-list">
<li><strong>SearXNG</strong> : Mon détective privé qui interroge le web à ma place, anonymement.</li>



<li><strong>Ollama</strong> : Le moteur qui héberge mes modèles de langage.</li>



<li><strong>Open WebUI</strong> : L&rsquo;interface élégante qui lie le tout et me permet de dialoguer avec mes données.</li>
</ul>



<p class="wp-block-paragraph">[CODE : arborescence_projet.txt]</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>~/tazmen-ai-station/
├── docker-compose.yml     # L'orchestrateur de mes services
├── open-webui/            # Mes données d'interface et historiques
├── mcpo/                  # Le bridge pour les outils avancés
└── searxng/               # Ma configuration de recherche privée
    └── settings.yml       # Le réglage fin de mes moteurs de recherche</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #A3BE8C">~/tazmen-ai-station/</span></span>
<span class="line"><span style="color: #A3BE8C">├── docker-compose.yml</span><span style="color: #D8DEE9FF">     </span><span style="color: #616E88"># L&#39;orchestrateur de mes services</span></span>
<span class="line"><span style="color: #A3BE8C">├── open-webui/</span><span style="color: #D8DEE9FF">            </span><span style="color: #616E88"># Mes données d&#39;interface et historiques</span></span>
<span class="line"><span style="color: #A3BE8C">├── mcpo/</span><span style="color: #D8DEE9FF">                  </span><span style="color: #616E88"># Le bridge pour les outils avancés</span></span>
<span class="line"><span style="color: #A3BE8C">└── searxng/</span><span style="color: #D8DEE9FF">               </span><span style="color: #616E88"># Ma configuration de recherche privée</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #A3BE8C">└── settings.yml</span><span style="color: #D8DEE9FF">       </span><span style="color: #616E88"># Le réglage fin de mes moteurs de recherche</span></span></code></pre></div>



<p class="wp-block-paragraph">En tant qu&rsquo;utilisateur passionné par la sécurité et l&rsquo;IA, je ne cherche pas seulement à obtenir une réponse, mais à comprendre comment elle est générée. Dans ce guide, je vais vous montrer comment j&rsquo;ai transformé une simple machine Ubuntu en un pôle d&rsquo;intelligence capable de tenir tête aux solutions propriétaires les plus en vue. Nous n&rsquo;allons pas seulement installer des logiciels ; nous allons bâtir un écosystème où chaque octet de donnée reste sous notre contrôle exclusif.</p>



<p class="wp-block-paragraph">Préparez votre terminal. Nous allons voir comment transformer radicalement votre manière de chercher l&rsquo;information, sans jamais compromettre votre confidentialité.</p>



<h2 class="wp-block-heading">II. SearXNG : Le cerveau qui murmure à l’oreille du Web</h2>



<p class="wp-block-paragraph">Pour que mon installation puisse réellement rivaliser avec Perplexity, il me fallait un moyen d&rsquo;interroger le web sans que les moteurs de recherche ne sachent qui je suis ni ce que je cherche. C&rsquo;est ici qu&rsquo;intervient <strong>SearXNG</strong>.</p>



<p class="wp-block-paragraph" id="p-rc_3a7d666432e8f79f-23">Je décris souvent SearXNG comme un moteur de recherche métacognitif. Contrairement à Google ou Bing, il ne possède pas son propre index de pages web. C’est un agrégateur : quand je lui pose une question, il va interroger simultanément des dizaines d’autres moteurs (Google, DuckDuckGo, Bing, Qwant) à ma place<sup></sup>. Il récupère les résultats, les nettoie, supprime les doublons et me les présente de manière structurée.</p>



<h3 class="wp-block-heading">L&rsquo;anonymat par procuration</h3>



<p class="wp-block-paragraph" id="p-rc_3a7d666432e8f79f-24">Le génie de SearXNG réside dans sa capacité à faire écran entre moi et les géants du web. Puisque c&rsquo;est mon serveur local qui envoie les requêtes, les moteurs de recherche voient l&rsquo;adresse IP de mon instance et non la mienne. En configurant correctement le fichier <code>settings.yml</code>, je m&rsquo;assure qu&rsquo;aucune donnée de profilage n&rsquo;est transmise<sup></sup>. C&rsquo;est la base indispensable pour garantir que mes recherches sur la <strong>sécurité</strong> ou l&rsquo;<strong>IA</strong> ne finissent pas dans une base de données publicitaire.</p>



<figure class="wp-block-image size-large"><img width="1024" height="425"  alt="" class="wp-image-246"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-23-1024x425.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-23-1024x425.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-23-300x125.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-23-768x319.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-23-1536x638.png 1536w, https://tazmenworld.com/wp-content/uploads/2026/04/image-23-2048x850.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Pourquoi c’est la pièce maîtresse du puzzle ?</h3>



<p class="wp-block-paragraph">Un modèle comme Mistral, aussi brillant soit-il, possède une limite de connaissances fixée au moment de son entraînement. Pour lui donner une « mémoire vive » du web actuel, j&rsquo;utilise le <strong>RAG (Retrieval-Augmented Generation)</strong>.</p>



<p class="wp-block-paragraph" id="p-rc_3a7d666432e8f79f-25">SearXNG est le fournisseur officiel de ce contexte. Dans ma configuration, Open WebUI envoie la requête utilisateur à SearXNG, récupère les 5 meilleurs extraits (snippets) et les injecte directement dans le prompt de Mistral<sup></sup>. C&rsquo;est ce mécanisme qui permet d&rsquo;obtenir des réponses sur le programme TV de demain ou sur une faille de sécurité découverte il y a trois heures.</p>



<p class="wp-block-paragraph">[CODE : Extrait de configuration des moteurs dans settings.yml]</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>engines:
  - name: google
    engine: google
    shortcut: go
  - name: bing
    engine: bing
    shortcut: bi
  - name: brave
    engine: brave
    shortcut: br
    categories: &#91;general, web&#93;</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #8FBCBB">engines</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">google</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">engine</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">google</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">shortcut</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">go</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">bing</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">engine</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">bing</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">shortcut</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">bi</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">brave</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">engine</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">brave</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">shortcut</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">br</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">categories</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#91;</span><span style="color: #A3BE8C">general</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">web</span><span style="color: #ECEFF4">&#93;</span></span></code></pre></div>



<p class="wp-block-paragraph" id="p-rc_3a7d666432e8f79f-26">Dans mon fichier <code>settings.yml</code>, j&rsquo;ai pris soin d&rsquo;activer des moteurs comme <strong>Bing</strong> et <strong>Brave</strong> pour ne pas dépendre uniquement de Google, qui a parfois tendance à bloquer les requêtes automatisées. Cette diversité est ce qui rend le système robuste : si un moteur fait défaut, les autres prennent le relais pour fournir l&rsquo;information à Mistral. </p>



<figure class="wp-block-image size-large"><img width="1024" height="303"  alt="" class="wp-image-245"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-22-1024x303.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-22-1024x303.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-22-300x89.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-22-768x227.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-22-1536x454.png 1536w, https://tazmenworld.com/wp-content/uploads/2026/04/image-22.png 1597w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Sans cette brique, mon IA locale serait une encyclopédie figée dans le passé. Avec SearXNG, elle devient un analyste capable de lire le web en temps réel tout en respectant ma vie privée.</p>



<h2 class="wp-block-heading">II. L&rsquo;Infrastructure : Poser les fondations avec Docker</h2>



<p class="wp-block-paragraph" id="p-rc_ead4c7521dab0df2-36">Pour bâtir ma propre station d&rsquo;IA, j&rsquo;ai choisi la voie de la propreté et de la modularité : <strong>Docker Compose</strong>. L&rsquo;idée n&rsquo;est pas de transformer mon installation Ubuntu en un tas de dépendances Python incohérentes, mais de compartimenter chaque outil dans son propre conteneur. Cela me permet de tout démarrer ou d&rsquo;éteindre l&rsquo;ensemble de ma machine de recherche en une seule commande<sup></sup>.</p>



<h3 class="wp-block-heading">Architecture du flux de données</h3>



<p class="wp-block-paragraph">Avant de regarder le code, il est crucial de comprendre comment mes outils discutent entre eux. Voici le chemin parcouru par une simple question comme « Quel est le dernier driver NVIDIA pour Linux ? » :</p>



<figure class="wp-block-image size-full"><img width="859" height="643"  alt="" class="wp-image-247"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-24.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-24.png 859w, https://tazmenworld.com/wp-content/uploads/2026/04/image-24-300x225.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-24-768x575.png 768w" sizes="auto, (max-width: 859px) 100vw, 859px" /></figure>



<h3 class="wp-block-heading">Le fichier de configuration : Analyse du docker-compose.yml</h3>



<p class="wp-block-paragraph" id="p-rc_ead4c7521dab0df2-37">Voici le cœur de ma <strong>Tazmen Station</strong>. J&rsquo;y ai regroupé tous les services nécessaires, de l&rsquo;interface au moteur de recherche, en passant par le pont MCP pour les outils étendus<sup></sup>.</p>



<p class="wp-block-paragraph">[CODE : docker-compose.yml]</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>name: tazmen-ai-station

services:
  # Moteur d'IA : Ollama gère le chargement et l'exécution de Mistral
  ollama:
    image: ollama/ollama
    container_name: ollama
    volumes:
      - /media/DATA/LLM/models:/root/.ollama # Stockage externe pour mes modèles
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              device_ids: &#91;'0'&#93; # Cible ma RTX 5070 Ti
              capabilities: &#91;gpu&#93;
    restart: unless-stopped

  # Recherche Web : L'agrégateur privé
  searxng:
    container_name: searxng
    image: searxng/searxng:latest
    ports:
      - "8080:8080"
    volumes:
      - ./searxng:/etc/searxng
    restart: unless-stopped

  # Interface : Le portail qui orchestre le RAG
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    depends_on:
      - ollama
      - searxng
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - ENABLE_RAG_WEB_SEARCH=True
      - RAG_WEB_SEARCH_ENGINE=searxng
      - SEARXNG_QUERY_URL=http://searxng:8080/search?q=&lt;query>
      - RAG_WEB_SEARCH_RESULT_COUNT=5 # Nombre de sources lues par l'IA
    restart: unless-stopped</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #8FBCBB">name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">tazmen-ai-station</span></span>
<span class="line"></span>
<span class="line"><span style="color: #8FBCBB">services</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #ECEFF4">  </span><span style="color: #616E88"># Moteur d&#39;IA : Ollama gère le chargement et l&#39;exécution de Mistral</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #8FBCBB">ollama</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">image</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ollama/ollama</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">container_name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ollama</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">volumes</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">/media/DATA/LLM/models:/root/.ollama</span><span style="color: #D8DEE9FF"> </span><span style="color: #616E88"># Stockage externe pour mes modèles</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">deploy</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #8FBCBB">resources</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">reservations</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">          </span><span style="color: #8FBCBB">devices</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">driver</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">nvidia</span></span>
<span class="line"><span style="color: #D8DEE9FF">              </span><span style="color: #8FBCBB">device_ids</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#91;</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">0</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">&#93;</span><span style="color: #D8DEE9FF"> </span><span style="color: #616E88"># Cible ma RTX 5070 Ti</span></span>
<span class="line"><span style="color: #D8DEE9FF">              </span><span style="color: #8FBCBB">capabilities</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#91;</span><span style="color: #A3BE8C">gpu</span><span style="color: #ECEFF4">&#93;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">restart</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">unless-stopped</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ECEFF4">  </span><span style="color: #616E88"># Recherche Web : L&#39;agrégateur privé</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #8FBCBB">searxng</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">container_name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">searxng</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">image</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">searxng/searxng:latest</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">ports</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">8080:8080</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">volumes</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">./searxng:/etc/searxng</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">restart</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">unless-stopped</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ECEFF4">  </span><span style="color: #616E88"># Interface : Le portail qui orchestre le RAG</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #8FBCBB">open-webui</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">image</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ghcr.io/open-webui/open-webui:main</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">container_name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">open-webui</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">depends_on</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ollama</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">searxng</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">ports</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">3000:8080</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">environment</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">OLLAMA_BASE_URL=http://ollama:11434</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ENABLE_RAG_WEB_SEARCH=True</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">RAG_WEB_SEARCH_ENGINE=searxng</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">SEARXNG_QUERY_URL=http://searxng:8080/search?q=&lt;query&gt;</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">RAG_WEB_SEARCH_RESULT_COUNT=5</span><span style="color: #D8DEE9FF"> </span><span style="color: #616E88"># Nombre de sources lues par l&#39;IA</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">restart</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">unless-stopped</span></span></code></pre></div>



<h3 class="wp-block-heading">Le point critique : L&rsquo;accès au GPU</h3>



<p class="wp-block-paragraph" id="p-rc_ead4c7521dab0df2-38">Pour que ce système soit réactif, il n&rsquo;y a pas de secret : il faut que Docker puisse voir la carte graphique. Dans mon cas, c&rsquo;est une <strong>RTX 5070 Ti</strong>. Dans le service <code>ollama</code>, la section <code>deploy.resources.reservations</code> est indispensable. Sans elle, c&rsquo;est mon <strong>Ryzen 9 9900X</strong> qui prendrait tout le travail sur ses épaules, et la génération de texte deviendrait péniblement lente.</p>



<p class="wp-block-paragraph" id="p-rc_ead4c7521dab0df2-39">J&rsquo;ai également déporté le stockage des modèles sur un disque dur dédié via le volume <code>/media/DATA/LLM/models</code>. C&rsquo;est une astuce de vieux routier de l&rsquo;IA : les modèles comme Mistral pèsent plusieurs gigaoctets et je préfère ne pas encombrer ma partition système Ubuntu.</p>



<figure class="wp-block-image size-large"><img width="1024" height="341"  alt="" class="wp-image-248"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-25-1024x341.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-25-1024x341.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-25-300x100.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-25-768x256.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-25-1536x512.png 1536w, https://tazmenworld.com/wp-content/uploads/2026/04/image-25-2048x682.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph" id="p-rc_ead4c7521dab0df2-40">Une fois ce fichier prêt, un simple <code>sudo docker compose up -d</code> met en route toute la mécanique. L&rsquo;interface devient accessible sur le port 3000 de ma machine, prête à recevoir mes premières questions. </p>



<h2 class="wp-block-heading">IV. Configurer SearXNG : Le réglage de précision</h2>



<p class="wp-block-paragraph">Avoir un conteneur qui tourne, c&rsquo;est bien. Avoir un moteur qui répond exactement à ce que Mistral attend, c&rsquo;est mieux. Pour transformer SearXNG en une source de données fiable, je dois descendre dans les soutes et éditer le fichier <code>settings.yml</code>. C&rsquo;est ici que je définis quels moteurs interroger et comment formater les réponses pour qu&rsquo;elles soient digestes pour mon IA.</p>



<h3 class="wp-block-heading">La clé de voûte : La sécurité et l&rsquo;accès</h3>



<p class="wp-block-paragraph" id="p-rc_109101a035ca8487-70">La première chose que j&rsquo;ai configurée, c&rsquo;est la <code>secret_key</code><sup></sup>. C&rsquo;est elle qui sécurise les communications de mon instance. Pour cet article, je l&rsquo;ai remplacée par une valeur générique, mais dans mon installation réelle, j&rsquo;utilise une chaîne de caractères complexe générée aléatoirement.</p>



<p class="wp-block-paragraph" id="p-rc_109101a035ca8487-71">Un point technique m&rsquo;a demandé un peu de recherche : la méthode de communication. Par défaut, SearXNG utilise souvent <code>POST</code>, mais pour assurer une compatibilité totale avec le module de recherche d&rsquo;Open WebUI, j&rsquo;ai forcé le passage en <code>GET</code><sup></sup>. C&rsquo;est un détail qui peut éviter bien des maux de tête lors des premiers tests de connexion.</p>



<p class="wp-block-paragraph">[CODE : Configuration serveur dans settings.yml]</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>server:
  port: 8080
  bind_address: "0.0.0.0"
  secret_key: "VOTRE_CLE_ALÉATOIRE_ICI" # À anonymiser impérativement
  method: "GET" # Indispensable pour Open WebUI</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #8FBCBB">server</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #8FBCBB">port</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">8080</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #8FBCBB">bind_address</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">0.0.0.0</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #8FBCBB">secret_key</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">VOTRE_CLE_ALÉATOIRE_ICI</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF"> </span><span style="color: #616E88"># À anonymiser impérativement</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #8FBCBB">method</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">GET</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF"> </span><span style="color: #616E88"># Indispensable pour Open WebUI</span></span></code></pre></div>



<h3 class="wp-block-heading">Sortie JSON : Le langage de l&rsquo;IA</h3>



<p class="wp-block-paragraph" id="p-rc_109101a035ca8487-72">Pour que Mistral puisse « lire » les résultats de recherche, SearXNG ne doit pas seulement lui envoyer une page HTML pleine de bannières et de menus. J&rsquo;ai donc activé le format <code>json</code> dans la section <code>formats</code><sup></sup>. Cela permet à Open WebUI de recevoir une structure de données propre, contenant uniquement le titre, l&rsquo;URL et l&rsquo;extrait du site.</p>



<h3 class="wp-block-heading">Le choix des moteurs : Sortir de la bulle Google</h3>



<p class="wp-block-paragraph" id="p-rc_109101a035ca8487-73">C&rsquo;est sans doute la partie la plus gratifiante du réglage. Google est puissant, mais il déteste qu&rsquo;on l&rsquo;interroge via un script et il finit souvent par bloquer les requêtes avec des Captchas<sup></sup>. Pour rendre ma station robuste, j&rsquo;ai diversifié mes sources.</p>



<p class="wp-block-paragraph" id="p-rc_109101a035ca8487-74">J&rsquo;ai activé <strong>Bing</strong>, <strong>Qwant</strong> et <strong>Brave</strong>. En multipliant les moteurs, je m&rsquo;assure que si l&rsquo;un d&rsquo;eux boude ma requête, les autres fourniront quand même du grain à moudre à mon modèle. J&rsquo;ai également gardé <strong>DuckDuckGo</strong> actif pour sa pertinence globale. </p>



<figure class="wp-block-image size-large"><img width="1024" height="657"  alt="" class="wp-image-250"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-27-1024x657.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-27-1024x657.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-27-300x192.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-27-768x493.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-27-1536x985.png 1536w, https://tazmenworld.com/wp-content/uploads/2026/04/image-27.png 1643w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">[CODE : Activation des moteurs dans settings.yml]</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>engines:
  - name: google
    engine: google
    shortcut: go
    disabled: false # On le garde, mais on ne compte pas que sur lui
  - name: bing
    engine: bing
    shortcut: bi
    disabled: false
  - name: brave
    engine: brave
    shortcut: br
    disabled: false
  - name: qwant
    engine: qwant
    shortcut: qw
    disabled: false</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #8FBCBB">engines</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">google</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">engine</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">google</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">shortcut</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">go</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">disabled</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">false</span><span style="color: #D8DEE9FF"> </span><span style="color: #616E88"># On le garde, mais on ne compte pas que sur lui</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">bing</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">engine</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">bing</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">shortcut</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">bi</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">disabled</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">false</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">brave</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">engine</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">brave</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">shortcut</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">br</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">disabled</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">false</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">qwant</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">engine</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">qwant</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">shortcut</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">qw</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">disabled</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">false</span></span></code></pre></div>



<h3 class="wp-block-heading">Le filtrage et l&rsquo;autocomplétion</h3>



<p class="wp-block-paragraph" id="p-rc_109101a035ca8487-75">Pour affiner l&rsquo;expérience, j&rsquo;ai réglé le <code>safe_search</code> sur <code>0</code> (pour avoir les résultats bruts) et activé l&rsquo;autocomplétion via Google pour m&rsquo;aider à formuler mes recherches plus rapidement. J&rsquo;ai aussi veillé à ce que le temps de bannissement en cas d&rsquo;échec (<code>ban_time_on_fail</code>) soit assez court pour que le système se rétablisse vite si un moteur me bloque temporairement. </p>



<p class="wp-block-paragraph">Avec ces réglages, mon instance SearXNG n&rsquo;est plus un simple site web de recherche ; elle devient une API privée et ultra-rapide qui alimente mon cerveau numérique en temps réel. Nous avons maintenant un moteur de recherche qui parle le même langage que notre IA.</p>



<h2 class="wp-block-heading">V. Le Mariage : Lier Open WebUI, Ollama et Mistral</h2>



<p class="wp-block-paragraph">C’est ici que la magie opère. Jusqu’à présent, nous avons des moteurs puissants qui tournent chacun dans leur coin. Pour créer mon propre « Perplexity », je dois faire d&rsquo;<strong>Open WebUI</strong> le chef d&rsquo;orchestre de ma station. C&rsquo;est lui qui va recevoir mes questions, décider s&rsquo;il doit aller sur le web, et demander à Mistral de rédiger la synthèse finale.</p>



<h3 class="wp-block-heading">L’interface comme centre de commande</h3>



<p class="wp-block-paragraph" id="p-rc_8c4d4be7351ee485-82">Dans mon installation, Open WebUI n&rsquo;est pas qu&rsquo;une simple peau esthétique posée sur un modèle. C&rsquo;est le point de ralliement. Pour que la liaison soit parfaite, j&rsquo;ai configuré les variables d&rsquo;environnement directement dans le <code>docker-compose.yml</code><sup></sup>.</p>



<p class="wp-block-paragraph" id="p-rc_8c4d4be7351ee485-83">Le réglage le plus sensible concerne le <strong>RAG (Retrieval-Augmented Generation)</strong>. J&rsquo;ai activé la recherche web en pointant vers l&rsquo;URL interne de mon conteneur SearXNG<sup></sup>. Comme ils partagent le même réseau Docker, ils communiquent à une vitesse fulgurante.</p>



<p class="wp-block-paragraph">[CODE : Configuration RAG dans docker-compose.yml]</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly># Variables cruciales pour le mariage technique
- ENABLE_RAG_WEB_SEARCH=True
- RAG_WEB_SEARCH_ENGINE=searxng
- SEARXNG_QUERY_URL=http://searxng:8080/search?q=&lt;query>
- RAG_WEB_SEARCH_RESULT_COUNT=5 # Ma recommandation pour ne rien rater
- RAG_WEB_SEARCH_CONCURRENT_REQUESTS=10</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #616E88"># Variables cruciales pour le mariage technique</span></span>
<span class="line"><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ENABLE_RAG_WEB_SEARCH=True</span></span>
<span class="line"><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">RAG_WEB_SEARCH_ENGINE=searxng</span></span>
<span class="line"><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">SEARXNG_QUERY_URL=http://searxng:8080/search?q=&lt;query&gt;</span></span>
<span class="line"><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">RAG_WEB_SEARCH_RESULT_COUNT=5</span><span style="color: #D8DEE9FF"> </span><span style="color: #616E88"># Ma recommandation pour ne rien rater</span></span>
<span class="line"><span style="color: #ECEFF4">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">RAG_WEB_SEARCH_CONCURRENT_REQUESTS=10</span></span></code></pre></div>



<h3 class="wp-block-heading">Le choix du modèle : Mistral-Nemo 12B</h3>



<p class="wp-block-paragraph" id="p-rc_8c4d4be7351ee485-84">Pourquoi avoir choisi <strong>Mistral-Nemo 12B</strong> plutôt qu&rsquo;un modèle plus imposant ? Pour une question d&rsquo;équilibre technique. Sur ma carte <strong>RTX 5070 Ti</strong>, ce modèle occupe environ <strong>13 Go de VRAM</strong> lorsqu&rsquo;il est chargé en précision 8-bit (q8_0)<sup></sup>.</p>



<p class="wp-block-paragraph" id="p-rc_8c4d4be7351ee485-85">C&rsquo;est le « sweet spot » : le modèle est assez intelligent pour comprendre des contextes de recherche complexes, tout en laissant assez de place en mémoire vidéo pour que la génération soit quasi instantanée. Si je prenais un modèle plus gros, je risquerais de saturer ma carte et de voir mes performances s&rsquo;effondrer, forçant le système à s&rsquo;appuyer sur le processeur<sup></sup>.</p>



<figure class="wp-block-image size-large"><img width="1024" height="328"  alt="" class="wp-image-253"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-30-1024x328.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-30-1024x328.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-30-300x96.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-30-768x246.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-30.png 1353w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img width="1024" height="495"  alt="" class="wp-image-252"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-29-1024x495.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-29-1024x495.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-29-300x145.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-29-768x371.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-29.png 1370w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">La liaison SearXNG : Le test de vérité</h3>



<p class="wp-block-paragraph">Une fois les services lancés, je me rends dans les paramètres d&rsquo;Open WebUI pour tester la connexion. Il y a un petit indicateur visuel qui confirme que le « Web Search » est actif.</p>



<p class="wp-block-paragraph" id="p-rc_8c4d4be7351ee485-86">Ma petite astuce perso : j&rsquo;ai augmenté le nombre de résultats à <strong>5</strong><sup></sup>. Par défaut, beaucoup d&rsquo;outils s&rsquo;arrêtent à 3. Mais pour des sujets pointus comme la <strong>sécurité informatique</strong>, avoir deux sources supplémentaires permet souvent de dénicher le détail technique qui fait la différence entre une réponse vague et une solution précise.</p>



<figure class="wp-block-video"><video height="810" style="aspect-ratio: 1440 / 810;" width="1440" controls src="https://tazmenworld.com/wp-content/uploads/2026/04/search.mp4" class="lws-optimize-lazyload"></video></figure>



<h3 class="wp-block-heading">Le System Prompt : Donner une personnalité à l&rsquo;IA</h3>



<p class="wp-block-paragraph">Pour que Mistral se comporte comme un analyste et non comme un simple perroquet, j&rsquo;ai affiné son <strong>System Prompt</strong> dans l&rsquo;interface. Je lui demande explicitement de :</p>



<ol start="1" class="wp-block-list">
<li>Analyser systématiquement les sources fournies par SearXNG.</li>



<li>Citer chaque source avec un lien cliquable.</li>



<li>Préciser si les informations trouvées semblent contradictoires ou incomplètes.</li>
</ol>



<p class="wp-block-paragraph">C&rsquo;est cette couche finale qui transforme une suite de conteneurs Docker en un véritable assistant de recherche. Je ne lui demande pas simplement de « savoir », je lui demande de « chercher » avec la rigueur d&rsquo;un documentaliste.</p>



<h2 class="wp-block-heading">VI. Optimisations avancées : Devenir un Power User</h2>



<p class="wp-block-paragraph">Une fois que la liaison entre mon interface et mes moteurs est établie, je ne m&rsquo;arrête pas là. Pour que l&rsquo;expérience dépasse réellement celle d&rsquo;un outil grand public, je dois affiner la qualité des données que Mistral ingère. C&rsquo;est la différence entre une réponse « correcte » et une analyse de niveau expert.</p>



<h3 class="wp-block-heading">Filtrage des sources : Nettoyer le bruit</h3>



<p class="wp-block-paragraph" id="p-rc_928509796eabf825-92">Le web est rempli de sites de basse qualité, de fermes à contenus ou de pages saturées de publicités qui polluent le contexte envoyé à mon IA. Dans mon fichier <code>settings.yml</code>, j&rsquo;ai la possibilité d&rsquo;affiner ce que SearXNG considère comme pertinent<sup></sup>.</p>



<p class="wp-block-paragraph" id="p-rc_928509796eabf825-93">Je privilégie une approche chirurgicale : j&rsquo;augmente le poids (weight) des sources que je juge fiables, comme les dépôts de documentation technique ou les sites académiques, tout en réduisant la visibilité des sites trop généralistes<sup></sup>. C&rsquo;est ce qui permet à mon assistant de ne pas se perdre dans des tutoriels obsolètes quand je lui demande une information sur une bibliothèque Python précise.</p>



<figure class="wp-block-image size-large"><img width="1024" height="709"  alt="" class="wp-image-255"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-31-1024x709.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-31-1024x709.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-31-300x208.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-31-768x532.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-31.png 1504w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Prompt Engineering : Créer l&rsquo;Assistant Chercheur</h3>



<p class="wp-block-paragraph">Le secret d&rsquo;une bonne synthèse réside dans le <strong>System Prompt</strong>. Dans Open WebUI, je ne laisse pas le champ vide. J&rsquo;ai conçu un modèle de prompt qui force Mistral à adopter une démarche scientifique. Je lui demande de comparer les sources entre elles : « Si deux sites se contredisent sur une version logicielle, mentionne-le explicitement et cherche une troisième source pour arbitrer. »</p>



<p class="wp-block-paragraph" id="p-rc_928509796eabf825-94">Cette instruction change tout. L&rsquo;IA ne se contente plus de résumer ; elle vérifie la cohérence des informations qu&rsquo;elle extrait du web via SearXNG<sup></sup>.</p>



<p class="wp-block-paragraph">[CODE : chercheur_expert_prompt.txt]</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Tu es un analyste technique de haut niveau. 
Ta mission est de synthétiser les résultats de recherche fournis. 
1. Ignore les publicités et les contenus promotionnels.
2. Priorise les documentations officielles et les forums spécialisés.
3. Cite systématiquement tes sources entre crochets &#91;Source X&#93;.
4. Si les informations sont datées de plus de deux ans, précise-le comme un risque potentiel.</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #A3BE8C">Tu es un analyste technique de haut niveau.</span><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #A3BE8C">Ta mission est de synthétiser les résultats de recherche fournis.</span><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #A3BE8C">1. Ignore les publicités et les contenus promotionnels.</span></span>
<span class="line"><span style="color: #A3BE8C">2. Priorise les documentations officielles et les forums spécialisés.</span></span>
<span class="line"><span style="color: #A3BE8C">3. Cite systématiquement tes sources entre crochets &#91;Source X&#93;.</span></span>
<span class="line"><span style="color: #A3BE8C">4. Si les informations sont datées de plus de deux ans, précise-le comme un risque potentiel.</span></span></code></pre></div>



<h3 class="wp-block-heading">Gestion de la performance et de la VRAM</h3>



<p class="wp-block-paragraph" id="p-rc_928509796eabf825-95">Travailler en local signifie gérer ses ressources. Avec ma <strong>RTX 5070 Ti</strong>, je surveille constamment l&rsquo;occupation de la mémoire vidéo via l&rsquo;outil <code>nvtop</code><sup></sup>. Pour éviter que le système ne ralentisse lors de recherches complexes qui génèrent beaucoup de texte, j&rsquo;ai ajusté la taille du contexte (Context Window) à environ 8 000 tokens.</p>



<p class="wp-block-paragraph" id="p-rc_928509796eabf825-96">C&rsquo;est largement suffisant pour contenir les 5 extraits de recherche de SearXNG et ma propre conversation, tout en gardant une vitesse de génération fulgurante sur mes 13 Go de VRAM disponibles. Si je montais trop haut, la carte pourrait saturer, entrainant une chute drastique des performances au profit du processeur.</p>



<figure class="wp-block-image size-large"><img width="1024" height="752"  alt="" class="wp-image-256"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-32-1024x752.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-32-1024x752.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-32-300x220.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-32-768x564.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-32-1536x1128.png 1536w, https://tazmenworld.com/wp-content/uploads/2026/04/image-32.png 1764w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Le réglage fin des concurrent requests</h3>



<p class="wp-block-paragraph" id="p-rc_928509796eabf825-97">Dans mon <code>docker-compose.yml</code>, j&rsquo;ai fixé <code>RAG_WEB_SEARCH_CONCURRENT_REQUESTS</code> à <strong>10</strong>. Pourquoi ? Parce que SearXNG est capable d&rsquo;interroger plusieurs moteurs en même temps. En autorisant 10 requêtes simultanées, je m&rsquo;assure que la phase de recherche ne prend que quelques millisecondes. Mon IA reçoit ses données presque instantanément, ce qui rend l&rsquo;interaction aussi fluide, voire plus, qu&rsquo;avec un service en ligne. </p>



<p class="wp-block-paragraph">Toutes ces petites touches font que ma machine ne se contente pas d&rsquo;imiter un service existant ; elle s&rsquo;adapte précisément à mes besoins et à mon matériel.</p>



<h2 class="wp-block-heading">VII. Démonstration de cas d&rsquo;usage réels</h2>



<p class="wp-block-paragraph">Installer toute cette artillerie est une chose, mais la vraie question demeure : est-ce que ça tient la route face à Perplexity au quotidien ? Pour le savoir, j&rsquo;ai soumis ma station à plusieurs tests intensifs. Voici comment se comporte ce duo Mistral-SearXNG sur des terrains où l&rsquo;on attend normalement des services payants au tournant.</p>



<h3 class="wp-block-heading">Cas d&rsquo;usage n°1 : La veille en cybersécurité</h3>



<p class="wp-block-paragraph">En tant que passionné de <strong>sécurité</strong>, je cherche souvent des détails sur des failles fraîchement découvertes. J&rsquo;ai posé la question suivante : <em>« Quelles sont les dernières vulnérabilités signalées sur Ollama ou les frameworks d&rsquo;IA locale cette semaine ? »</em></p>



<p class="wp-block-paragraph" id="p-rc_2951e23daf06491c-110">Grâce à SearXNG, mon système n&rsquo;est pas allé interroger une base de données statique. Il a fouillé GitHub, des blogs spécialisés et des sites de CVE. Mistral-Nemo a ensuite synthétisé les résultats en isolant les vecteurs d&rsquo;attaque potentiels. </p>



<p class="wp-block-paragraph" id="p-rc_2951e23daf06491c-111"><strong>Le verdict :</strong> La réponse est arrivée en moins de 10 secondes. Là où Perplexity m&rsquo;aurait parfois noyé sous des sources généralistes, ma configuration locale a privilégié les dépôts techniques parce que j&rsquo;ai configuré mes moteurs pour cela<sup></sup>.</p>



<figure class="wp-block-image size-large"><img width="1024" height="427"  alt="" class="wp-image-257"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-33-1024x427.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-33-1024x427.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-33-300x125.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-33-768x320.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-33-1536x641.png 1536w, https://tazmenworld.com/wp-content/uploads/2026/04/image-33.png 1685w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Cas d&rsquo;usage n°2 : La vie pratique (Le test du programme TV)</h3>



<p class="wp-block-paragraph">C&rsquo;est le test ultime pour vérifier la fraîcheur des données : <em>« Il y a quoi demain soir sur TF1 ? »</em> Pour une IA classique, c&rsquo;est une question piège. Pour mon installation, c&rsquo;est une routine de recherche web.</p>



<p class="wp-block-paragraph" id="p-rc_2951e23daf06491c-112">Open WebUI a lancé SearXNG, qui a récupéré les grilles horaires de plusieurs sites de programmes TV<sup></sup>. Mistral a lu ces extraits et m&rsquo;a présenté une réponse claire, avec les horaires précis.</p>



<figure class="wp-block-image size-large"><img width="1024" height="532"  alt="" class="wp-image-258"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-34-1024x532.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-34-1024x532.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-34-300x156.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-34-768x399.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-34-1536x798.png 1536w, https://tazmenworld.com/wp-content/uploads/2026/04/image-34.png 1748w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"><strong>Le verdict :</strong> La précision est identique à celle d&rsquo;un moteur commercial. La seule différence ? Personne d&rsquo;autre que moi ne sait que j&rsquo;ai prévu de regarder un documentaire ou un film demain soir. Ma vie privée est préservée pour une information pourtant banale.</p>



<h3 class="wp-block-heading">Cas d&rsquo;usage n°3 : Développement et Hardware</h3>



<p class="wp-block-paragraph">J&rsquo;ai testé une requête technique sur mon propre matériel : <em>« Quelles sont les optimisations recommandées pour faire tourner Mistral-Nemo sur une RTX 5070 Ti sous Ubuntu ? »</em></p>



<p class="wp-block-paragraph" id="p-rc_2951e23daf06491c-113">Le système a croisé des benchmarks récents et des discussions sur des forums spécialisés. Il m&rsquo;a suggéré d&rsquo;utiliser des versions quantifiées (q8_0) pour occuper environ 13 Go de VRAM et conserver une réactivité maximale. C&rsquo;est exactement ce que j&rsquo;ai constaté en surveillant mon outil <code>nvtop</code>. </p>



<figure class="wp-block-image size-large"><img width="1024" height="589"  alt="" class="wp-image-259"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/04/image-35-1024x589.png" srcset="https://tazmenworld.com/wp-content/uploads/2026/04/image-35-1024x589.png 1024w, https://tazmenworld.com/wp-content/uploads/2026/04/image-35-300x173.png 300w, https://tazmenworld.com/wp-content/uploads/2026/04/image-35-768x442.png 768w, https://tazmenworld.com/wp-content/uploads/2026/04/image-35.png 1120w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Bilan de performance</h3>



<p class="wp-block-paragraph">Après plusieurs jours d&rsquo;utilisation intensive, voici mon constat :</p>



<ul class="wp-block-list">
<li><strong>Rapidité :</strong> Sur ma machine (Ryzen 9 9900X et RTX 5070 Ti), la génération est quasi instantanée après la phase de recherche web qui prend environ 2 secondes. </li>



<li><strong>Pertinence :</strong> En passant à 5 sources de recherche au lieu de 3, j&rsquo;ai éliminé la majorité des réponses incomplètes que j&rsquo;avais au début de mes tests.</li>



<li><strong>Confidentialité :</strong> C&rsquo;est le point de rupture total avec les solutions cloud. Je peux poser des questions sur des codes sources privés ou des documents sensibles sans aucune crainte.</li>
</ul>



<p class="wp-block-paragraph">[CODE : exemple_reponse_sourcee.json]</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>{
  "question": "Dernière version stable de SearXNG ?",
  "reponse": "La version actuelle est disponible sur GitHub...",
  "sources": &#91;
    {"titre": "SearXNG Releases", "url": "https://github.com/searxng/searxng/releases"},
    {"titre": "Documentation officielle", "url": "https://docs.searxng.org/"}
  &#93;
}</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">question</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">Dernière version stable de SearXNG ?</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">reponse</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">La version actuelle est disponible sur GitHub...</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">sources</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#91;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #ECEFF4">{</span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">titre</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">SearXNG Releases</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">url</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">https://github.com/searxng/searxng/releases</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">},</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #ECEFF4">{</span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">titre</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">Documentation officielle</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">url</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">https://docs.searxng.org/</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">}</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #ECEFF4">&#93;</span></span>
<span class="line"><span style="color: #ECEFF4">}</span></span></code></pre></div>



<p class="wp-block-paragraph">En résumé, remplacer Perplexity n&rsquo;est pas seulement une déclaration d&rsquo;indépendance ; c&rsquo;est un gain réel en précision et en tranquillité d&rsquo;esprit pour quiconque prend ses données au sérieux.</p>



<h2 class="wp-block-heading">VIII. Conclusion : Le bilan de la liberté</h2>



<p class="wp-block-paragraph">Après avoir parcouru ce long chemin de configuration, de réglages de fichiers YAML et de tests de requêtes, je me pose souvent la question : est-ce que le jeu en vaut la chandelle ? La réponse, pour moi, est un grand « oui ».</p>



<p class="wp-block-paragraph">Remplacer Perplexity par une solution locale n&rsquo;est pas seulement un défi technique gratifiant. C&rsquo;est un acte de reprise de contrôle. En voyant ma <strong>RTX 5070 Ti</strong> grimper à 79% de charge pour synthétiser en quelques secondes une réponse complexe, je ressens une satisfaction que seul le « fait maison » peut procurer.</p>



<h3 class="wp-block-heading">Performance vs Praticité : L&rsquo;heure du bilan</h3>



<p class="wp-block-paragraph">Si l&rsquo;on regarde froidement les chiffres, voici ce que je retiens de ma <strong>Tazmen Station</strong> face aux solutions propriétaires :</p>



<ul class="wp-block-list">
<li><strong>Vie privée :</strong> C&rsquo;est la victoire par K.O. Aucune de mes données ne quitte mon réseau local. SearXNG agit comme un bouclier impénétrable entre mes intentions de recherche et les régies publicitaires.</li>



<li><strong>Vitesse :</strong> Grâce au couple <strong>Ryzen 9 9900X</strong> et GPU NVIDIA, la latence est extrêmement faible. Une fois la phase de recherche web terminée, Mistral-Nemo génère du texte à une vitesse qui n&rsquo;a rien à envier aux versions payantes de GPT ou Claude. </li>



<li><strong>Coût :</strong> Certes, l&rsquo;investissement matériel est là. Mais à 20 € par mois d&rsquo;abonnement économisés, ma station est rentabilisée sur la durée, sans compter qu&rsquo;elle me sert aussi pour d&rsquo;autres tâches lourdes.</li>



<li><strong>Précision :</strong> En forçant le système à lire 5 sources via SearXNG au lieu des 3 habituelles, j&rsquo;ai obtenu une profondeur d&rsquo;analyse qui m&rsquo;a bluffé, notamment sur les sujets de <strong>sécurité</strong>.</li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Caractéristique</strong></td><td><strong>Perplexity (Cloud)</strong></td><td><strong>Mistral Local + SearXNG</strong></td></tr><tr><td><strong>Vie privée &amp; Sécurité</strong></td><td>Données traitées sur serveurs tiers (Cloud).</td><td>Souveraineté totale : aucune donnée ne quitte ton réseau local.</td></tr><tr><td><strong>Coût mensuel</strong></td><td>Environ 20 $ / mois pour la version Pro.</td><td>0 € (une fois le matériel acquis).</td></tr><tr><td><strong>Moteur de recherche</strong></td><td>Algorithme propriétaire (boîte noire).</td><td><strong>SearXNG</strong> : Agrégateur anonyme et transparent (Bing, Google, Brave, etc.).</td></tr><tr><td><strong>Contrôle du RAG</strong></td><td>Limité aux réglages de l&rsquo;interface.</td><td>Maîtrise totale du nombre de sources (ex: 5 sources) et du filtrage.</td></tr><tr><td><strong>Matériel requis</strong></td><td>Une simple connexion internet.</td><td>GPU dédié (<strong>RTX 5070 Ti</strong>) et CPU performant (<strong>Ryzen 9 9900X</strong>).</td></tr><tr><td><strong>Dépendance</strong></td><td>Dépend de la connexion et de la stabilité du service tiers.</td><td>Autonomie complète : fonctionne même hors-ligne (hors recherche web).</td></tr><tr><td><strong>Modèles de langage</strong></td><td>Modèles imposés (GPT-4, Claude, etc.).</td><td>Liberté de choix et de mise à jour (ex: <strong>Mistral-Nemo 12B</strong>).</td></tr><tr><td><strong>Performance (Inférence)</strong></td><td>Variable selon la charge des serveurs distants.</td><td>Quasi instantanée sur GPU local (13 Go de VRAM mobilisés).</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Et quoi après ?</h3>



<p class="wp-block-paragraph" id="p-rc_ba25ed05b53015be-130">Ce guide n&rsquo;est que le début. Avec cette infrastructure Docker solide, je peux maintenant explorer de nouveaux horizons<sup></sup>. L&rsquo;étape suivante pour moi sera d&rsquo;intégrer des agents autonomes capables d&rsquo;exécuter des tâches encore plus complexes à partir de mes recherches web.</p>



<p class="wp-block-paragraph">Bâtir sa propre IA, c&rsquo;est accepter de passer un peu de temps dans son terminal pour gagner une liberté qui n&rsquo;a pas de prix. J&rsquo;espère que ce guide vous aura donné les clés pour, vous aussi, transformer votre machine Ubuntu en une forteresse d&rsquo;intelligence privée.</p>



<p class="wp-block-paragraph">[CODE : commande_finale_restart.sh]</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly># Pour relancer l'ensemble après une mise à jour des modèles
sudo docker compose down &amp;&amp; sudo docker compose up -d --remove-orphans</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #616E88"># Pour relancer l&#39;ensemble après une mise à jour des modèles</span></span>
<span class="line"><span style="color: #A3BE8C">sudo docker compose down &amp;&amp; sudo docker compose up -d --remove-orphans</span></span></code></pre></div>



<p class="wp-block-paragraph">Merci de m&rsquo;avoir suivi dans cette exploration technique. Si vous avez des questions sur la configuration de votre GPU ou sur les subtilités de SearXNG, n&rsquo;hésitez pas à partager vos retours. La route vers l&rsquo;IA locale est vaste, et nous ne faisons que commencer à en dessiner les contours. </p>



<p class="wp-block-paragraph">A bientôt Louis 🐇 🤜 🤛 🐰</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://tazmenworld.com/2026/04/30/comment-remplacer-perplexity-par-mistral-en-local/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://tazmenworld.com/wp-content/uploads/2026/04/search.mp4" length="2251368" type="video/mp4" />

			</item>
		<item>
		<title>Découvrez le Blog de Ludovik Dopierala : Un Expert des Licences Microsoft 365 et du FinOps Cloud</title>
		<link>https://tazmenworld.com/2026/02/12/decouvrez-le-blog-de-ludovik-dopierala-un-expert-des-licences-microsoft-365-et-du-finops-cloud/</link>
					<comments>https://tazmenworld.com/2026/02/12/decouvrez-le-blog-de-ludovik-dopierala-un-expert-des-licences-microsoft-365-et-du-finops-cloud/#respond</comments>
		
		<dc:creator><![CDATA[tazmen3]]></dc:creator>
		<pubDate>Thu, 12 Feb 2026 17:39:33 +0000</pubDate>
				<category><![CDATA[Non classé]]></category>
		<guid isPermaLink="false">https://tazmenworld.com/?p=106</guid>

					<description><![CDATA[Dans le monde en constante évolution des licences Microsoft, de l&#8217;optimisation cloud et des stratégies FinOps, il est essentiel de rester informé des dernières pratiques en matière d&#8217;achats IT, de gestion budgétaire et de négociations fournisseurs. C&#8217;est précisément ce que propose le blog de Ludovik Dopierala, un expert reconnu dans le domaine des licences Microsoft [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img width="1024" height="388"  alt="" class="wp-image-107"/ loading="lazy" decoding="async" src="https://tazmenworld.com/wp-content/uploads/2026/02/Capture-decran-2026-02-12-181645-1024x388.jpg" srcset="https://tazmenworld.com/wp-content/uploads/2026/02/Capture-decran-2026-02-12-181645-1024x388.jpg 1024w, https://tazmenworld.com/wp-content/uploads/2026/02/Capture-decran-2026-02-12-181645-300x114.jpg 300w, https://tazmenworld.com/wp-content/uploads/2026/02/Capture-decran-2026-02-12-181645-768x291.jpg 768w, https://tazmenworld.com/wp-content/uploads/2026/02/Capture-decran-2026-02-12-181645.jpg 1198w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Dans le monde en constante évolution des licences Microsoft, de l&rsquo;optimisation cloud et des stratégies FinOps, il est essentiel de rester informé des dernières pratiques en matière d&rsquo;achats IT, de gestion budgétaire et de négociations fournisseurs. C&rsquo;est précisément ce que propose le blog de Ludovik Dopierala, un expert reconnu dans le domaine des licences Microsoft 365 basé en région parisienne. Avec plus de 4 428 abonnés sur LinkedIn et une expertise pointue chez alt-up by Artemys, Ludovik Dopierala aide les DSI et acheteurs IT à optimiser leurs coûts sur les licences Microsoft Cloud, particulièrement Microsoft 365, dans un contexte de hausses tarifaires récurrentes.</p>



<h2 class="wp-block-heading"><strong>Qui est Ludovik Dopierala ?</strong></h2>



<p class="wp-block-paragraph">Ludovik Dopierala est un professionnel aguerri du secteur IT, avec une expertise marquée en licences Microsoft 365, infrastructure cloud Microsoft Azure et collaboration Modern Workplace. Actuellement&nbsp;<strong>Service Line Manager chez alt-up by Artemys</strong>&nbsp;à Roeux (Hauts-de-France), il occupe un poste d&rsquo;expert en infrastructure et cloud Microsoft Azure et collaboration. Avec un profil technique et le titre de&nbsp;<strong>MVP Allumnin</strong>, il conseille les DSI et acheteurs sur le bon niveau de licences Microsoft en fonction de leurs usages réels.</p>



<p class="wp-block-paragraph">Ses publications sur son blog&nbsp;<strong><a rel="noreferrer noopener" target="_blank" href="https://dopierala.fr/">Dopierala.fr</a></strong>&nbsp;et sur LinkedIn, telles que des analyses sur les hausses de prix Microsoft 365 2026 (jusqu&rsquo;à +33%), les contrats CSP ou les stratégies de migration vers Google Workspace, démontrent sa veille technologique active et son engagement à décrypter les enjeux actuels pour un public averti. Son approche analytique et stratégique (« deep dive ») transparaît dans ses écrits, faisant de lui une référence pour les DSI, acheteurs IT, experts en cybersécurité et passionnés du cloud.</p>



<h2 class="wp-block-heading"><strong>Présentation du Blog Dopierala.fr</strong></h2>



<p class="wp-block-paragraph">Le blog&nbsp;<strong><a rel="noreferrer noopener" target="_blank" href="https://dopierala.fr/">Dopierala.fr</a></strong>&nbsp;est une plateforme dédiée à des analyses techniques détaillées sur des thèmes variés comme les licences Microsoft 365, la sécurité informatique, l&rsquo;IA, les infrastructures cloud et les stratégies FinOps émergentes. Son blog vise à fournir des décryptages pointus, des alertes infrastructurelles et des stratégies d&rsquo;optimisation budgétaire, le tout dans un style technique et accessible aux professionnels.</p>



<p class="wp-block-paragraph">Les articles sont souvent structurés autour de « deep dives » ou d&rsquo;analyses en profondeur, avec des titres évocateurs qui mettent l&rsquo;accent sur des innovations ou des menaces actuelles. Le blog s&rsquo;adresse principalement à un public expert : administrateurs systèmes, spécialistes en sécurité et professionnels du cloud, qui cherchent des insights pratiques et des réflexions stratégiques.</p>



<h2 class="wp-block-heading"><strong>Exemples d&rsquo;Articles Récents</strong></h2>



<p class="wp-block-paragraph">Voici un aperçu des publications qui illustrent la richesse du contenu :</p>



<ul class="wp-block-list">
<li><strong>Microsoft 365 : La courbe de Laffer arrive enfin dans les licences SaaS ?</strong> : Une exploration prospective reliant économie (courbe de Laffer) et tarification cloud, expliquant pourquoi les hausses Microsoft 365 de juillet 2026 pourraient atteindre un point de rupture.</li>



<li><strong>Le Contrat CSP de Microsoft : Une Solution Avantageuse pour les DSI et Acheteurs de PME</strong> : Analyse des modèles contractuels Microsoft (Cloud Solution Provider) et stratégies d&rsquo;optimisation budgétaire.</li>



<li><strong>Microsoft 365 F3 : Attention à votre Stockage SharePoint</strong> : Décryptage des limitations et pièges des licences Frontline.</li>



<li><strong>Azure Virtual Desktop : Analyse des Regional Host Pools (Public Preview) et de la Souveraineté des Métadonnées</strong> : Focus sur les nouveautés Azure AVD et la gestion des données sensibles.</li>



<li><strong>Windows Admin Center : Vers une Architecture Modulaire avec le « Virtualization Mode »</strong> : Une exploration des évolutions modulaires dans l&rsquo;administration Windows.</li>



<li><strong>Alerte Infra : La mutation des scans Citrix vers les réseaux résidentiels (Analyse Deep Dive)</strong> : Analyse des nouvelles menaces liées aux scans de réseau.</li>



<li><strong>L&rsquo;exposition des instances Ollama : Vecteur d&rsquo;un réseau d&rsquo;inférence IA fantôme (« Silent Brothers »)</strong> : Décryptage d&rsquo;une vulnérabilité IA potentielle.</li>



<li><strong>Microsoft Maia 200 : L&rsquo;ASIC qui redéfinit les standards de l&rsquo;inférence IA en 3nm</strong> : Présentation d&rsquo;une puce IA innovante.</li>
</ul>



<p class="wp-block-paragraph">Ces articles mettent en lumière des sujets d&rsquo;actualité, comme les intrusions via routage SMTP, la sécurité face à l&rsquo;IA générative ou le tuning de VRAM pour GPU, avec une emphase sur des stratégies pratiques et des alertes timely.</p>



<h2 class="wp-block-heading"><strong>Pourquoi Suivre Dopierala.fr ?</strong></h2>



<p class="wp-block-paragraph">Si vous êtes passionné par les stratégies d&rsquo;optimisation cloud, les licences Microsoft 365 et que vous souhaitez approfondir vos connaissances en FinOps, cybersécurité et alternatives SaaS, le blog de Ludovik Dopierala est une ressource incontournable. Ses analyses approfondies et ses alertes infrastructurelles vous aideront à anticiper les défis futurs dans un paysage numérique en mutation rapide, notamment face aux hausses tarifaires Microsoft de juillet 2026.</p>



<p class="wp-block-paragraph">N&rsquo;hésitez pas à suivre&nbsp;<strong><a rel="noreferrer noopener" target="_blank" href="https://www.linkedin.com/in/ludovik-dopierala/">Ludovik sur LinkedIn</a></strong>&nbsp;pour plus d&rsquo;updates, et à visiter son blog sur&nbsp;<strong><a rel="noreferrer noopener" target="_blank" href="https://dopierala.fr/">dopierala.fr</a></strong>&nbsp;pour découvrir ses dernières publications !</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tazmenworld.com/2026/02/12/decouvrez-le-blog-de-ludovik-dopierala-un-expert-des-licences-microsoft-365-et-du-finops-cloud/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
