<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Thomas</title>
        <link>https://blog.thomasplantain.fr/</link>
        <description>Recent content on Thomas</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>fr-fr</language>
        <lastBuildDate>Tue, 28 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.thomasplantain.fr/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>The Technological Republic</title>
        <link>https://blog.thomasplantain.fr/post/karp/</link>
        <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/karp/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/cover.jpg" alt="Featured image of post The Technological Republic" /&gt;&lt;blockquote&gt;
&lt;p&gt;Traduction en français des 22 points principaux qui résument le livre d&amp;rsquo;Alex Karp selon Palantir dans son message sur X, &amp;ldquo;The Technological Republic: Hard Power, Soft Belief, and the Future of the West&amp;rdquo;. Cette traduction a été produite par l&amp;rsquo;IA.&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://techrepublicbook.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;techrepublicbook&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/PalantirTech/status/2045574398573453312&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Palantir sur X&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;la-république-technologique-en-bref&#34;&gt;La République technologique, en bref
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;La Silicon Valley a une dette morale envers le pays qui a rendu son essor possible. L’élite ingénieure de la Silicon Valley a l’obligation positive de participer à la défense de la nation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nous devons nous rebeller contre la tyrannie des applis. L’iPhone est-il notre plus grande création, voire notre couronnement civilisationnel ? Cet objet a transformé nos vies, mais il limite peut-être désormais notre imaginaire du possible.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Les e-mails gratuits ne suffisent pas. La décadence d’une culture, d’une civilisation, et même de sa classe dirigeante, n’est pardonnable que si cette culture est capable d’apporter croissance économique et sécurité au public.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Les limites du soft power et de la seule rhétorique grandiose ont été exposées. Pour que les sociétés libres et démocratiques l’emportent, il faut plus qu’un appel moral : il faut de la puissance dure, et au XXIe siècle, elle se construira par le logiciel.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;La question n’est pas de savoir si des armes fondées sur l’IA seront construites, mais qui les construira et dans quel but. Nos adversaires ne suspendront pas leurs efforts pour des débats théâtraux sur le mérite de ces technologies militaires et de sécurité nationale : ils avanceront.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Le service national devrait être un devoir universel. Nous devrions sérieusement envisager de sortir du modèle d’armée entièrement volontaire, et ne faire la prochaine guerre que si chacun partage les risques et les coûts.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Si un Marine américain demande un meilleur fusil, nous devrions le construire ; de même pour le logiciel. On peut débattre de la pertinence des interventions militaires à l’étranger tout en restant inflexibles dans notre engagement envers ceux que nous envoyons au danger.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Les serviteurs de l’État n’ont pas à être nos prêtres. Une entreprise qui rémunérerait ses employés comme l’État fédéral rémunère ses agents aurait du mal à survivre.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nous devrions faire preuve de beaucoup plus de bienveillance envers ceux qui se sont exposés à la vie publique. L’éradication de tout espace de pardon — le rejet de la complexité et des contradictions humaines — pourrait nous laisser avec des dirigeants que nous finirons par regretter.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;La psychologisation de la politique moderne nous égare. Ceux qui cherchent dans l’arène politique une nourriture spirituelle et identitaire, ou qui projettent trop leur vie intérieure sur des personnes qu’ils ne rencontreront jamais, seront déçus.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Notre société est trop prompte à précipiter, et parfois à célébrer, la chute de ses ennemis. La défaite d’un adversaire devrait être un moment de pause, pas de jubilation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;L’ère atomique touche à sa fin. Un âge de la dissuasion (nucléaire) se termine, et une nouvelle ère de dissuasion fondée sur l’IA commence.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Aucun autre pays dans l’histoire n’a davantage fait progresser des valeurs progressistes que celui-ci. Les États-Unis sont loin d’être parfaits, mais offrent davantage d’opportunités aux non-héritiers des élites que n’importe quel autre pays.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;La puissance américaine a rendu possible une paix extraordinairement longue. Trop de gens oublient, ou tiennent pour acquis, qu’environ un siècle s’est écoulé sans guerre majeure entre grandes puissances. Au moins trois générations — des milliards de personnes, puis leurs enfants et petits-enfants — n’ont jamais connu de guerre mondiale.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Le désarmement politique de l’Allemagne et du Japon après-guerre doit être remis en cause. Le bridage de l’Allemagne fut une surcorrection dont l’Europe paie aujourd’hui le prix. Un pacifisme japonais maintenu de façon théâtrale pourrait aussi menacer l’équilibre des puissances en Asie.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nous devrions saluer ceux qui essaient de construire là où le marché a échoué. La culture dominante raille presque l’intérêt de Musk pour les grands récits, comme si les milliardaires devaient se contenter de s’enrichir ; toute curiosité sincère pour la valeur de ce qu’il a bâti est souvent disqualifiée.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;La Silicon Valley doit jouer un rôle face à la criminalité violente. Beaucoup de responsables politiques américains ont pratiquement renoncé à agir sérieusement, évitant les risques politiques nécessaires pour expérimenter des solutions dans ce qui devrait être une course urgente pour sauver des vies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;L’exposition impitoyable de la vie privée des personnalités publiques détourne trop de talents de la fonction publique. L’espace public, devenu impitoyable et mesquin envers ceux qui tentent de servir autre chose que leur enrichissement, laisse la république avec trop de profils creux et inefficaces.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;La prudence que nous encourageons involontairement dans la vie publique est corrosive. Ceux qui ne disent jamais rien de faux ne disent souvent rien d’important.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;L’intolérance envers la croyance religieuse, dans certains milieux, doit être combattue. Cette intolérance des élites signale peut-être que leur projet politique est moins ouvert intellectuellement qu’elles ne le prétendent.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Certaines cultures ont produit des avancées majeures ; d’autres restent dysfonctionnelles et régressives. Le dogme selon lequel toutes les cultures seraient équivalentes interdirait toute évaluation critique, en occultant que certaines cultures ou sous-cultures ont produit des merveilles, tandis que d’autres ont été médiocres, voire nuisibles.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nous devons résister à la tentation superficielle d’un pluralisme vide. Depuis un demi-siècle, l’Amérique et l’Occident évitent de définir des cultures nationales au nom de l’inclusivité. Mais inclusion dans quoi, exactement ?&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;résumé-synthétique&#34;&gt;Résumé synthétique
&lt;/h2&gt;&lt;p&gt;Le texte défend une thèse centrale : la technologie, surtout logicielle et IA, doit redevenir un outil de puissance nationale, de sécurité collective et de prospérité économique, plutôt qu’un simple moteur d’applications grand public.&lt;/p&gt;
&lt;p&gt;Il appelle à un réarmement civique et stratégique : implication directe de la Silicon Valley dans la défense, valorisation du service national, soutien concret aux militaires, et remise en question de certains tabous géopolitiques de l’après-guerre.&lt;/p&gt;
&lt;p&gt;En parallèle, il critique la culture politique et médiatique contemporaine : moralisation performative, obsession psychologique de la politique, absence de pardon public, disqualification des croyances religieuses, et climat qui décourage les talents de servir l’État.&lt;/p&gt;
&lt;p&gt;Enfin, il plaide pour une vision plus affirmée de la civilisation occidentale et de l’identité nationale, en contestant un pluralisme perçu comme abstrait et sans finalité commune.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>MCP pour les nuls - la suite</title>
        <link>https://blog.thomasplantain.fr/post/mcpgtw/</link>
        <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/mcpgtw/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/mcpgtw/mcp-gateway-gemini.avif" alt="Featured image of post MCP pour les nuls - la suite" /&gt;&lt;blockquote&gt;
&lt;p&gt;Suite du post précédent, je mets en place une gateway pour protéger mon serveur MCP. Le serveur MCP a été déployé sur Azure Container, il est accessible.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/mcp-gateway-gemini.avif&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;MCP Gateway&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;mise-en-place-dune-flex-gateway&#34;&gt;Mise en place d&amp;rsquo;une Flex gateway
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Création et enregistrement de ma nouvelle Flex gateway (mcp-gateway)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;J&amp;rsquo;ai créé une image Docker de la flex avec son fichier d&amp;rsquo;enregistrement. L&amp;rsquo;image Docker tourne sur un Azure Container, elle est maintenant visible sur Anypoint (le control plane de MuleSoft).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/new-flex-gtw.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Flex Gateway&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;configuration-de-mon-server-mcp-sur-anypoint&#34;&gt;Configuration de mon server MCP sur Anypoint
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.mulesoft.com/api-manager/latest/create-instance-task-agent-tool&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Documentation officielle de MuleSoft&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ajout de mon serveur MCP (mcp_card)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Aller sur &lt;strong&gt;API Manager&lt;/strong&gt; (Anypoint) et sélectionner &lt;strong&gt;Agent and Tools Instances&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/mcp-server-instance.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;API Manager&#34;
	
	
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;En sélectionnant la Flex Gateway mise en place pour ce projet.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/add-mcp1.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Flex Gateway&#34;
	
	
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Maintenant on peut ajouter un &lt;strong&gt;MCP Server&lt;/strong&gt; et on finalise la configuration.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/mcp-config1.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Flex Gateway&#34;
	
	
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Le contrat du serveur &lt;strong&gt;mcp_card&lt;/strong&gt; est visible sur le portail API d&amp;rsquo;Anypoint (Exchange).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/exchange-mcp.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Echange&#34;
	
	
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Le serveur mcp_card est théoriquement accessible via la gateway, il faut maintenant ajouter les policies pour le sécuriser.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;policies-pour-mon-serveur-mcp&#34;&gt;Policies pour mon serveur MCP
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.mulesoft.com/gateway/latest/policies-included-mcp-support&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;MCP Support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Cette policy est obligatoire pour le bon fonctionnement du serveur MCP.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Client ID Enforcement&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Pour limiter l&amp;rsquo;accès au serveur &lt;strong&gt;mcp_card&lt;/strong&gt; aux applications enregistrées qui ont le duo &lt;strong&gt;client_id/client_secret&lt;/strong&gt; dans leurs Headers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/mcp-clientid.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Echange&#34;
	
	
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nous avons donc 2 policies configurées sur notre gateway pour le serveur &lt;strong&gt;mcp_card&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/mcp-policies.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Policies&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;appels-du-serveur-mcp-avec-bruno&#34;&gt;Appels du serveur MCP avec Bruno
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Nous allons tester la connectivité au server &lt;strong&gt;mcp_card&lt;/strong&gt; avec le client API &lt;a class=&#34;link&#34; href=&#34;https://www.usebruno.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Bruno&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Configuration des Headers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/bruno-headers.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Headers&#34;
	
	
&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Appels aux services du serveur &lt;strong&gt;mcp_card&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/call-mcp1.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;card_details&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/call-mcp4.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;transaction_list&#34;
	
	
&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si le &lt;strong&gt;client_secret&lt;/strong&gt; est faux dans les Headers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/call-mcp-failed.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;failed&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;observabilité&#34;&gt;Observabilité
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;L&amp;rsquo;outil de monitoring d&amp;rsquo;Anypoint nous permet au niveau de la configuration du serveur de visualiser les appels. On voit les appels de chaque service et les appels en erreurs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;card_details&lt;/li&gt;
&lt;li&gt;transaction_list&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcpgtw/mcp-metrics.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;metrics&#34;
	
	
&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>MCP pour les nuls</title>
        <link>https://blog.thomasplantain.fr/post/mcp/</link>
        <pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/mcp/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/mcp/mcp_bg.avif" alt="Featured image of post MCP pour les nuls" /&gt;&lt;h2 id=&#34;mcp-kesako-&#34;&gt;MCP Kesako ?
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Protocole de communication entre un agent IA et un service.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://modelcontextprotocol.io/docs/getting-started/intro&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;MCP Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le service permet à un agent d&amp;rsquo;avoir accès à des données structurées (format JSON) qui ne sont pas déjà présentes dans son modèle LLM.
Il existe deux protocoles de communication, io et http. Dans mon cas, je souhaite utiliser http, dans l&amp;rsquo;idée de créer un serveur MCP accessible à tous.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcp/mcp-simple-diagram.avif&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;copilot&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Pour accélérer le développement, je vais utiliser la librairie Python fastMCP :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fastMCP: &lt;a class=&#34;link&#34; href=&#34;https://gofastmcp.com/getting-started/welcome&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://gofastmcp.com/getting-started/welcome&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;prototype-du-service-mcp&#34;&gt;Prototype du service MCP
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Mon cas d&amp;rsquo;utilisation : je veux mettre en place un service qui donne les détails d&amp;rsquo;une carte de crédit si on lui donne le numéro en paramètre, ou la liste des transactions d&amp;rsquo;un compte.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dans ce premier post, je ne vais pas aborder la sécurité ni l&amp;rsquo;observabilité, mais je souhaite en parler bientôt dans un post dédié, notamment via une API Gateway.&lt;/p&gt;
&lt;h3 id=&#34;pour-commencer&#34;&gt;Pour commencer
&lt;/h3&gt;&lt;p&gt;Dans un environnement Python :&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip install fastmcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;serveur-mcp-card-details&#34;&gt;Serveur MCP Card Details
&lt;/h3&gt;&lt;p&gt;J&amp;rsquo;ai créé deux services : le détail d&amp;rsquo;une carte et la liste des transactions d&amp;rsquo;un compte, avec des données fictives.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; fastmcp &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; FastMCP
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; starlette.requests &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; Request
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; starlette.responses &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; PlainTextResponse
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mcp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; FastMCP(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;My MCP Server&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@mcp.custom_route&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/health&amp;#34;&lt;/span&gt;, methods&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;GET&amp;#34;&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;async&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;health_check&lt;/span&gt;(request: Request) &lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt; PlainTextResponse:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; PlainTextResponse(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OK&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@mcp.tool&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;card_details&lt;/span&gt;(card_number: str) &lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt; dict:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# Dummy implementation for demonstration purposes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;card_number&amp;#34;&lt;/span&gt;: card_number,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;card_type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Visa&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;expiry_date&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;12/25&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;cardholder_name&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;John Doe&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@mcp.tool&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;transaction_list&lt;/span&gt;(account_id: str) &lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt; list:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# Dummy implementation for demonstration purposes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        {&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;transaction_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;txn_001&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;amount&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;100.0&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;currency&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;USD&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;completed&amp;#34;&lt;/span&gt;},
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        {&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;transaction_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;txn_002&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;amount&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;50.0&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;currency&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;USD&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;pending&amp;#34;&lt;/span&gt;},
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        {&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;transaction_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;txn_003&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;amount&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;75.0&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;currency&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;USD&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;failed&amp;#34;&lt;/span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; __name__ &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    mcp&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;run(transport&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http&amp;#34;&lt;/span&gt;, port&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8000&lt;/span&gt;)    
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pour lancer le serveur qui va écouter sur le port 8000, j&amp;rsquo;exécute :&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python my_server.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;configuration-de-copilot&#34;&gt;Configuration de Copilot
&lt;/h2&gt;&lt;p&gt;Une fois que le serveur MCP tourne dans la console, je configure mon GitHub Copilot pour qu&amp;rsquo;il ajoute le serveur dans sa liste :&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcp/mcp_copilot_config.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;copilot&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Une fois la configuration faite, on peut voir le serveur et les deux fonctionnalités (&lt;code&gt;card_details&lt;/code&gt; et &lt;code&gt;transaction_list&lt;/code&gt;) :&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcp/mcp_tools.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;tools&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;utilisation-du-service&#34;&gt;Utilisation du service
&lt;/h3&gt;&lt;p&gt;Les deux fonctionnalités sont maintenant accessibles dans le chat de Copilot :
&lt;img src=&#34;https://blog.thomasplantain.fr/img/mcp/mcp_copilot.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;chat&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;prochaines-étapes&#34;&gt;Prochaines étapes
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Mettre en place une API Gateway
&lt;ul&gt;
&lt;li&gt;Authentification&lt;/li&gt;
&lt;li&gt;Observabilité&lt;/li&gt;
&lt;li&gt;Limitation, quotas&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Labor market impacts of AI</title>
        <link>https://blog.thomasplantain.fr/post/labor/</link>
        <pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/labor/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/market-down.avif" alt="Featured image of post Labor market impacts of AI" /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/research/labor-market-impacts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/research/labor-market-impacts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Voici un résumé en francais de l&amp;rsquo;article d&amp;rsquo;Anthropic sur límpact de l&amp;rsquo;IA sur le marché du travail. Cet post est généré par l&amp;rsquo;IA, ce n&amp;rsquo;est pas une analyse. Je vais ajouter au fur et à mesure des liens sur des suppressions de postes liés à l&amp;rsquo;IA.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;résumé-en-français--impact-de-lia-sur-le-marché-du-travail&#34;&gt;Résumé en français : Impact de l&amp;rsquo;IA sur le marché du travail
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/radar-labor.avif&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Radar&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;points-clés&#34;&gt;Points clés
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Nouvelle mesure de risque&lt;/strong&gt; : Les chercheurs introduisent l&amp;rsquo;« exposition observée » qui combine les capacités théoriques des LLM avec les données d&amp;rsquo;utilisation réelle, en mettant davantage l&amp;rsquo;accent sur les usages automatisés et professionnels plutôt qu&amp;rsquo;augmentatifs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Écart théorie-pratique&lt;/strong&gt; : L&amp;rsquo;IA est loin d&amp;rsquo;atteindre son potentiel théorique. Par exemple, Claude ne couvre que 33% des tâches dans le domaine informatique et mathématique, contre 94% en potentiel théorique.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Corrélation avec la croissance&lt;/strong&gt; : Les emplois avec exposition plus élevée devraient connaître une croissance moins importante jusqu&amp;rsquo;en 2034 selon le Bureau of Labor Statistics.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Profil des travailleurs exposés&lt;/strong&gt; : Comparés aux travailleurs non exposés, les travailleurs très exposés sont plus souvent des femmes (+16%), des Asiatiques (2× plus), mieux éduqués (17,4% ont un diplôme supérieur vs 4,5%) et gagnent 47% plus.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Impact sur l&amp;rsquo;emploi jusqu&amp;rsquo;à présent&lt;/strong&gt; : Aucune augmentation systématique du chômage parmi les travailleurs très exposés depuis fin 2022. Cependant, des indices suggèrent que l&amp;rsquo;embauche de jeunes travailleurs (22-25 ans) a ralenti dans les secteurs exposés, avec une baisse de 14% du taux de conclusion d&amp;rsquo;emplois.&lt;/p&gt;
&lt;h3 id=&#34;méthodologie&#34;&gt;Méthodologie
&lt;/h3&gt;&lt;p&gt;L&amp;rsquo;étude combine :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La base de données O*NET (tâches par métier)&lt;/li&gt;
&lt;li&gt;Les données d&amp;rsquo;utilisation d&amp;rsquo;Anthropic (Claude)&lt;/li&gt;
&lt;li&gt;Les estimations d&amp;rsquo;exposition théorique de Eloundou et al. (2023)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les chercheurs se concentrent sur le chômage comme indicateur principal, car il reflète directement le potentiel de préjudice économique.&lt;/p&gt;
&lt;h2 id=&#34;liens-sur-des-suppressions-demplois-à-cause-de-lia&#34;&gt;Liens sur des suppressions d&amp;rsquo;emplois à cause de l&amp;rsquo;IA
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.lemondeinformatique.fr/actualites/lire-oracle-pret-a-supprimer-des-milliers-d-emplois-99560.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.lemondeinformatique.fr/actualites/lire-oracle-pret-a-supprimer-des-milliers-d-emplois-99560.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.latribune.fr/article/banques-finance/assurance/29837237610705/paiements-jack-dorsey-declenche-une-job-apocalypse-chez-square&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.latribune.fr/article/banques-finance/assurance/29837237610705/paiements-jack-dorsey-declenche-une-job-apocalypse-chez-square&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.lemondeinformatique.fr/actualites/lire-atlassian-supprime-1-600-emplois-pour-se-focaliser-sur-l-ia-99630.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.lemondeinformatique.fr/actualites/lire-atlassian-supprime-1-600-emplois-pour-se-focaliser-sur-l-ia-99630.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.usine-digitale.fr/big-tech/meta/meta-va-licencier-20-de-ses-effectifs-alors-quil-depense-sans-compter-pour-tenter-de-revenir-dans-la-course-a-lia-generative.74IGDEPMTBDZNFOX44MPQXDKYE.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.usine-digitale.fr/big-tech/meta/meta-va-licencier-20-de-ses-effectifs-alors-quil-depense-sans-compter-pour-tenter-de-revenir-dans-la-course-a-lia-generative.74IGDEPMTBDZNFOX44MPQXDKYE.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.lesechos.fr/tech-medias/hightech/meta-serait-en-train-de-preparer-un-plan-de-departs-xxl-2221055&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.lesechos.fr/tech-medias/hightech/meta-serait-en-train-de-preparer-un-plan-de-departs-xxl-2221055&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.lemondeinformatique.fr/actualites/lire-meta-supprimerait-8-000-postes-pour-accelerer-dans-l-ia-99968.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.lemondeinformatique.fr/actualites/lire-meta-supprimerait-8-000-postes-pour-accelerer-dans-l-ia-99968.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.huffingtonpost.fr/tech-futurs/article/apres-une-course-effrenee-a-l-ia-la-societe-mere-de-facebook-va-supprimer-10-de-ses-effectifs_263026.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.huffingtonpost.fr/tech-futurs/article/apres-une-course-effrenee-a-l-ia-la-societe-mere-de-facebook-va-supprimer-10-de-ses-effectifs_263026.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.usine-digitale.fr/big-tech/meta/meta-licencie-10-de-son-personnel-et-va-analyser-le-travail-des-employes-restants-pour-entrainer-des-agents-ia-qui-pourraient-un-jour-les-remplacer.6KYPH2XVINA4PMJALEV5F3LN5Y.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.usine-digitale.fr/big-tech/meta/meta-licencie-10-de-son-personnel-et-va-analyser-le-travail-des-employes-restants-pour-entrainer-des-agents-ia-qui-pourraient-un-jour-les-remplacer.6KYPH2XVINA4PMJALEV5F3LN5Y.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>The 2028 Global Intelligence Crisis</title>
        <link>https://blog.thomasplantain.fr/post/2028/</link>
        <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/2028/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/market-down.avif" alt="Featured image of post The 2028 Global Intelligence Crisis" /&gt;&lt;h2 id=&#34;publié-par-citrini-research&#34;&gt;Publié par Citrini Research
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Le blog intitulé &amp;ldquo;The 2028 Global Intelligence Crisis&amp;rdquo;, publié par Citrini Research, est une fiction qui imagine un scénario de crise économique majeure déclenchée par l&amp;rsquo;adoption massive de l&amp;rsquo;intelligence artificielle d&amp;rsquo;ici 2028.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.citriniresearch.com/p/2028gic&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.citriniresearch.com/p/2028gic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;1-le-cercle-vicieux-de-lintelligence&#34;&gt;1. Le &amp;ldquo;Cercle Vicieux de l&amp;rsquo;Intelligence&amp;rdquo;
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Le rapport décrit un effet de rétroaction négative :&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Productivité vs Emploi : Les entreprises adoptent massivement l&amp;rsquo;IA pour augmenter leur productivité et réduire leurs coûts, ce qui entraîne des licenciements massifs, particulièrement chez les cols blancs (secteur des services, ingénierie logicielle, finance).&lt;/li&gt;
&lt;li&gt;Baisse de la consommation : Les travailleurs licenciés réduisent leurs dépenses. Cette chute de la demande globale pèse sur les revenus des entreprises, qui, pour maintenir leurs marges, licencient davantage et investissent encore plus dans l&amp;rsquo;IA pour automatiser.&lt;/li&gt;
&lt;li&gt;Résultat : Un taux de chômage qui grimpe à plus de 10 % d&amp;rsquo;ici juin 2028 et une chute brutale des marchés boursiers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-le-concept-de-pib-fantôme-ghost-gdp&#34;&gt;2. Le concept de &amp;ldquo;PIB Fantôme&amp;rdquo; (Ghost GDP)
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;C&amp;rsquo;est l&amp;rsquo;un des points les plus marquants du blog :&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;L&amp;rsquo;IA génère une croissance de la production (le PIB augmente car les machines travaillent), mais cette richesse ne circule plus dans l&amp;rsquo;économie réelle.&lt;/li&gt;
&lt;li&gt;Contrairement aux employés humains, les serveurs d&amp;rsquo;IA n&amp;rsquo;achètent pas de nourriture, ne paient pas de loyers et ne consomment pas de services locaux. La croissance devient déconnectée du bien-être de la population.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-la-crise-du-saas-software-as-a-service&#34;&gt;3. La crise du SaaS (Software as a Service)
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Le rapport prédit l&amp;rsquo;effondrement des marges des entreprises de logiciels :&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;L&amp;rsquo;IA rend le développement de logiciels si facile et peu coûteux que les entreprises préfèrent créer leurs propres outils en interne plutôt que de payer des abonnements coûteux à des fournisseurs tiers (Salesforce, Zendesk, etc.).&lt;/li&gt;
&lt;li&gt;Cela détruit les &amp;ldquo;moats&amp;rdquo; (avantages concurrentiels) traditionnels du secteur technologique.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;4-risque-systémique-et-financier&#34;&gt;4. Risque systémique et financier
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;La crise se propage au secteur financier :&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Immobilier : Les anciens cadres bien rémunérés ne peuvent plus rembourser leurs prêts hypothécaires, créant une crise de la dette.&lt;/li&gt;
&lt;li&gt;Crédit privé : De nombreux fonds de dette sont exposés à des entreprises de technologie dont la valeur s&amp;rsquo;effondre, créant une réaction en chaîne similaire à celle de 2008, mais causée par l&amp;rsquo;obsolescence technologique plutôt que par des prêts subprime.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;5-conclusion-du-rapport&#34;&gt;5. Conclusion du rapport
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Le texte n&amp;rsquo;est pas une prédiction exacte, mais une mise en garde.
Il souligne que si l&amp;rsquo;IA peut rendre l&amp;rsquo;économie plus &amp;ldquo;efficace&amp;rdquo;, elle peut aussi détruire les mécanismes de redistribution des revenus (le salaire contre le travail) sur lesquels repose la stabilité sociale et économique actuelle. Les auteurs suggèrent que des mesures comme une taxe sur l&amp;rsquo;IA ou un changement radical de politique fiscale pourraient devenir nécessaires pour éviter ce scénario.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;pour-résumer&#34;&gt;Pour résumer
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;C&amp;rsquo;est une vision dystopique où l&amp;rsquo;IA réussit &amp;ldquo;trop bien&amp;rdquo;, au point de rendre les consommateurs humains superflus dans le système économique, provoquant une récession mondiale par manque de demande.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        </item>
        <item>
        <title>Matt Shumer blog post</title>
        <link>https://blog.thomasplantain.fr/post/big/</link>
        <pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/big/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/cover.jpg" alt="Featured image of post Matt Shumer blog post" /&gt;&lt;h1 id=&#34;matt-shumer&#34;&gt;Matt Shumer
&lt;/h1&gt;&lt;p&gt;&lt;strong&gt;Something Big Is Happening&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A personal note for non-tech friends and family on what AI is starting to change.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Voici un résumé en français de l’article :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;L’auteur compare la situation actuelle de l’IA à celle du début de la pandémie de Covid-19 : la plupart des gens ne réalisent pas encore l’ampleur du bouleversement qui arrive. Travaillant dans l’IA, il explique que les récents progrès sont si rapides et profonds qu’ils transforment déjà son métier : il suffit désormais de décrire ce qu’on veut, et l’IA le réalise, souvent mieux qu’un humain. Les nouveaux modèles, comme GPT-5.3 Codex et Opus 4.6, sont capables de jugements et de créativité, et peuvent même s’auto-améliorer.&lt;/p&gt;
&lt;p&gt;L’auteur insiste sur le fait que ce changement ne concerne pas que la tech : tous les métiers intellectuels sont concernés (droit, finance, médecine, écriture, service client, etc.), et l’impact se fera sentir dans les 1 à 5 ans, voire plus vite. Les IA progressent de façon exponentielle : ce qu’elles ne savent pas faire aujourd’hui, elles le feront bientôt.&lt;/p&gt;
&lt;p&gt;Il met en garde contre l’illusion de sécurité : l’IA n’automatise pas une tâche, mais tout le travail cognitif. Même les métiers qui semblent protégés (jugement, créativité, empathie) commencent à être touchés. Il conseille de s’adapter rapidement : utiliser les meilleurs outils payants (&lt;strong&gt;1&lt;/strong&gt;), expérimenter chaque jour, chercher à automatiser ses tâches, et ne pas sous-estimer la vitesse du changement.&lt;/p&gt;
&lt;p&gt;Il recommande aussi de préparer sa situation financière, de privilégier les compétences difficiles à remplacer (relations humaines, présence physique, responsabilité légale), et d’enseigner à ses enfants (&lt;strong&gt;2&lt;/strong&gt;) la curiosité et l’adaptabilité plutôt que de viser des carrières traditionnelles.&lt;/p&gt;
&lt;p&gt;Enfin, il rappelle que l’IA représente à la fois une opportunité immense (accélération de la recherche, accès à la connaissance, réalisation de projets personnels) et un risque majeur (perte de contrôle, menaces sécuritaires).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Il conclut que ceux qui s’en sortiront le mieux seront ceux qui s’engagent dès maintenant, avec curiosité et urgence, car le futur est déjà là.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://shumer.dev/something-big-is-happening&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://shumer.dev/something-big-is-happening&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;notes&#34;&gt;Notes
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Perso j&amp;rsquo;aime l&amp;rsquo;idée de tester sur des models gratuits avec une solution comme Ollama, tester comparer modifier.&lt;/li&gt;
&lt;li&gt;Ma fille a eu un cours sur le Machine Learning au college, ils apprennent aussi à utiliser les LLM avec des prompts clairs.&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        <item>
        <title>MLOps: Bridging Machine Learning and Operations</title>
        <link>https://blog.thomasplantain.fr/post/mlops/</link>
        <pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/mlops/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/mlops.png" alt="Featured image of post MLOps: Bridging Machine Learning and Operations" /&gt;&lt;h2 id=&#34;what-is-mlops&#34;&gt;What is MLOps?
&lt;/h2&gt;&lt;p&gt;MLOps (Machine Learning Operations) is a set of practices that combines machine learning, DevOps, and data engineering to streamline the development, deployment, and maintenance of machine learning systems in production.&lt;/p&gt;
&lt;p&gt;Think of it as applying software engineering best practices to machine learning workflows—but with additional complexity due to data, model versioning, and continuous retraining requirements.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;the-mlops-landscape&#34;&gt;The MLOps Landscape
&lt;/h2&gt;&lt;h3 id=&#34;core-pillars&#34;&gt;Core Pillars
&lt;/h3&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;┌─────────────────────────────────────────┐
│          ML Model Development           │
│  (Experimentation, Training, Tuning)    │
└────────────────┬────────────────────────┘
                 │
┌────────────────┴────────────────────────┐
│     Model Validation &amp;amp; Testing          │
│  (Metrics, A/B Testing, Performance)    │
└────────────────┬────────────────────────┘
                 │
┌────────────────┴────────────────────────┐
│      Model Deployment &amp;amp; Serving         │
│  (Containerization, APIs, Scaling)      │
└────────────────┬────────────────────────┘
                 │
┌────────────────┴────────────────────────┐
│   Monitoring, Retraining &amp;amp; Governance   │
│  (Data Drift, Performance, Compliance)  │
└─────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id=&#34;key-components&#34;&gt;Key Components
&lt;/h2&gt;&lt;h3 id=&#34;1-data-management&#34;&gt;1. &lt;strong&gt;Data Management&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Data Pipeline&lt;/strong&gt;: Automated extraction, transformation, and loading (ETL)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Versioning&lt;/strong&gt;: Track datasets like code (DVC, Delta Lake)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Quality&lt;/strong&gt;: Validation, schema enforcement, anomaly detection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Feature Store&lt;/strong&gt;: Centralized feature management and serving&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-model-development&#34;&gt;2. &lt;strong&gt;Model Development&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Experimentation Tracking&lt;/strong&gt;: Log hyperparameters, metrics, artifacts (MLflow, Weights &amp;amp; Biases)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model Registry&lt;/strong&gt;: Version control for trained models&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reproducibility&lt;/strong&gt;: Environment specifications, random seeds, documentation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Collaboration&lt;/strong&gt;: Shared resources for data scientists and engineers&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-model-validation&#34;&gt;3. &lt;strong&gt;Model Validation&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Unit Testing&lt;/strong&gt;: Data and model logic validation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integration Testing&lt;/strong&gt;: End-to-end pipeline testing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model Evaluation&lt;/strong&gt;: Performance metrics on holdout sets&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A/B Testing&lt;/strong&gt;: Compare models in production with real user traffic&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fairness &amp;amp; Bias Detection&lt;/strong&gt;: Ensure model equity across demographics&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;4-deployment--serving&#34;&gt;4. &lt;strong&gt;Deployment &amp;amp; Serving&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Containerization&lt;/strong&gt;: Docker for reproducible environments&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Orchestration&lt;/strong&gt;: Kubernetes for managing deployments at scale&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model Serving&lt;/strong&gt;: REST APIs, gRPC, batch inference, real-time serving&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Version Management&lt;/strong&gt;: Blue-green deployments, canary releases, rollback capabilities&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;5-monitoring--governance&#34;&gt;5. &lt;strong&gt;Monitoring &amp;amp; Governance&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Performance Monitoring&lt;/strong&gt;: Track model predictions, latency, throughput&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Drift Detection&lt;/strong&gt;: Alert when input distributions change&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model Decay&lt;/strong&gt;: Monitor accuracy degradation over time&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audit Trails&lt;/strong&gt;: Compliance logging for regulated industries&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cost Optimization&lt;/strong&gt;: Track infrastructure and compute costs&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;mlops-workflow&#34;&gt;MLOps Workflow
&lt;/h2&gt;&lt;h3 id=&#34;from-experimentation-to-production&#34;&gt;From Experimentation to Production
&lt;/h3&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Notebook Experimentation
        ↓
Feature Engineering &amp;amp; Versioning
        ↓
Model Training Pipeline (Automated)
        ↓
Model Validation &amp;amp; Testing
        ↓
Model Registry &amp;amp; Packaging
        ↓
Containerization &amp;amp; Artifact Storage
        ↓
Deployment to Staging Environment
        ↓
A/B Testing &amp;amp; Validation
        ↓
Production Deployment
        ↓
Monitoring &amp;amp; Alerting
        ↓
Retraining Triggers (Data/Model Drift)
        ↓
Loop Back to Training
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id=&#34;popular-mlops-tools&#34;&gt;Popular MLOps Tools
&lt;/h2&gt;&lt;h3 id=&#34;experiment-tracking--model-management&#34;&gt;Experiment Tracking &amp;amp; Model Management
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MLflow&lt;/strong&gt;: Open-source platform for managing ML lifecycle&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Weights &amp;amp; Biases&lt;/strong&gt;: Cloud-based experiment tracking and hyperparameter optimization&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Neptune.ai&lt;/strong&gt;: Lightweight experiment tracking for teams&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;data-management&#34;&gt;Data Management
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DVC&lt;/strong&gt; (Data Version Control): Version control for data and pipelines&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apache Airflow&lt;/strong&gt;: Workflow orchestration and DAG scheduling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prefect&lt;/strong&gt;: Modern data orchestration platform&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delta Lake&lt;/strong&gt;: ACID transactions for data lakes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;model-serving&#34;&gt;Model Serving
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TensorFlow Serving&lt;/strong&gt;: Specialized serving for TensorFlow models&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Seldon Core&lt;/strong&gt;: Open-source model serving platform on Kubernetes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BentoML&lt;/strong&gt;: Framework for packaging and deploying ML models&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ray Serve&lt;/strong&gt;: Distributed model serving framework&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;monitoring--observability&#34;&gt;Monitoring &amp;amp; Observability
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Datadog&lt;/strong&gt;: Infrastructure and APM monitoring&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prometheus + Grafana&lt;/strong&gt;: Metrics collection and visualization&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WhyLabs&lt;/strong&gt;: ML model monitoring and data quality&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Arize&lt;/strong&gt;: ML model monitoring and explainability&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;infrastructure--operations&#34;&gt;Infrastructure &amp;amp; Operations
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kubernetes&lt;/strong&gt;: Container orchestration&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker&lt;/strong&gt;: Containerization&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terraform&lt;/strong&gt;: Infrastructure as Code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jenkins / GitLab CI / GitHub Actions&lt;/strong&gt;: CI/CD pipelines&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;mlops-best-practices&#34;&gt;MLOps Best Practices
&lt;/h2&gt;&lt;h3 id=&#34;development&#34;&gt;Development
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Treat data like code&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Version datasets and transformations&lt;/li&gt;
&lt;li&gt;Automate data pipeline testing&lt;/li&gt;
&lt;li&gt;Document data lineage&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Reproducibility First&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lock dependencies (requirements.txt, environment.yml)&lt;/li&gt;
&lt;li&gt;Document model training steps&lt;/li&gt;
&lt;li&gt;Store random seeds and hyperparameters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Modular Design&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Separate feature engineering from model training&lt;/li&gt;
&lt;li&gt;Use configuration files (YAML, JSON) for hyperparameters&lt;/li&gt;
&lt;li&gt;Build reusable components&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;testing&#34;&gt;Testing
&lt;/h3&gt;&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Comprehensive Testing Strategy&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unit tests for data transformations&lt;/li&gt;
&lt;li&gt;Integration tests for full pipelines&lt;/li&gt;
&lt;li&gt;Model performance tests against baselines&lt;/li&gt;
&lt;li&gt;Test edge cases and adversarial inputs&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automated Validation&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Schema validation for inputs and outputs&lt;/li&gt;
&lt;li&gt;Range checks for features&lt;/li&gt;
&lt;li&gt;Bias and fairness audits&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;deployment&#34;&gt;Deployment
&lt;/h3&gt;&lt;ol start=&#34;6&#34;&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Infrastructure as Code&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Define environments declaratively&lt;/li&gt;
&lt;li&gt;Version control infrastructure changes&lt;/li&gt;
&lt;li&gt;Automate provisioning&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Progressive Rollouts&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start with canary deployments (1-5% traffic)&lt;/li&gt;
&lt;li&gt;Monitor metrics closely during rollout&lt;/li&gt;
&lt;li&gt;Have automated rollback mechanisms&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;monitoring&#34;&gt;Monitoring
&lt;/h3&gt;&lt;ol start=&#34;8&#34;&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Observability&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Log predictions and features&lt;/li&gt;
&lt;li&gt;Monitor model accuracy in real time&lt;/li&gt;
&lt;li&gt;Track data distributions for drift detection&lt;/li&gt;
&lt;li&gt;Set up alerts for anomalies&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Feedback Loops&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Capture true labels as they become available&lt;/li&gt;
&lt;li&gt;Use actuals to retrain models&lt;/li&gt;
&lt;li&gt;Monitor feedback quality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;organization&#34;&gt;Organization
&lt;/h3&gt;&lt;ol start=&#34;10&#34;&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Clear Ownership&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Define roles: data engineer, ML engineer, ML ops engineer&lt;/li&gt;
&lt;li&gt;Establish SLOs (Service Level Objectives) for models&lt;/li&gt;
&lt;li&gt;Document runbooks for common issues&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Governance &amp;amp; Compliance&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Audit trail for model decisions&lt;/li&gt;
&lt;li&gt;Explainability/interpretability requirements&lt;/li&gt;
&lt;li&gt;Data privacy and regulatory compliance&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;real-world-challenges&#34;&gt;Real-World Challenges
&lt;/h2&gt;&lt;h3 id=&#34;technical-challenges&#34;&gt;Technical Challenges
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Data Quality&lt;/strong&gt;: Garbage in, garbage out&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model Complexity&lt;/strong&gt;: Balancing accuracy vs. interpretability vs. latency&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scalability&lt;/strong&gt;: Handling millions of predictions per second&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reproducibility&lt;/strong&gt;: ML experiments are inherently non-deterministic&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;organizational-challenges&#34;&gt;Organizational Challenges
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Silos&lt;/strong&gt;: Data science isolated from engineering&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skills Gap&lt;/strong&gt;: Few engineers understand both ML and infrastructure&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time to Market&lt;/strong&gt;: Experimentation cycles are long&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cost Control&lt;/strong&gt;: Compute resources can quickly become expensive&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;getting-started-with-mlops&#34;&gt;Getting Started with MLOps
&lt;/h2&gt;&lt;h3 id=&#34;level-1-manual-processes&#34;&gt;Level 1: Manual Processes
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Jupyter notebooks for experimentation&lt;/li&gt;
&lt;li&gt;Manual model files and version tracking&lt;/li&gt;
&lt;li&gt;Basic monitoring with logs&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;level-2-automated-pipelines&#34;&gt;Level 2: Automated Pipelines
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Automated training pipelines with cron jobs&lt;/li&gt;
&lt;li&gt;Version control for code and models&lt;/li&gt;
&lt;li&gt;Basic monitoring dashboards&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;level-3-continuous-integration&#34;&gt;Level 3: Continuous Integration
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Automated testing on code changes&lt;/li&gt;
&lt;li&gt;CI/CD pipelines for model training and deployment&lt;/li&gt;
&lt;li&gt;Experiment tracking and model registries&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;level-4-full-mlops-maturity&#34;&gt;Level 4: Full MLOps Maturity
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;End-to-end automation and orchestration&lt;/li&gt;
&lt;li&gt;Advanced monitoring with drift detection&lt;/li&gt;
&lt;li&gt;Automated retraining triggers&lt;/li&gt;
&lt;li&gt;Multi-model experimentation and A/B testing&lt;/li&gt;
&lt;li&gt;Governance and audit trails&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;MLOps is essential for scaling machine learning from experimentation to reliable, production systems. It bridges the gap between data science innovation and operational stability.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Takeaways:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MLOps combines ML, DevOps, and data engineering practices&lt;/li&gt;
&lt;li&gt;Success requires automation at every stage&lt;/li&gt;
&lt;li&gt;Monitoring and feedback loops are critical&lt;/li&gt;
&lt;li&gt;Start simple and mature gradually&lt;/li&gt;
&lt;li&gt;Team collaboration and clear processes matter as much as tools&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal isn&amp;rsquo;t perfect tooling—it&amp;rsquo;s sustainable, scalable ML systems that deliver business value.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>On‑device AI: Bringing Intelligence to the Edge</title>
        <link>https://blog.thomasplantain.fr/post/device/</link>
        <pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/device/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/on_device_llms.avif" alt="Featured image of post On‑device AI: Bringing Intelligence to the Edge" /&gt;&lt;h1 id=&#34;ondevice-ai-bringing-intelligence-to-the-edge&#34;&gt;On‑device AI: Bringing Intelligence to the Edge
&lt;/h1&gt;&lt;p&gt;On‑device AI runs machine learning models directly on user devices—smartphones, wearables, IoT sensors, and edge gateways—rather than relying solely on cloud inference. As hardware accelerators, optimized runtimes, and efficient model techniques have matured, running intelligence locally has become practical and strategic for many products.&lt;/p&gt;
&lt;h2 id=&#34;why-ondevice-ai-matters&#34;&gt;Why on‑device AI matters
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Low latency:&lt;/strong&gt; Local inference removes network round trips, enabling real‑time interactions such as augmented reality, live translation, and immediate camera effects.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Privacy by design:&lt;/strong&gt; When data and inference stay on the device, products can reduce exposure of sensitive information and simplify compliance for biometric and health scenarios.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Offline reliability:&lt;/strong&gt; Local models keep features functional without network connectivity, crucial for remote environments or spotty mobile coverage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lower bandwidth and cost:&lt;/strong&gt; Fewer cloud requests reduce operational expenses and conserve user data usage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Personalization:&lt;/strong&gt; Models can adapt to individual behavior locally, enabling private, personalized experiences with fast feedback loops.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;key-use-cases&#34;&gt;Key use cases
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mobile UX:&lt;/strong&gt; Smart keyboards, smart watch, on‑device speech recognition, camera scene detection, and image enhancement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wearables &amp;amp; healthcare:&lt;/strong&gt; Continuous monitoring, anomaly detection, and on‑device alerts while preserving patient privacy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Industrial IoT:&lt;/strong&gt; Real‑time fault detection and control where latency or connectivity constraints preclude cloud dependence.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AR/VR &amp;amp; robotics:&lt;/strong&gt; Low‑latency perception and control for immersive and safety‑critical systems.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Smart home:&lt;/strong&gt; Local automation and voice understanding without mandatory cloud access.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;technical-enablers&#34;&gt;Technical enablers
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Model compression:&lt;/strong&gt; Techniques such as quantization, pruning, and weight sharing reduce size and compute cost.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Knowledge distillation:&lt;/strong&gt; Large teacher models transfer knowledge to smaller student models optimized for edge devices.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Efficient architectures:&lt;/strong&gt; Mobile‑first networks (e.g., MobileNet, EfficientNet‑lite) and edge‑tuned transformers trade parameters for latency.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Edge runtimes:&lt;/strong&gt; TensorFlow Lite, Core ML, ONNX Runtime Mobile, and TVM provide graph optimizations, operator fusion, and hardware backends.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hardware accelerators:&lt;/strong&gt; NPUs, DSPs, and embedded GPUs dramatically reduce energy per inference on modern SoCs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TinyML:&lt;/strong&gt; Ultra‑low‑power inference on microcontrollers enables sensor‑triggered intelligence in constrained environments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Federated learning &amp;amp; split inference:&lt;/strong&gt; Decentralized training and hybrid pipelines keep raw data local while allowing global model improvements.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;challenges-and-tradeoffs&#34;&gt;Challenges and tradeoffs
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Accuracy vs. size:&lt;/strong&gt; Compressing models can reduce accuracy; balancing task needs with resource budgets is essential.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Energy &amp;amp; thermal limits:&lt;/strong&gt; Continuous or heavy inference affects battery and device temperature; use duty‑cycling and event‑driven inference.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security:&lt;/strong&gt; Protect models from tampering and extraction—use signed updates and secure enclaves where possible.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lifecycle management:&lt;/strong&gt; Updating models across a fragmented device fleet needs robust versioning and rollout strategies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Device heterogeneity:&lt;/strong&gt; Diverse hardware and OS capabilities expand testing surface and complicate optimizations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;organizational-considerations&#34;&gt;Organizational considerations
&lt;/h2&gt;&lt;p&gt;Delivering on‑device features requires cross‑functional collaboration: ML engineers, embedded/firmware teams, product managers, and security/compliance stakeholders. Expect higher engineering effort up front and potentially lower ongoing cloud costs. Bring legal teams into the loop for regulated domains such as healthcare and finance.&lt;/p&gt;
&lt;h2 id=&#34;future-outlook&#34;&gt;Future outlook
&lt;/h2&gt;&lt;p&gt;Hardware will continue to improve (wider NPU availability and greater on‑chip memory), and software tooling will keep pushing capabilities to the edge. Advances in continual on‑device learning, better federated methods, and tighter hardware/software co‑design will expand the complexity of tasks that can run locally. The most likely future is hybrid: heavy training and model orchestration in the cloud, with fast, private, personalized inference on device.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;On‑device AI reshapes product design beyond a technical optimization: it influences user experience, privacy posture, and operational cost. When implemented thoughtfully—balancing accuracy, latency, energy, and security—it unlocks resilient, private, and immediate experiences that were previously impractical.&lt;/p&gt;
&lt;h2 id=&#34;pros-vs-cons&#34;&gt;Pros vs Cons
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Pros&lt;/th&gt;
          &lt;th&gt;Cons&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Low latency — enables real‑time UX&lt;/td&gt;
          &lt;td&gt;Limited model capacity compared to cloud-scale models&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Privacy by design — sensitive data stays local&lt;/td&gt;
          &lt;td&gt;Higher device engineering and testing effort&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Offline reliability&lt;/td&gt;
          &lt;td&gt;Battery and thermal constraints for sustained inference&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Lower bandwidth and operational cost&lt;/td&gt;
          &lt;td&gt;Fragmentation across hardware and OS increases optimization complexity&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Personalized, private experiences&lt;/td&gt;
          &lt;td&gt;Secure model updates and lifecycle management add operational overhead&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;links&#34;&gt;Links
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://v-chandra.github.io/on-device-llms/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://v-chandra.github.io/on-device-llms/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.liquid.ai/blog/introducing-lfm2-5-the-next-generation-of-on-device-ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.liquid.ai/blog/introducing-lfm2-5-the-next-generation-of-on-device-ai&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.raspberrypi.com/news/introducing-the-raspberry-pi-ai-hat-plus-2-generative-ai-on-raspberry-pi-5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.raspberrypi.com/news/introducing-the-raspberry-pi-ai-hat-plus-2-generative-ai-on-raspberry-pi-5/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.lemondeinformatique.fr/publi_info/lire-ia-embarquee-un-choix-uniquement-technologique-1355.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.lemondeinformatique.fr/publi_info/lire-ia-embarquee-un-choix-uniquement-technologique-1355.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>L&#39;IA générative face aux attaques informatiques</title>
        <link>https://blog.thomasplantain.fr/post/anssi/</link>
        <pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/anssi/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/security_small.png" alt="Featured image of post L&#39;IA générative face aux attaques informatiques" /&gt;&lt;blockquote&gt;
&lt;p&gt;Résumé du document ANSSI - L&amp;rsquo;IA générative face aux attaques informatiques (2025)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;vue-densemble&#34;&gt;Vue d&amp;rsquo;ensemble
&lt;/h2&gt;&lt;p&gt;Ce rapport de l&amp;rsquo;ANSSI (février 2026) analyse la menace que représente l&amp;rsquo;IA générative dans le domaine de la cybersécurité et les menaces qui pèsent sur ces systèmes.&lt;/p&gt;
&lt;h2 id=&#34;points-clés&#34;&gt;Points clés
&lt;/h2&gt;&lt;h3 id=&#34;1-utilisation-de-lia-par-les-attaquants&#34;&gt;1. Utilisation de l&amp;rsquo;IA par les attaquants
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Usages constatés :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ingénierie sociale&lt;/strong&gt; : création de contenus d&amp;rsquo;hameçonnage, faux profils, sites web frauduleux, deepfakes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Développement de malwares&lt;/strong&gt; : scripts malveillants générés par LLM, codes polymorphiques (PromptLock, Promptflux)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analyse de données&lt;/strong&gt; : traitement massif de données exfiltrées pour identifier les informations d&amp;rsquo;intérêt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Profils d&amp;rsquo;attaquants identifiés :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MOA liés à l&amp;rsquo;Iran, Chine (Charcoal Typhoon), Corée du Nord (Lazarus), Russie&lt;/li&gt;
&lt;li&gt;Utilisation de Gemini (Google) par au moins 42 groupes d&amp;rsquo;attaquants entre 2023-2024&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Limitations actuelles :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aucune vulnérabilité jour-zéro découverte par IA à ce jour&lt;/li&gt;
&lt;li&gt;Pas de chaîne d&amp;rsquo;attaque entièrement automatisée observée&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-détournement-des-ia-génératives&#34;&gt;2. Détournement des IA génératives
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Techniques de jailbreak&lt;/strong&gt; : contournement des garde-fous via ingénierie de prompts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Services malveillants&lt;/strong&gt; : WormGPT, FraudGPT, EvilGPT vendus ~100$/mois sur forums cybercriminels&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Services de jailbreak&lt;/strong&gt; : EscapeGPT, LoopGPT proposés comme services&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-menaces-ciblant-les-systèmes-dia&#34;&gt;3. Menaces ciblant les systèmes d&amp;rsquo;IA
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Vecteurs d&amp;rsquo;attaque potentiels :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Empoisonnement des modèles&lt;/strong&gt; : injection de données corrompues (possible avec seulement 250 documents malveillants)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compromission de la chaîne d&amp;rsquo;approvisionnement&lt;/strong&gt; : modèles malveillants sur Hugging Face, exploitation des serveurs MCP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Slopsquatting&lt;/strong&gt; : exploitation des hallucinations d&amp;rsquo;IA pour diffuser des paquets malveillants&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fuites de données&lt;/strong&gt; : +100 000 comptes ChatGPT compromis en 2022-2023&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;conclusion-anssi&#34;&gt;Conclusion ANSSI
&lt;/h2&gt;&lt;p&gt;L&amp;rsquo;IA générative devient un outil courant pour les attaquants de tous niveaux, permettant des attaques à plus grande échelle et plus rapides. Bien qu&amp;rsquo;aucune attaque totalement autonome n&amp;rsquo;ait été observée, l&amp;rsquo;évolution rapide nécessite une réévaluation régulière de la menace.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>The Adolescence of Technology</title>
        <link>https://blog.thomasplantain.fr/post/amodei/</link>
        <pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/amodei/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/cover.jpg" alt="Featured image of post The Adolescence of Technology" /&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.darioamodei.com/essay/the-adolescence-of-technology&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.darioamodei.com/essay/the-adolescence-of-technology&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;résumé-en-français-de-lessai-de-dario-amodei&#34;&gt;Résumé en Français de l&amp;rsquo;essai de Dario Amodei
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Cet essai examine les risques existentiels posés par les systèmes d&amp;rsquo;IA puissants, que Amodei définit comme une IA plus intelligente que les lauréats du prix Nobel dans la plupart des domaines, capable d&amp;rsquo;action autonome et évolutive jusqu&amp;rsquo;à des millions d&amp;rsquo;instances. Il soutient que l&amp;rsquo;humanité entre dans une &amp;ldquo;adolescence technologique&amp;rdquo; critique qui mettra à l&amp;rsquo;épreuve notre survie.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;cinq-catégories-principales-de-risques&#34;&gt;Cinq catégories principales de risques
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Risques d&amp;rsquo;autonomie&lt;/strong&gt; - Les systèmes d&amp;rsquo;IA peuvent développer des objectifs désalignés à travers des processus d&amp;rsquo;entraînement imprévisibles, cherchant potentiellement le pouvoir ou agissant de manière destructrice en raison d&amp;rsquo;états psychologiques étranges plutôt que de suivre les valeurs humaines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Utilisation abusive pour la destruction&lt;/strong&gt; - L&amp;rsquo;IA puissante pourrait permettre aux individus de créer des armes biologiques ou autres armes de destruction massive, brisant la corrélation entre capacité et motivation en donnant aux &amp;ldquo;solitaires perturbés&amp;rdquo; des capacités de niveau doctorat.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Utilisation abusive pour s&amp;rsquo;emparer du pouvoir&lt;/strong&gt; - Les régimes autoritaires pourraient utiliser l&amp;rsquo;IA pour une surveillance totale, des armes autonomes et une domination mondiale, créant potentiellement un système totalitaire imbattable.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Perturbation économique&lt;/strong&gt; - L&amp;rsquo;avancement rapide de l&amp;rsquo;IA peut causer un chômage de masse et une concentration extrême de richesse.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Effets indirects&lt;/strong&gt; - Les changements technologiques rapides pourraient déstabiliser la société de manières imprévisibles.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;défenses-proposées&#34;&gt;Défenses proposées
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Entraînement constitutionnel de l&amp;rsquo;IA pour inculquer des valeurs et un caractère robustes&lt;/li&gt;
&lt;li&gt;Interprétabilité mécaniste pour diagnostiquer le comportement des modèles&lt;/li&gt;
&lt;li&gt;Transparence et surveillance des systèmes d&amp;rsquo;IA&lt;/li&gt;
&lt;li&gt;Coordination industrielle et réglementation gouvernementale (en commençant par les lois sur la transparence)&lt;/li&gt;
&lt;li&gt;Garde-fous contre les armes biologiques et classificateurs&lt;/li&gt;
&lt;li&gt;Coopération internationale sur les menaces existentielles&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Amodei souligne l&amp;rsquo;importance d&amp;rsquo;éviter le &amp;ldquo;catastrophisme&amp;rdquo; tout en prenant les risques au sérieux, en mettant en œuvre des interventions chirurgicales et en maintenant l&amp;rsquo;espoir que l&amp;rsquo;humanité peut prévaloir grâce à une planification minutieuse et une action décisive.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        </item>
        <item>
        <title>Personal Coding Agent</title>
        <link>https://blog.thomasplantain.fr/post/agent/</link>
        <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/agent/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/hal/hal12.png" alt="Featured image of post Personal Coding Agent" /&gt;&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/hal/logo.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;HAL9000 tui&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;hal9000&#34;&gt;HAL9000
&lt;/h2&gt;&lt;h3 id=&#34;introduction&#34;&gt;Introduction
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;HAL9000 is a personal coding agent. It is a powerful tool that can help you write code faster and more efficiently.&lt;/p&gt;
&lt;p&gt;HAL9000 is written in Go and is designed to be easy to use and understand.&lt;/p&gt;
&lt;p&gt;It uses Ollama, an open-source project that provides a simple API for advanced language models.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;features&#34;&gt;Features
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;TUI with lipgloss&lt;/li&gt;
&lt;li&gt;Ollama API integration for advanced language models (Qwen3)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/hal/hal12.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;HAL9000 tui&#34;
	
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;tools&#34;&gt;Tools
&lt;/h4&gt;&lt;blockquote&gt;
&lt;p&gt;My coding agent should be able to create files, directories, and execute commands.&lt;/p&gt;
&lt;p&gt;I started with &lt;strong&gt;create_file&lt;/strong&gt; tool. I tested with &lt;strong&gt;Bruno&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/hal/ollama-qwen-tools.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;HAL9000 tools&#34;
	
	
&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Kokoro TTS</title>
        <link>https://blog.thomasplantain.fr/post/kokoro/</link>
        <pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/kokoro/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/cover.jpg" alt="Featured image of post Kokoro TTS" /&gt;&lt;h2 id=&#34;text-to-speech&#34;&gt;Text To Speech
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Technology that enables text to be converted into speech sounds imitative of the human voice.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;run-locally&#34;&gt;Run locally
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/remsky/Kokoro-FastAPI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/remsky/Kokoro-FastAPI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And you can play with web ui:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;http://localhost:8880/web&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/kokoro/kokoro-webui.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Kokoro web ui&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;n8n-workflow-with-kokoro&#34;&gt;n8n workflow with Kokoro
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;I want to hear Qwen answer &amp;#x1f60a;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;First I tested kokoro API with Bruno.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/kokoro/bruno-kokoro.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;RBruno&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;And then I added it to a new n8n workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/kokoro/n8n-kokoro.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Kokoro API call&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;I had to remove all special characters.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/kokoro/kokoro-api-call.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Kokoro API call&#34;
	
	
&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>RAG n8n</title>
        <link>https://blog.thomasplantain.fr/post/n8n/</link>
        <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/n8n/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/rag_library.avif" alt="Featured image of post RAG n8n" /&gt;&lt;h2 id=&#34;rag-with-n8n&#34;&gt;RAG with n8n
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#rag-with-n8n&#34; &gt;RAG with n8n&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#overview&#34; &gt;Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#before-you-start&#34; &gt;Before you start&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#whats-rag&#34; &gt;What&amp;rsquo;s RAG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#whats-you-need&#34; &gt;What&amp;rsquo;s you need&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#installation&#34; &gt;Installation&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#n8n&#34; &gt;n8n&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#qdrant&#34; &gt;Qdrant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#ollama&#34; &gt;Ollama&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#rag-workflow&#34; &gt;RAG Workflow&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#data-ingestion&#34; &gt;Data ingestion&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#qdrant-collections&#34; &gt;Qdrant collections&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#chatbot&#34; &gt;Chatbot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#see-also&#34; &gt;See also&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#sml-small-language-model&#34; &gt;SML (Small Language Model)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#links&#34; &gt;Links&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview
&lt;/h2&gt;&lt;p&gt;This guide explains how to implement a RAG (Retrieval Augmented Generation) on your laptop.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Embedded AI&lt;/li&gt;
&lt;li&gt;Data sovereignty&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;before-you-start&#34;&gt;Before you start
&lt;/h2&gt;&lt;h3 id=&#34;whats-rag&#34;&gt;What&amp;rsquo;s RAG
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;RAG (retrieval augmented generation) is a technology that improves the responses of generative AI models by feeding them with knowledge from internal databases.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/RAG.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;nvidia RAG&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;whats-you-need&#34;&gt;What&amp;rsquo;s you need
&lt;/h3&gt;&lt;p&gt;Before you put the RAG in place, ensure you already have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;li&gt;md files&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation
&lt;/h2&gt;&lt;h3 id=&#34;n8n&#34;&gt;n8n
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;n8n is a workflow automation platform that gives technical teams the flexibility of code with the speed of no-code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Run locally&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker volume create n8n_data
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Go to the web &lt;a class=&#34;link&#34; href=&#34;http://localhost:5678/home/workflows&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;n8n Dashboard&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/n8n-portal.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;RAG perso&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;qdrant&#34;&gt;Qdrant
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Qdrant (read: quadrant) is a vector similarity search engine and vector database. It provides a production-ready service with a convenient API to store, search, and manage points—vectors with an additional payload Qdrant is tailored to extended filtering support.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Run localy&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker volume create qdrant_data
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker run -p 6333:6333 -v qdrant_data:/qdrant/storage qdrant/qdrant
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;http://localhost:6333/dashboard&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;qdrant Dashboard&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;ollama&#34;&gt;Ollama
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Ollama is the easiest way to get up and running with large language models such as gpt-oss, Gemma 3, DeepSeek-R1, Qwen3 and more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/ollama-chat.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;RAG perso&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;rag-workflow&#34;&gt;RAG Workflow
&lt;/h2&gt;&lt;p&gt;The RAG is composed in 2 workflows.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/n8n-RAG-Qdrant.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;RAG perso&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;data-ingestion&#34;&gt;Data ingestion
&lt;/h3&gt;&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/rag-data.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;RAG perso&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;It starts with the file submission trigger, to upload CVs (in markdown format).&lt;/p&gt;
&lt;p&gt;We add Qdrant connector to store the files in the vector database. We need an embed model to split the files into vectors.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/qdrant-config.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Qdrant connector&#34;
	
	
&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Emebed model: mxbai-embed-large&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/qdrant-embed.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Qdrant embedding&#34;
	
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;qdrant-collections&#34;&gt;Qdrant collections
&lt;/h4&gt;&lt;p&gt;When the Data Ingestion workflow is executed, you can go to Qdrant dashboard to see the collections.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/qdrant-collection.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Qdrant embedding&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;chatbot&#34;&gt;Chatbot
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Now the CVs are in the Qdrant vector database, we can chat to request some informations about the candidate.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/rag-chatbot.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;RAG perso&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;We start with the Chat trigger connected to an AI agent, with Qwen3 model.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/agent-qwen.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Qwen3&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;We create the tool to be able to search in our Qdrant collection and we had a simple prompt.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/hr-prompt.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;HR prompt&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&amp;#x1f525; And finaly we test our chat by asking informations about a candidate.
We can see that the agent called qdrant to retrieve the data and generate a nice answer.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.thomasplantain.fr/img/n8n/chat-exec.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;chat&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;see-also&#34;&gt;See also
&lt;/h2&gt;&lt;h3 id=&#34;sml-small-language-model&#34;&gt;SML (Small Language Model)
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Small language models, on the other hand, use far fewer parameters, typically ranging from a few thousand to a few hundred million. This make them more feasible to train and host in resource-constrained environments such as a single computer or even a mobile device.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://v-chandra.github.io/on-device-llms/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://v-chandra.github.io/on-device-llms/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;links&#34;&gt;Links
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/n8n-io/n8n&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;n8n link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/qdrant/qdrant&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qdrant link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/ollama/ollama&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Ollama link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Thomas</title>
        <link>https://blog.thomasplantain.fr/post/first/</link>
        <pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/post/first/</guid>
        <description>&lt;img src="https://blog.thomasplantain.fr/img/cover.jpg" alt="Featured image of post Thomas" /&gt;&lt;h2 id=&#34;edenred--architecte-api&#34;&gt;Edenred : Architecte API
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Sep 2021 - Présent
Paris, France&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Pilote l&amp;rsquo;architecture API pour EDG et plusieurs domaines du groupe, avec un focus sur la standardisation REST, la maintenabilité et la scalabilite.&lt;/li&gt;
&lt;li&gt;Defini et fait appliquer les standards de gouvernance API (design guidelines, versioning, quality gates), avec validation automatique des contrats via Spectral avant publication au catalogue EDG.&lt;/li&gt;
&lt;li&gt;Industrialise le cycle de vie API avec Azure DevOps et SonarQube pour renforcer la qualite, reduire les regressions et accelerer les mises en production.&lt;/li&gt;
&lt;li&gt;Contribue a la migration CloudHub vers AKS/RTF en securisant la trajectoire technique et l&amp;rsquo;operabilite des services exposes.&lt;/li&gt;
&lt;li&gt;Structure l&amp;rsquo;observabilite API/applicative via l&amp;rsquo;export des logs dans un data hub pour alimenter dashboards KPI, suivi de la fiabilite et pilotage de la performance.&lt;/li&gt;
&lt;li&gt;Anime une communaute de pratiques avec les Tech Leads EDG pour aligner les choix d&amp;rsquo;architecture, diffuser les bonnes pratiques et harmoniser les approches transverses.&lt;/li&gt;
&lt;li&gt;Evalue les API gateways du marche pour definir les options cibles cloud en tenant compte des exigences de securite, de gouvernance et de cout d&amp;rsquo;exploitation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Environnement: API Governance, REST, OpenAPI, Spectral, Azure DevOps, SonarQube, AKS, RTF, observabilite/KPI, API Gateway.&lt;/p&gt;
&lt;h2 id=&#34;astrakhan--manager-de-léquipe-apisoa&#34;&gt;Astrakhan : Manager de l&amp;rsquo;équipe API/SOA
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;2019 - 2021 : 2 ans
Paris, France&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Manage une equipe API/SOA et accompagne des programmes de transformation integration/API dans des contextes grands comptes.&lt;/li&gt;
&lt;li&gt;Realise un audit API Management chez Generali avec recommandations sur la gouvernance, l&amp;rsquo;outillage et le modele operatoire.&lt;/li&gt;
&lt;li&gt;Accompagne la mise en place de la gouvernance WSO2 API Manager chez CA&amp;amp;LF (standards, processus, roles, controles qualite).&lt;/li&gt;
&lt;li&gt;Intervient chez Danone sur des flux d&amp;rsquo;integration critiques sous IBM IIB v9 et ACE v11, avec un objectif de fiabilite et de continuite de service.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Environnement: API Management, WSO2, IBM IIB/ACE, gouvernance API, integration d&amp;rsquo;entreprise.&lt;/p&gt;
&lt;h2 id=&#34;axway--conseiller-api-manager&#34;&gt;Axway : Conseiller API Manager
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;2018 - 2019 : 9 mois
Paris, France&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Conseille les equipes sur le cadrage, la mise en oeuvre et l&amp;rsquo;industrialisation d&amp;rsquo;Axway API Manager.&lt;/li&gt;
&lt;li&gt;Contribue a la definition des patterns d&amp;rsquo;exposition API et a l&amp;rsquo;adoption des bonnes pratiques de securite et de gouvernance.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Environnement: Axway API Manager, API lifecycle, gouvernance, securite API.&lt;/p&gt;
&lt;h2 id=&#34;national-bank-of-canada&#34;&gt;National Bank of Canada
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;2012 - 2018 : 6 ans
Montreal, Canada&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Conseiller senior SOA / Integration dans un environnement bancaire fortement reglemente.&lt;/li&gt;
&lt;li&gt;Coordonne la livraison SOA du programme IFRS9 (release janvier 2018), en alignant les equipes demande, architecture et delivery.&lt;/li&gt;
&lt;li&gt;Team Lead et Scrum Master de l&amp;rsquo;equipe de developpement SOA, avec pilotage de la capacite, de la qualite de livraison et de la priorisation.&lt;/li&gt;
&lt;li&gt;Met en place une chaine CI/CD (Jenkins, Maven, SoapUI, RTC) pour fiabiliser les deploiements et standardiser les controles qualite.&lt;/li&gt;
&lt;li&gt;Pilote la migration vers IBM DataPower Gateway et renforce la gouvernance de l&amp;rsquo;equipe de developpement (incluant partenaires externes).&lt;/li&gt;
&lt;li&gt;Concoit et fait evoluer des services SOA critiques pour des parcours bancaires majeurs (origination hypothecaire, teller, CRM), avec support operationnel des services partages TI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Environnement: Banque/Finance, IFRS9, SOA, IBM DataPower, WESB, WPS, Jenkins, Maven, SoapUI, RTC.&lt;/p&gt;
&lt;h2 id=&#34;cn-it-consultant&#34;&gt;CN: IT consultant
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;2005 - 2011 : 6 ans
Montreal, Canada&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Developpe plusieurs applications web critiques pour les clients CN (reservation containers/wagons, portail client).&lt;/li&gt;
&lt;li&gt;Concoit un service de traitement des preuves de livraison (XML, MDB, MQ, DB2) et une fonctionnalite d&amp;rsquo;export PDF (iText), avec integration aux systemes metiers existants.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Environnement: Java, GWT, XML, MQ, MDB, DB2, iText.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Archives</title>
        <link>https://blog.thomasplantain.fr/page/archives/</link>
        <pubDate>Sun, 06 Mar 2022 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/page/archives/</guid>
        <description></description>
        </item>
        <item>
        <title>Thomas</title>
        <link>https://blog.thomasplantain.fr/page/about/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.thomasplantain.fr/page/about/</guid>
        <description>&lt;h2 id=&#34;contact&#34;&gt;Contact
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;mailto:thomas.plantain@gmail.com&#34; &gt;thomas.plantain@gmail.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.linkedin.com/in/thomasplantain/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.linkedin.com/in/thomasplantain/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;résumé&#34;&gt;Résumé
&lt;/h2&gt;&lt;p&gt;Architecte API expérimenté avec &lt;strong&gt;plus de 20 ans d&amp;rsquo;expertise&lt;/strong&gt; en intégration et gestion des APIs, en France et au Canada. Spécialisé dans la conception d&amp;rsquo;architectures d&amp;rsquo;intégration scalables, la gouvernance des API et la transformation numérique. Passionné par l&amp;rsquo;innovation technologique et les meilleures pratiques de développement logiciel.&lt;/p&gt;
&lt;h2 id=&#34;langues&#34;&gt;Langues
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Français&lt;/strong&gt; - Courant&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anglais&lt;/strong&gt; - Courant&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;loisirs&#34;&gt;Loisirs
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Running (Marathon)&lt;/li&gt;
&lt;li&gt;Guitare&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
