<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Formation LangChain France]]></title><description><![CDATA[Apprenez à maîtriser LangChain, le framework Python et JavaScript pour l'IA agentique. Une formation gratuite, étape par étape, qui vous donnera une vision saine et sereine de l'IA.
Par Eric Burel, ingénieur Ensimag et formateur en IA agentique chez LBKE.]]></description><link>https://www.formationlangchain.fr</link><image><url>https://substackcdn.com/image/fetch/$s_!gokA!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb524f09b-00c3-4486-8ffe-1a223fe9ed68_1024x1024.png</url><title>Formation LangChain France</title><link>https://www.formationlangchain.fr</link></image><generator>Substack</generator><lastBuildDate>Thu, 16 Apr 2026 01:55:45 GMT</lastBuildDate><atom:link href="https://www.formationlangchain.fr/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Eric Burel - LBKE]]></copyright><language><![CDATA[fr]]></language><webMaster><![CDATA[contact@formationlangchain.fr]]></webMaster><itunes:owner><itunes:email><![CDATA[contact@formationlangchain.fr]]></itunes:email><itunes:name><![CDATA[Eric Burel]]></itunes:name></itunes:owner><itunes:author><![CDATA[Eric Burel]]></itunes:author><googleplay:owner><![CDATA[contact@formationlangchain.fr]]></googleplay:owner><googleplay:email><![CDATA[contact@formationlangchain.fr]]></googleplay:email><googleplay:author><![CDATA[Eric Burel]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Prompt engineering avec LangChain Python et JavaScript]]></title><description><![CDATA[Cr&#233;ez et ex&#233;cutez des prompts avanc&#233;s avec la librairie langchain-core - tutoriel LangChain complet en Python et en JavaScript]]></description><link>https://www.formationlangchain.fr/p/prompt-engineering-avec-langchain</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/prompt-engineering-avec-langchain</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Tue, 31 Mar 2026 12:03:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Xlyi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>L&#8217;IA g&#233;n&#233;rative rend les programmes informatiques capables de discuter exactement comme un humain. C&#8217;est fascinant, mais ce n&#8217;est en fait que la pointe de l&#8217;iceberg. </p><p>Quand on &#233;crit un prompt, ce n&#8217;est pas juste un message &#224; destination de l&#8217;IA que l&#8217;on cr&#233;e, <strong>c&#8217;est un v&#233;ritable nouveau mod&#232;le d&#8217;IA. </strong></p><p>Par exemple, si je dis &#224; Mistral : &#8220;j&#8217;ai re&#231;u le message suivant, est-ce un spam?&#8221;, j&#8217;ai cr&#233;&#233; en une ligne de texte ce que l&#8217;on appelle en machine learning un &#8220;classificateur binaire non supervis&#233;&#8221;. Impressionnant !</p><p><strong>Le prompt est donc un v&#233;ritable langage de programmation pour contr&#244;ler des LLM et cr&#233;er des mini-syst&#232;mes d&#8217;IA, sans donn&#233;es et en quelques minutes de travail.</strong> </p><p>Cette approche est un pilier fondamental de l&#8217;IA agentique, c&#8217;est-&#224;-dire la rencontre entre le code et l&#8217;IA g&#233;n&#233;rative.</p><p>D&#233;couvrons comment cr&#233;er des prompts r&#233;utilisables avec LangChain.</p><h2>L&#8217;astuce du jour : prompt playground</h2><p>LangSmith est la partie commerciale de l&#8217;&#233;cosyst&#232;me LangChain / LangGraph. La plateforme LangSmith permet d&#8217;h&#233;berger des agents, d&#8217;&#233;valuer leur bon fonctionnement, voire de cr&#233;er des agents en no-code avec le nouveau syst&#232;me <a href="https://www.langchain.com/langsmith/agent-builder">Fleet (ex Agent Builder)</a>.</p><p>Une fonctionnalit&#233; parfois sous-estim&#233;e est la <strong>&#8220;prompt playground&#8221;</strong> : en quelques clics, vous pouvez tester des prompts complexes sur tout un jeu de donn&#233;es, comparer plusieurs mod&#232;les, mesurer les r&#233;sultats avec pr&#233;cision, et m&#234;me partager vos prompts &#224; plus grande &#233;chelle dans le cadre d&#8217;un travail d&#8217;&#233;quipe.</p><p><strong>Vous pr&#233;f&#233;rez une alternative open source ?</strong> <a href="https://langfuse.com/?tab=playground">Le projet langfuse</a> (qui n&#8217;est PAS rattach&#233; &#224; LangChain, malgr&#233; son nom) propose exactement la m&#234;me fonctionnalit&#233;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Xlyi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xlyi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png 424w, https://substackcdn.com/image/fetch/$s_!Xlyi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png 848w, https://substackcdn.com/image/fetch/$s_!Xlyi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png 1272w, https://substackcdn.com/image/fetch/$s_!Xlyi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xlyi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png" width="1456" height="744" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:744,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Langfuse playground interface for testing prompts and models&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Langfuse playground interface for testing prompts and models" title="Langfuse playground interface for testing prompts and models" srcset="https://substackcdn.com/image/fetch/$s_!Xlyi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png 424w, https://substackcdn.com/image/fetch/$s_!Xlyi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png 848w, https://substackcdn.com/image/fetch/$s_!Xlyi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png 1272w, https://substackcdn.com/image/fetch/$s_!Xlyi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28498182-d37f-45b5-be48-9d13bb456a61_3564x1822.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Le playground open source langfuse pour l&#8217;ing&#233;nierie de prompt <a href="https://langfuse.com/">(cr&#233;dit : site officiel de langfuse)</a></figcaption></figure></div><h2>Le cas d&#8217;usage : reprompting</h2><p>Vous mangez des prompts matin, midi et soir ? Reprenez-en encore une cuiller&#233;e : utilisez l&#8217;IA pour cr&#233;er des prompts qui am&#233;liorent vos prompts, et exp&#233;rimentez-les dans le playground langfuse ou LangSmith.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.formationlangchain.fr/subscribe?&quot;,&quot;text&quot;:&quot;S'abonner&quot;,&quot;language&quot;:&quot;fr&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Merci d'avoir lu Formation LangChain France ! Abonnez-vous gratuitement pour recevoir de nouveaux posts et soutenir mon travail.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Tapez votre e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="S'abonner"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#192; vos claviers : Cr&#233;ez un premier template de prompt</h2><h3>&#128013; Team Python</h3><p><a href="https://www.formationlangchain.fr/p/comment-configurer-langchain-en-local-python-et-javascript">Dans le num&#233;ro pr&#233;c&#233;dent de la newsletter Formation LangChain France</a>, nous avons install&#233; uv, qui vient d&#8217;ailleurs de se faire <a href="https://openai.com/index/openai-to-acquire-astral/">racheter par OpenAI</a>. Le monde de l&#8217;IA est tr&#232;s petit !</p><p>Si vous avez n&#233;anmoins choisi de continuer &#224; utiliser des notebooks, sur Google Colab ou en local, commen&#231;ons par une astuce : vous pouvez afficher proprement du Markdown <a href="https://ipython.readthedocs.io/en/stable/api/generated/IPython.display.html">via le module display de IPython</a>.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;f9b0116d-2dcc-4eca-a480-5605def90e88&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from IPython.display import Markdown; 
Markdown(prompt)</code></pre></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!frDC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!frDC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png 424w, https://substackcdn.com/image/fetch/$s_!frDC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png 848w, https://substackcdn.com/image/fetch/$s_!frDC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png 1272w, https://substackcdn.com/image/fetch/$s_!frDC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!frDC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png" width="857" height="326" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:326,&quot;width&quot;:857,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:57528,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.formationlangchain.fr/i/189857276?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!frDC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png 424w, https://substackcdn.com/image/fetch/$s_!frDC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png 848w, https://substackcdn.com/image/fetch/$s_!frDC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png 1272w, https://substackcdn.com/image/fetch/$s_!frDC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c2ea830-afc6-4b3d-a142-a826254a0303_857x326.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">R&#233;sultat obtenu avec l&#8217;affichage Markdown dans Google Colab</figcaption></figure></div><p>Rappelons qu&#8217;un prompt est avant tout une cha&#238;ne de caract&#232;res. Comme ils sont un peu longs, on privil&#233;gie en g&#233;n&#233;ral la syntaxe multi-lignes : </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">"""
Tu es un robot tueur.
Utilise LangChain pour cr&#233;er un agent IA qui va d&#233;truire le monde.
"""</code></pre></div><p>Tr&#232;s rapidement, vous allez vous poser la question suivante : <strong>comment injecter une variable dans un prompt ?</strong> </p><p>Il ne s&#8217;agit pas seulement de cr&#233;er un template de prompt r&#233;utilisable : l&#8217;injection de variable dans un prompt joue aussi un r&#244;le important dans la synth&#232;se des conversations longues et le pattern <a href="https://docs.langchain.com/oss/python/migrate/langchain-v1#dynamic-prompts">&#8220;dynamic prompt&#8221;</a> pour la boucle agentique.</p><ul><li><p>La syntaxe la plus courante est le &#8220;f-string&#8221; (cha&#238;ne de caract&#232;res format&#233;e) : <code>f"L&#8217;utilisateur s&#8217;appelle {prenom}"</code></p></li><li><p>La fonction &#8220;str.format&#8221;, plus ancienne, permet de passer la variable a posteriori : <code>"L&#8217;utilisateur s&#8217;appelle {prenom}".format(prenom="Eric")</code></p></li><li><p>Python 3.14 introduit les &#8220;t-strings&#8221; (t pour template), similaire au f-string mais qui renvoie <a href="https://docs.python.org/3/library/string.templatelib.html">un objet &#8220;Template&#8221;</a> plus &#233;labor&#233;. <strong>Attention, LangChain ne supporte pas Python 3.14 au moment o&#249; j&#8217;&#233;cris ces lignes (mars 2026).</strong></p></li><li><p>Le <a href="https://reference.langchain.com/python/langchain-core/prompts/chat/ChatPromptTemplate">&#8220;ChatPromptTemplate&#8221;</a> de langchain-core permet de g&#233;rer des templates de conversation, mais je ne le recommande plus aujourd&#8217;hui : Python fournit d&#233;j&#224; assez d&#8217;outils, et le few-shot learning via une conversation (avec un prompt constitu&#233; de plusieurs messages) fonctionne moins bien avec les mod&#232;les r&#233;cents (on privil&#233;gie plut&#244;t un prompt syst&#232;me bien con&#231;u).</p></li><li><p><a href="https://mustache.github.io/">La syntaxe Mustache</a> est aussi populaire, son avantage est de ne pas &#234;tre sp&#233;cifique &#224; Python : <code>"L&#8217;utilisateur s&#8217;appelle {{prenom}}"</code>.</p></li></ul><p>On ne peut pas dire que les solutions manquent !! Maintenant que vous &#234;tes surarm&#233;s avec pas moins de 5 syntaxes pour les prompts, la documentation LangChain fournit une page tr&#232;s compl&#232;te sur <a href="https://docs.langchain.com/langsmith/prompt-engineering">le prompt engineering</a> pour savoir quoi mettre dans ce fameux prompt !</p><h3>&#129000; Team JavaScript</h3><p>En JavaScript, c&#8217;est tr&#232;s simple : les <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals">Template Literals</a> sont la syntaxe &#224; privil&#233;gier pour d&#233;finir de longues cha&#238;nes de caract&#232;res. </p><p>Il s&#8217;agit d&#8217;un syst&#232;me moins sophistiqu&#233; que le formatage des cha&#238;nes de caract&#232;res en Python mais tout aussi efficace pour construire des prompts pour l&#8217;IA.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;3a50730f-c396-4143-aaea-307ea113066e&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">tone1="informative and calm"
tone2="aggressive techfluenceur marketing"
prompt=`You must write a LinkedIn post
Expected tone ${tone1}`</code></pre></div><p>Mettez &#231;a dans une fonction, et vous obtenez un g&#233;n&#233;rateur de prompts dynamiques !</p><p>Vous pouvez aussi choisir de mobiliser le <a href="https://reference.langchain.com/python/langchain-core/prompts/chat/ChatPromptTemplate">ChatPromptTemplate</a> de LangChain pour avoir un prompt tr&#232;s structur&#233;. Je ne le recommande pas forc&#233;ment en Python o&#249; il est redondant avec les fonctionnalit&#233;s de base, mais en JavaScript il peut compenser l&#8217;absence de m&#233;canismes avanc&#233;s pour le formatage des cha&#238;nes de caract&#232;res.<br></p><h2>La communaut&#233; LangChain</h2><p>Cette semaine on fait un d&#233;tour par Le Mans pour vous pr&#233;senter Edwin Simonnet,  Docteur en IA, sp&#233;cialiste LLM &amp; LangChain, et Dev Mobile Flutter ! Retrouvez Edwin <a href="https://www.linkedin.com/in/edwin-simonnet-26b635144/">sur LinkedIn</a>.</p><p>Pour appara&#238;tre dans la newsletter et faire connaissance avec la communaut&#233; LangChain France : r&#233;pondez directement &#224; la newsletter par mail et dites-moi quelques mots sur votre profil !</p><h2>Dans le prochain &#233;pisode</h2><p>On passe des prompts simples aux conversations multi-messages : types de messages - syst&#232;me, user, et tool ; lien avec la m&#233;moire et le tool calling&#8230;</p><h2>Qu&#8217;en pense l&#8217;IA ?</h2><p>Cette semaine, je demande &#224; Flux 2 Pro, le mod&#232;le d&#8217;image de l&#8217;allemand Black Forest Labs, ce qu&#8217;il pense de cet &#233;pisode de Formation LangChain France :</p><blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GDyg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F637295b5-2876-4bc4-ac18-586587d440fe_1024x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GDyg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F637295b5-2876-4bc4-ac18-586587d440fe_1024x768.png 424w, https://substackcdn.com/image/fetch/$s_!GDyg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F637295b5-2876-4bc4-ac18-586587d440fe_1024x768.png 848w, https://substackcdn.com/image/fetch/$s_!GDyg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F637295b5-2876-4bc4-ac18-586587d440fe_1024x768.png 1272w, https://substackcdn.com/image/fetch/$s_!GDyg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F637295b5-2876-4bc4-ac18-586587d440fe_1024x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GDyg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F637295b5-2876-4bc4-ac18-586587d440fe_1024x768.png" width="1024" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/637295b5-2876-4bc4-ac18-586587d440fe_1024x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Generated Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Generated Image" title="Generated Image" srcset="https://substackcdn.com/image/fetch/$s_!GDyg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F637295b5-2876-4bc4-ac18-586587d440fe_1024x768.png 424w, https://substackcdn.com/image/fetch/$s_!GDyg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F637295b5-2876-4bc4-ac18-586587d440fe_1024x768.png 848w, https://substackcdn.com/image/fetch/$s_!GDyg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F637295b5-2876-4bc4-ac18-586587d440fe_1024x768.png 1272w, https://substackcdn.com/image/fetch/$s_!GDyg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F637295b5-2876-4bc4-ac18-586587d440fe_1024x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.formationlangchain.fr/subscribe?&quot;,&quot;text&quot;:&quot;S'abonner&quot;,&quot;language&quot;:&quot;fr&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Merci d'avoir lu Formation LangChain France ! Abonnez-vous gratuitement pour recevoir de nouveaux posts et soutenir mon travail.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Tapez votre e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="S'abonner"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Comment configurer LangChain en local (Python et JavaScript)]]></title><description><![CDATA[Installez LangChain sur votre machine - tutoriel LangChain complet en Python et en JavaScript]]></description><link>https://www.formationlangchain.fr/p/comment-configurer-langchain-en-local-python-et-javascript</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/comment-configurer-langchain-en-local-python-et-javascript</guid><pubDate>Tue, 17 Mar 2026 13:02:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kuCX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ces derni&#232;res ann&#233;es ont vu &#233;merger de puissants outils cloud, tr&#232;s utiles pour apprendre &#224; programmer ou mener des exp&#233;rimentations :</p><ul><li><p>En python, <a href="https://colab.research.google.com/">Google Colab</a> est une solution incontournable, fond&#233;e sur le principe des notebooks Jupyter, mais en version cloud. Et c&#8217;est gratuit !</p></li><li><p>En JavaScript, plusieurs solutions concurrentes existent, on peut citer <a href="https://stackblitz.com/">StackBlitz</a> qui utilise des webcontainers, et <a href="https://codesandbox.io/dashboard/recent?workspace=ws_Dj9VqkigvyySqdNCkTrjaM">CodeSandbox</a> qui utilise des machines virtuelles.</p></li></ul><p>Cependant, vous allez certainement vouloir rapidement mener des projets de cr&#233;ation d&#8217;agents IA ambitieux : il sera alors n&#233;cessaire d&#8217;installer LangChain directement sur votre machine.</p><p>D&#233;couvrons comment uv en Python et pnpm en JavaScript peuvent nous aider. Et bien s&#251;r, dotenv pour g&#233;rer nos cl&#233;s d&#8217;API !</p><h2>L&#8217;astuce de la semaine : une cl&#233; d&#8217;API LLM globale</h2><p>Je vais vous montrer dans un instant comment stocker proprement vos cl&#233;s d&#8217;API LLM dans un fichier .env, sp&#233;cifique &#224; chaque projet.</p><p>Mais pour me faciliter la vie, je stocke aussi des cl&#233;s globales directement dans mon fichier <code>~/.profile</code>. </p><p>Sous Linux et Mac, le signe tilde &#8220;<code>~</code>&#8220; d&#233;signe votre dossier &#8220;home&#8221;, et le fichier <code>.profile</code> est charg&#233; automatiquement au d&#233;marrage de votre machine.</p><p>Si vous y ajoutez une variable <code>MISTRAL_API_KEY</code>, celle-ci sera utilis&#233;e par d&#233;faut par diff&#233;rents outils IA, notamment les applications LangChain et LangGraph.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;e2576ef6-fcba-4999-96c2-db8f9284ea00&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash"># Mon fichier ~/.profile
export MISTRAL_API_KEY=5bXXXXXXXXXXXXXX
export OPENROUTER_API_KEY=sk-or-v1-1c26de6XXXXXXX
export OPENAI_API_KEY="sk-proj-N8XXXXXXXX"</code></pre></div><h2>Le cas d&#8217;usage de la semaine</h2><p>Mon exemple pr&#233;f&#233;r&#233; pour justifier l&#8217;utilisation d&#8217;un script avec LangChain plut&#244;t qu&#8217;une plateforme IA : <strong>appliquer un prompt &#224; une liste de documents.</strong> </p><p>ChatGPT est amusant quand on doit traiter 1 &#224; 10 documents. Mais pour mener une veille commerciale sur une liste de 2000 concurrents, c&#8217;est tout de suite moins dr&#244;le ! Alors qu&#8217;une simple boucle &#8220;while&#8221; permet de g&#233;rer ce cas en une dizaine de lignes de code avec LangChain.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.formationlangchain.fr/subscribe?&quot;,&quot;text&quot;:&quot;S'abonner&quot;,&quot;language&quot;:&quot;fr&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Merci d'avoir lu Formation LangChain France ! Abonnez-vous gratuitement pour recevoir de nouveaux posts et soutenir mon travail.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Tapez votre e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="S'abonner"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#192; vos claviers : Votre installation LangChain locale</h2><h3>&#128013; Team Python</h3><p>TL;DR: je vous ai cr&#233;&#233; un <a href="https://github.com/lbke/template-formation-langchain-python">template cl&#233;-en-main pour d&#233;marrer avec LangChain en Python</a> sur GitHub. Explications ci-dessous.</p><p>Si vous &#234;tes sous Windows, commencez par <a href="https://learn.microsoft.com/fr-fr/windows/wsl/install">installer Linux via le WSL</a> : plus l&#233;ger qu&#8217;une machine virtuelle (VM), ce syst&#232;me est devenu la norme pour beaucoup de programmeurs Python et vous permet d&#8217;ex&#233;cuter les m&#234;mes commandes que sous Linux ou Mac. Ainsi, nous parlons tous le m&#234;me langage !</p><p>Ensuite, familiarisez-vous avec <a href="https://docs.astral.sh/uv/">uv</a>, qui permet &#224; la fois d&#8217;installer Python sur votre ordinateur et d&#8217;installer des modules comme langchain.</p><p>Note : au moment o&#249; j&#8217;&#233;cris ces lignes (mars 2026), <strong>LangChain ne supporte pas encore Python 3.14</strong>, il vous faudra donc installer la version 3.13. </p><p>En effet, LangChain et LangGraph utilisent des librairies fortement optimis&#233;es, qui peuvent mettre un peu de temps &#224; supporter les nouvelles versions de Python sans compromis sur les performances.</p><p>Pour stocker les cl&#233;s d&#8217;API sur votre ordinateur, le syst&#232;me <a href="https://pypi.org/project/python-dotenv/">dotenv</a> est tr&#232;s pratique. Vous stockez tout simplement vos cl&#233;s dans un fichier cach&#233; &#8220;.env&#8221;, avec une cl&#233; d&#8217;API par projet sur votre ordinateur. <strong>Cependant, attention &#224; ne PAS l&#8217;inclure dans votre d&#233;p&#244;t GitHub !</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash"># Dans le fichier .env d'un projet
# Attention &#224; NE PAS versionner ce fichier dans git !!
# C'est un fichier priv&#233; !!
OPENROUTER_API_KEY=xyz_1234</code></pre></div><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;5fd7636a-1d67-4cad-b15a-f5eda067aba9&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash"># Dans votre fichier .gitignore
.env
.env.*</code></pre></div><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;shell&quot;,&quot;nodeId&quot;:&quot;c294684b-fb61-4308-8023-69b67c618d66&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-shell"># Dans le code
# Installation : pip install python-dotenv
import os
from dotenv import load_dotenv
load_dotenv()  # charge le fichier .env automatiquement
print(os.getenv("OPENROUTER_API_KEY")) # &#127881;</code></pre></div><p>Enfin, vous pouvez reprendre le code de notre article pr&#233;c&#233;dent <a href="https://www.formationlangchain.fr/p/un-llm-dans-votre-code-avec-langchain-python-javascript">&#8220;Un LLM dans votre code avec LangChain&#8220;</a>, et l&#8217;ex&#233;cuter sur votre propre ordinateur !</p><p>Dernier point important : avec uv, on utilise la commande <code>uv run mon_script.py</code> plut&#244;t que <code>python</code>. En effet, uv va se charger d&#8217;activer toutes les d&#233;pendances automatiquement et g&#233;rer pour nous l&#8217;environnement virtuel &#8220;venv&#8221; : tr&#232;s pratique !</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kuCX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kuCX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png 424w, https://substackcdn.com/image/fetch/$s_!kuCX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png 848w, https://substackcdn.com/image/fetch/$s_!kuCX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png 1272w, https://substackcdn.com/image/fetch/$s_!kuCX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kuCX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png" width="629" height="426" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14d7747d-4882-4790-bac2-b724610e4e46_629x426.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:426,&quot;width&quot;:629,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:82629,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.formationlangchain.fr/i/190369151?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kuCX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png 424w, https://substackcdn.com/image/fetch/$s_!kuCX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png 848w, https://substackcdn.com/image/fetch/$s_!kuCX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png 1272w, https://substackcdn.com/image/fetch/$s_!kuCX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d7747d-4882-4790-bac2-b724610e4e46_629x426.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Structure de fichiers du projet &#8220;fais&#8221;, un CLI agentique interne pour l&#8217;automatisation des processus Qualiopi de LBKE. J&#8217;utilise &#8220;uv&#8221; pour g&#233;rer le projet et LangChain python pour l&#8217;impl&#233;mentation de l&#8217;agent IA.</figcaption></figure></div><h3>&#129000; Team JavaScript</h3><p>J&#8217;avais d&#233;j&#224; cit&#233; la semaine derni&#232;re  <a href="https://volta.sh/">volta</a> pour l&#8217;installation de Node.js et <a href="https://pnpm.io/fr/">pnpm</a> pour l&#8217;installation des packages, dont langchain.</p><p>D&#233;couvrons maintenant comment ex&#233;cuter efficacement un script JavaScript localement. Ou plus pr&#233;cis&#233;ment : un script TypeScript !</p><p>TypeScript est une version de JavaScript qui utilise du typage statique, c&#8217;est-&#224;-dire que l&#8217;on pr&#233;cise dans le code les structures de donn&#233;es utilis&#233;es par les variables et les fonctions. </p><p>C&#8217;est un peu intimidant quand on a appris JavaScript en autodidacte &#224; l&#8217;&#233;poque de jQuery, mais TypeScript apporte de nombreux avantages qui valent le coup : auto-compl&#233;tion de grande qualit&#233;, code plus facile &#224; maintenir, d&#233;tection de nombreuses erreurs&#8230;</p><p>Voici 4 techniques pour ex&#233;cuter un script TypeScript en une ligne, sans avoir &#224; le compiler en JavaScript :</p><ul><li><p><code>pnpx tsx ./mon-script.ts : </code>utilise <a href="https://tsx.is/">tsx</a> (<a href="https://github.com/privatenumber/tsx/issues/552">n&#233;cessite &#8220;type&#8221;: &#8220;module&#8221; dans le package.json</a>) </p></li><li><p><code>node --experimental-strip-types ./mon-script.ts : </code>utilise les <a href="https://nodejs.org/en/learn/typescript/run-natively">options exp&#233;rimentales Node.js pour g&#233;rer TypeScript</a> (on peut aussi utiliser<code> &#8212;experimental-transform-types</code>)</p></li><li><p><code>ts-node ./mon-script.ts : u</code>tilise <a href="https://www.npmjs.com/package/ts-node">ts-node</a> (r&#233;alise un vrai typecheck, n&#233;cessite d&#8217;installer globalement le module <code>typescript</code>)</p></li><li><p><code>bun ./mon-script.ts : </code>utilise <a href="https://bun.sh/">bun</a> (marche aussi avec <a href="https://deno.com/">Deno</a>)</p></li></ul><p>Ce n&#8217;est pas tr&#232;s intuitif malheureusement&#8230; On peut s&#8217;attendre &#224; ce que les prochaines versions de Node.js g&#232;rent TypeScript nativement, tant ce langage s&#8217;est impos&#233; comme un standard, et aussi sous la pression des runtimes alternatifs Bun et Deno.</p><p>Une fois Node.js, pnpm et TypeScript configur&#233;s, la derni&#232;re &#233;tape est la gestion des cl&#233;s d&#8217;API LLM, que l&#8217;on stocke comme des variables d&#8217;environnement.</p><p>La recette est la m&#234;me qu&#8217;en Python, on utilise le module <a href="https://www.npmjs.com/package/dotenv">dotenv</a> qui charge un fichier .env stock&#233; dans notre projet (mais PAS dans le d&#233;p&#244;t Git ! C&#8217;est un fichier priv&#233; !).</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;ff74f127-39c8-4aec-b075-0baa9c3f22cc&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash"># Dans le fichier .env d&#8217;un projet
# Attention &#224; NE PAS suivre ce fichier dans git !!
# C&#8217;est un fichier priv&#233; !!
OPENROUTER_API_KEY=xyz_1234</code></pre></div><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;beb2392e-ca1d-4094-974a-7f8b8394178a&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash"># Dans votre fichier .gitignore
.env
.env.*</code></pre></div><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;typescript&quot;,&quot;nodeId&quot;:&quot;64f5fab1-0ff3-4df6-8278-7e3b55bb8ba8&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-typescript"># Dans le code
# Installation : pnpm install dotenv
import 'dotenv/config'
print(process.env[&#8221;OPENROUTER_API_KEY&#8221;]) # &#127881;</code></pre></div><p>Vous pouvez enfin reprendre le code de l&#8217;&#233;pisode pr&#233;c&#233;dent de <a href="https://www.formationlangchain.fr/p/un-llm-dans-votre-code-avec-langchain-python-javascript">Formation LangChain France</a>, et le faire tourner sur votre propre machine pour d&#233;clencher un appel d&#8217;API LLM avec LangChain !</p><p>Note sur <code>process.env</code> : vous devrez peut-&#234;tre installer le package <code>@types/nodejs</code> pour que cette variable soit reconnue dans votre &#233;diteur de texte. Si vous utilisez Bun ou Deno, les variables d&#8217;environnement sont alors plut&#244;t obtenues via <code>Bun.env</code> ou via <code>Deno.env</code>. Si vous devez charger une cl&#233; LLM dans le navigateur, vous rencontrerez aussi la syntaxe <code>import.meta.env</code> (cf <a href="https://www.lbke.fr/ressources/mastra-vercel-ai-sdk/byok-spa-et-api-ia-avec-vercel-ai-sdk">notre article sur le BYOK</a> sur l&#8217;exemple de Vercel AI SDK, qui s&#8217;applique aussi &#224; LangChain).</p><h2>La communaut&#233; LangChain</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yOuI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yOuI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png 424w, https://substackcdn.com/image/fetch/$s_!yOuI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png 848w, https://substackcdn.com/image/fetch/$s_!yOuI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png 1272w, https://substackcdn.com/image/fetch/$s_!yOuI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yOuI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png" width="352" height="76" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:76,&quot;width&quot;:352,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5053,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.formationlangchain.fr/i/190369151?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yOuI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png 424w, https://substackcdn.com/image/fetch/$s_!yOuI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png 848w, https://substackcdn.com/image/fetch/$s_!yOuI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png 1272w, https://substackcdn.com/image/fetch/$s_!yOuI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39650ad4-cd9e-4eb8-a73e-8a0990087455_352x76.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="poll-embed" data-attrs="{&quot;id&quot;:471546}" data-component-name="PollToDOM"></div><p>Dans chaque &#233;pisode, on parle de vous, les membres de la communaut&#233; LangChain France ! Aujourd&#8217;hui, je vous pr&#233;sente Sylvain Lapeyrade, freelance sp&#233;cialiste de LangChain : <a href="https://www.linkedin.com/in/sylvainlapeyrade">retrouvez-le sur LinkedIn.</a></p><h2>Dans le prochain &#233;pisode</h2><p>On va prompter des prompts qui g&#233;n&#232;rent des prompts. Vous suivez  toujours ?</p><h2>Qu&#8217;en pense l&#8217;IA ?</h2><p>Cette semaine, je demande &#224; <a href="https://www.kimi.com/ai-models/kimi-k2-5">Kimi 2.5</a>, le mod&#232;le agentique multimodal de l&#8217;entreprise chinoise Moonshot AI ce qu&#8217;il pense de ce num&#233;ro de la newsletter Formation LangChain France :</p><blockquote><p>Cette newsletter offre une transition pragmatique et bienvenue des environnements cloud (Colab, CodeSandbox) vers une installation locale professionnelle de LangChain, couvrant avec pertinence les deux &#233;cosyst&#232;mes majeurs que sont Python (via uv) et JavaScript/TypeScript (via pnpm et tsx), tout en insistant &#224; juste titre sur la gestion s&#233;curis&#233;e des cl&#233;s API via dotenv et .gitignore ; cependant, si ses conseils techniques sont solides et son exemple de traitement par lot de 2000 documents illustre parfaitement l'int&#233;r&#234;t d'un script local versus une plateforme cloud, on regrettera la recommandation de stocker des cl&#233;s API en clair dans le fichier ~/.profile &#8212; pratique certes commode mais potentiellement risqu&#233;e pour la s&#233;curit&#233;.</p></blockquote><p>Tr&#232;s bonne remarque ! Le risque de s&#233;curit&#233; est acceptable car mes cl&#233;s d&#8217;API sont toujours associ&#233;es &#224; une faible limite de d&#233;pense et cette pratique est &#233;quivalente au stockage d&#8217;une cl&#233; dans un .env. Si vous avez exp&#233;riment&#233; d&#8217;autres approches pour le stockage des cl&#233;s d&#8217;API, faites-le savoir en r&#233;pondant &#224; cette newsletter par mail !</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.formationlangchain.fr/subscribe?&quot;,&quot;text&quot;:&quot;S'abonner&quot;,&quot;language&quot;:&quot;fr&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Merci d'avoir lu Formation LangChain France ! Abonnez-vous gratuitement pour recevoir de nouveaux posts et soutenir mon travail.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Tapez votre e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="S'abonner"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Un LLM dans votre code avec LangChain]]></title><description><![CDATA[Par o&#249; commencer ? Tutoriel LangChain complet en Python et en JavaScript]]></description><link>https://www.formationlangchain.fr/p/un-llm-dans-votre-code-avec-langchain-python-javascript</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/un-llm-dans-votre-code-avec-langchain-python-javascript</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Tue, 03 Mar 2026 09:01:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gokA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb524f09b-00c3-4486-8ffe-1a223fe9ed68_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>LangChain vous permet de cr&#233;er des programmes Python ou JavaScript qui utilisent l&#8217;IA g&#233;n&#233;rative.</p><p>Concr&#232;tement, LangChain est un framework sp&#233;cialis&#233; dans l&#8217;interfa&#231;age avec les grands mod&#232;les de langage LLM, tels que GPT, Claude, Mistral et plusieurs centaines d&#8217;autres.</p><p>LangChain a &#233;t&#233; publi&#233; en octobre 2023, soit un mois avant&#8230; ChatGPT !</p><p>Pas de d&#233;bat entre l&#8217;&#339;uf et la poule ici : l&#8217;IA agentique pr&#233;c&#232;de bien l&#8217;IA g&#233;n&#233;rative et c&#8217;est prouv&#233;.</p><p>Mais ce n&#8217;est pas tout, depuis la version 1.0 publi&#233;e en octobre 2025, LangChain int&#232;gre aussi une boucle agentique avec la fonction <code>create_agent</code>. On y reviendra dans un prochain article</p><p>D&#8217;abord, installons LangChain pour d&#233;clencher un premier appel LLM.</p><h2>L&#8217;astuce de la semaine : mod&#232;les gratuits avec OpenRouter</h2><p>Rien de pire quand on apprend une nouvelle technologie que de devoir commencer par ins&#233;rer sa carte bleue&#8230; </p><p><a href="https://openrouter.ai/">OpenRouter</a> est un &#8220;gateway&#8221; ou routeur de mod&#232;les qui vous permet d&#8217;acc&#233;der &#224; de nombreux LLM, dont des instances gratuites de mod&#232;les open source. </p><p>En ajoutant 10 euros de cr&#233;dit, la limite de requ&#234;tes passe de 50 &#224; 1000 par jour pour les mod&#232;les gratuits (vos 10 euros restent donc en stock et ne sont pas d&#233;pens&#233;s) : super pour vos premiers essais. <a href="https://openrouter.ai/models?max_price=0">Les mod&#232;les gratuits sont list&#233;s ici.</a></p><h2>Le cas d&#8217;usage de la semaine</h2><p>En panne d&#8217;id&#233;e ? Cr&#233;ez un agent IA qui vous g&#233;n&#232;re&#8230; des id&#233;es de cas d&#8217;usage pour LangChain ! Le tutoriel qui suit vous suffira pour ce premier cas d&#8217;usage.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.formationlangchain.fr/subscribe?&quot;,&quot;text&quot;:&quot;S'abonner&quot;,&quot;language&quot;:&quot;fr&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Merci d'avoir lu Formation LangChain France ! Abonnez-vous gratuitement pour recevoir de nouveaux posts et soutenir mon travail.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Tapez votre e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="S'abonner"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#192; vos claviers : premier appel LLM avec LangChain</h2><h3>&#128013; Team Python</h3><p>C&#8217;est surprenant, mais beaucoup de d&#233;veloppeurs LangChain qui suivent nos formations n&#8217;utilisent PAS Python dans leur quotidien professionnel. Si vous n&#8217;&#234;tes pas data scientist, vous utilisez peut-&#234;tre Python uniquement pour cr&#233;er des petits scripts par-ci par-l&#224;.</p><p>Bonne nouvelle, vous n&#8217;avez m&#234;me pas besoin d&#8217;installer Python sur votre ordinateur pour d&#233;marrer. </p><p>Il vous suffit d&#8217;ouvrir : <a href="https://colab.research.google.com/">Google Colab</a>. Je vous ai m&#234;me <a href="https://colab.research.google.com/drive/1ze5vN-uCmxFi2-CU7fQpFRJ3HWUWtvF-?usp=sharing">pr&#233;par&#233; un notebook tout pr&#234;t !</a></p><p>Colab est une surcouche cloud pour Jupyter, gratuite et con&#231;ue pour l&#8217;apprentissage. Parfait pour se former &#224; LangChain.</p><p><a href="https://ipython.readthedocs.io/en/stable/interactive/magics.html">La commande magique %pip </a>vous permet d&#8217;installer le module LangChain ainsi q&#8217;une int&#233;gration avec un LLM, ici OpenAI.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;shell&quot;,&quot;nodeId&quot;:&quot;c294684b-fb61-4308-8023-69b67c618d66&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-shell">%pip install -qU langchain-openai</code></pre></div><p>Deux points importants :</p><ul><li><p>LangChain se connecte &#224; un LLM, mais ne fournit pas de LLM.</p></li><li><p>Pourquoi OpenAI quand on peut utiliser un mod&#232;le europ&#233;en comme Mistral ? Car l&#8217;API OpenAI est consid&#233;r&#233;e comme un standard : on va en fait pouvoir brancher un mod&#232;le open source via OpenRouter et m&#234;me un serveur Ollama !</p></li></ul><p>Deuxi&#232;me point de configuration, g&#233;rer votre cl&#233; d&#8217;API. Le module &#8220;getpass&#8221; est l&#8217;approche la plus simple.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;80a17c81-4feb-4140-a61e-ae80c5d4d6e7&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">import getpass, os
os.environ["OPENROUTER_API_KEY"] = getpass.getpass("Enter API key: ")</code></pre></div><p>Ensuite, on initialise la connexion avec un mod&#232;le LLM via LangChain :</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;07a18edf-18d2-42ca-9e9f-68f0dbba8b34&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from langchain.chat_models import init_chat_model
model = init_chat_model(
    model="mistralai/codestral-2508",
    model_provider="openai",
    base_url="https://openrouter.ai/api/v1",
    api_key=os.environ["OPENROUTER_API_KEY"])</code></pre></div><p>Et enfin l&#8217;appel d&#8217;API LLM !</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;20f7f406-b7de-4b0f-abdc-996784442e8a&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">messages = [
    ("user", "G&#233;n&#232;re un court programme Python avec LangChain qui envoie un message &#224; un LLM."),
]
res=model.invoke(messages)
print(res.content)</code></pre></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OoQo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OoQo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png 424w, https://substackcdn.com/image/fetch/$s_!OoQo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png 848w, https://substackcdn.com/image/fetch/$s_!OoQo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png 1272w, https://substackcdn.com/image/fetch/$s_!OoQo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OoQo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png" width="1210" height="381" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:381,&quot;width&quot;:1210,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:67101,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.formationlangchain.fr/i/188521687?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OoQo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png 424w, https://substackcdn.com/image/fetch/$s_!OoQo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png 848w, https://substackcdn.com/image/fetch/$s_!OoQo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png 1272w, https://substackcdn.com/image/fetch/$s_!OoQo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8130ef5-02e4-4b0f-8adf-a4be86d73524_1210x381.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Notez comme le LLM me g&#233;n&#232;re N&#8217;IMPORTE QUOI. Il va falloir introduire un RAG pour am&#233;liorer le r&#233;sultat !</figcaption></figure></div><h3>&#129000; Team JavaScript</h3><p>Il n&#8217;y a pas que le langage Python dans l&#8217;IA ! L&#8217;IA agentique est focalis&#233;e sur l&#8217;utilisation d&#8217;IA existantes et non la cr&#233;ation de nouvelles IA. Tous les langages de programmation sont donc bienvenus, et LangChain propose justement une version JavaScript/TypeScript de son framework.</p><h4>&#201;tape 1 : une machine virtuelle sur le cloud avec Node.js</h4><p>Pour d&#233;marrer en quelques clics sans installation, nous pouvons utiliser un outil cloud. <a href="https://codesandbox.io/">Codesandbox</a> cr&#233;e une micro-VM pour nous (donc sur un serveur distant o&#249; Node.js est install&#233;), j&#8217;aime aussi beaucoup <a href="https://stackblitz.com/?starters=backend">StackBlitz qui s&#8217;appuie sur les webcontainers.</a></p><p>La configuration est un peu complexe, je vous ai donc cr&#233;&#233; directement une d&#233;mo <a href="https://codesandbox.io/p/devbox/jkk5ml">toute pr&#234;te ici</a>.</p><p>&#201;tape par &#233;tape : </p><ul><li><p>J&#8217;ai cr&#233;&#233; un nouveau projet Node.js</p></li><li><p>J&#8217;ai ajout&#233; le support basique de TypeScript via <code>tsx</code> (cf package.json)</p></li><li><p>J&#8217;ai install&#233; les d&#233;pendances : <code>npm install langchain</code> <code>@langchain-core</code> <code>@langchain/openai</code></p></li></ul><h4>&#201;tape 2 : une cl&#233; d&#8217;API</h4><p>Pour la suite de la configuration, c&#8217;est &#224; vous de jouer, car il vous faut une cl&#233; d&#8217;API LLM !</p><p>Je vous conseille de passer par OpenRouter,  un routeur d&#8217;API LLM qui agr&#232;ge plusieurs fournisseurs et mod&#232;les, dont des mod&#232;les open source et gratuits. Vous pouvez <a href="https://openrouter.ai/settings/keys">cr&#233;er une cl&#233; d&#8217;API ici</a>.</p><p>Attention &#224; ne pas stocker la cl&#233; directement dans votre code, vous pourriez y laisser votre porte-monnaie ! La m&#233;thode ad&#233;quate d&#233;pend de l&#8217;environnement de d&#233;veloppement, donc dans notre cas il faut passer par une <a href="https://codesandbox.io/docs/learn/environment/secrets">configuration CodeSandbox d&#233;crite sur cette page.</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tqiW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tqiW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png 424w, https://substackcdn.com/image/fetch/$s_!tqiW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png 848w, https://substackcdn.com/image/fetch/$s_!tqiW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png 1272w, https://substackcdn.com/image/fetch/$s_!tqiW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tqiW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png" width="1300" height="299" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:299,&quot;width&quot;:1300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30655,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.formationlangchain.fr/i/188521687?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tqiW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png 424w, https://substackcdn.com/image/fetch/$s_!tqiW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png 848w, https://substackcdn.com/image/fetch/$s_!tqiW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png 1272w, https://substackcdn.com/image/fetch/$s_!tqiW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca9f8d44-f701-440e-86d0-377983974d7a_1300x299.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">La cl&#233; d&#8217;API cr&#233;&#233;e dans OpenRouter</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0y19!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0y19!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png 424w, https://substackcdn.com/image/fetch/$s_!0y19!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png 848w, https://substackcdn.com/image/fetch/$s_!0y19!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png 1272w, https://substackcdn.com/image/fetch/$s_!0y19!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0y19!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png" width="932" height="338" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:338,&quot;width&quot;:932,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32308,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.formationlangchain.fr/i/188521687?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0y19!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png 424w, https://substackcdn.com/image/fetch/$s_!0y19!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png 848w, https://substackcdn.com/image/fetch/$s_!0y19!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png 1272w, https://substackcdn.com/image/fetch/$s_!0y19!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c52c43a-cda7-4f87-89dc-91d33211c665_932x338.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Je stocke ma cl&#233; dans une variable d&#8217;environnement via les param&#232;tres de CodeSandbox</figcaption></figure></div><p>Voici &#224; quoi ressemble l&#8217;initialisation d&#8217;une connexion &#224; un mod&#232;le LLM via OpenRouter dans LangChain JS :</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;typescript&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-typescript">const model = new ChatOpenAI({
  model: "mistralai/codestral-2508",
  apiKey: process.env.OPENROUTER_API_KEY,
  configuration: { baseURL: "https://openrouter.ai/api/v1" },
});</code></pre></div><p>Notre configuration est un peu tordue, mais tr&#232;s puissante : </p><ul><li><p>On utilise &#8220;openai&#8221; comme un standard d&#8217;API, mais on ne veut pas de GPT</p></li><li><p>On utilise donc en fait &#8220;OpenRouter&#8221; en configurant <a href="https://docs.langchain.com/oss/javascript/langchain/models#base-url-or-proxy">le bon param&#232;tre &#8220;baseUrl&#8221;</a> (note : la doc n&#8217;est pas &#224; jour, il faut passer par un objet &#8220;configuration&#8221;)</p></li><li><p>et au sein d&#8217;OpenRouter, on a choisi d&#8217;utiliser&#8230; <a href="https://openrouter.ai/mistralai/codestral-2508">un mod&#232;le Mistral !</a></p></li></ul><p>Bonne nouvelle, une int&#233;gration &#8220;ChatOpenRouter&#8221; plus directe est en cours de publication en f&#233;vrier 2026, <a href="https://openrouter.ai/docs/guides/community/langchain">voir cette doc</a>. Dans Mastra (framework concurrent de LangChain), <a href="https://mastra.ai/blog/model-router">le model router</a> facilite aussi la connexion avec OpenRouter.</p><h4>&#201;tape finale : l&#8217;appel &#224; une API LLM</h4><p>Derni&#232;re &#233;tape, on peut enfin appeler notre LLM : </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">const result = await model.invoke(
  `Codestral, une newsletter sur LangChain en fran&#231;ais, 
  &#231;a t'int&#233;resse ?`
);
console.log(result.content);</code></pre></div><p>Pour aller plus loin, vous pouvez explorer la doc de <a href="https://docs.langchain.com/oss/javascript/langchain/models">connexion &#224; un mod&#232;le LLM.</a></p><h2>Dans le prochain &#233;pisode</h2><p>Google Colab en Python et CodeSandbox en JavaScript nous ont permis de tester LangChain sans rien installer sur notre ordinateur.</p><p>Parfait pour d&#233;buter ! </p><p>Mais cette configuration est un peu rigide. Par la suite, on pourra utiliser <a href="https://volta.sh/">volta</a> et <a href="https://pnpm.io/fr/">pnpm</a> pour installer Node.js et LangChain JS sur notre ordinateur. En Python, on privil&#233;giera <a href="https://docs.astral.sh/uv/">uv</a>.</p><p>Deuxi&#232;me limite : on a envoy&#233; un premier message &#224; l&#8217;IA avec du code gr&#226;ce &#224; LangChain. Mais depuis la v1 sortie fin 2025, LangChain permet de cr&#233;er des agents beaucoup plus puissants en &#224; peine quelques lignes de code.</p><p>On en reparle au prochain &#233;pisode !</p><h2>Qu&#8217;en pense l&#8217;IA ?</h2><p>Cette semaine, je demande &#224; <a href="https://mistral.ai/fr/news/codestral">Codestral</a>, le mod&#232;le de code de Mistral, ce qu&#8217;il pense d&#8217;une newsletter sur LangChain en fran&#231;ais :</p><blockquote><p>Absolument ! Une newsletter sur **LangChain en fran&#231;ais** serait une excellente id&#233;e, surtout si elle vise &#224; :</p><p>1. **Simplifier les concepts** : Expliquer les fonctionnalit&#233;s de LangChain (agents, cha&#238;nes, mod&#232;les, etc.) de mani&#232;re accessible.</p><p>2. **Partager des cas pratiques** : Des exemples concrets (chatbots, automatisation, analyse de donn&#233;es, etc.).</p><p>3. **Actualit&#233;s et tutoriels** : Mettre en avant les mises &#224; jour de LangChain, des guides &#233;tape par &#233;tape, et des astuces.</p><p>4. **Communaut&#233; francophone** : Encourager les &#233;changes entre d&#233;veloppeurs, chercheurs et passionn&#233;s d&#8217;IA.</p><p>Si tu veux lancer ce projet, je peux t&#8217;aider &#224; :</p><p>- **Structurer le contenu** (th&#232;mes r&#233;currents, format des newsletters).</p><p>- **Trouver des contributeurs** (d&#233;veloppeurs, chercheurs, entreprises).</p><p>- **Promouvoir la newsletter** (r&#233;seaux sociaux, forums comme Hugging Face, GitHub).</p></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.formationlangchain.fr/subscribe?&quot;,&quot;text&quot;:&quot;S'abonner&quot;,&quot;language&quot;:&quot;fr&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Merci d'avoir lu Formation LangChain France ! Abonnez-vous gratuitement pour recevoir de nouveaux posts et soutenir mon travail.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Tapez votre e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="S'abonner"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Comment devenir développeur IA LLM avec les formations LBKE]]></title><description><![CDATA[Le m&#233;tier de &#8220;developpeur IA&#8221; est un nouveau m&#233;tier &#233;mergent qui consiste &#224; int&#233;grer des syst&#232;mes d&#8217;IA, notamment des LLM, au sein d&#8217;applications logicielles.]]></description><link>https://www.formationlangchain.fr/p/comment-devenir-developpeur-ia-llm-2ed</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/comment-devenir-developpeur-ia-llm-2ed</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Thu, 08 Jan 2026 10:30:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371074/bb5e588e24e914561a7dd5af495b787e.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Le m&#233;tier de &#8220;developpeur IA&#8221; est un nouveau m&#233;tier &#233;mergent qui consiste &#224; int&#233;grer des syst&#232;mes d&#8217;IA, notamment des LLM, au sein d&#8217;applications logicielles. Les agents IA sont un exemple typique de syst&#232;mes cr&#233;&#233;s par des d&#233;veloppeurs et d&#233;veloppeuses IA.</p><p>Ce nouveau m&#233;tier est encore &#233;mergent, il y a donc un fort besoin de formation pour r&#233;pondre aux besoins croissants des entreprises dans le domaine de l&#8217;IA.</p><p>Pour se sp&#233;cialiser dans le d&#233;veloppement d&#8217;applications bas&#233;es sur les grands mod&#232;les de langage (LLM), deux formations &#233;ligibles au CPF permettent d&#8217;acqu&#233;rir chez LBKE des comp&#233;tences techniques en <strong>JavaScript</strong> ou en <strong>Python</strong>. </p><p>La <a href="https://www.lbke.fr/formations/ia/mastra-ia-agentique-javascript/cpf">formation Mastra et Vercel AI SDK</a> offre une expertise en int&#233;gration d&#8217;IA g&#233;n&#233;rative via JavaScript, tandis que le parcours <a href="https://www.lbke.fr/formations/ia/langchain-ia-agentique-python/cpf">LangChain pour le d&#233;veloppement IA en Python</a> couvre la cr&#233;ation d&#8217;agents autonomes et d&#8217;applications avanc&#233;es avec ce framework open-source.</p><p>Pour optimiser la productivit&#233; des &#233;quipes techniques, la <a href="https://www.lbke.fr/formations/developpeur-augmente-cursor">formation Cursor</a> enseigne l&#8217;utilisation d&#8217;assistants de code IA, tandis que le programme <a href="https://www.lbke.fr/formations/ia/agents-ia-en-entreprise">Agents IA en entreprise</a> s&#8217;adresse aux professionnels souhaitant automatiser des processus m&#233;tiers gr&#226;ce &#224; l&#8217;IA agentique (sans forc&#233;ment &#234;tre d&#233;veloppeur !). <br><br>Ces parcours, adapt&#233;s aux enjeux actuels, combinent th&#233;orie et mise en pratique pour une mont&#233;e en comp&#233;tences rapide.</p>]]></content:encoded></item><item><title><![CDATA[Utiliser du XML dans un LLM avec LangChain]]></title><description><![CDATA[Demander au LLM de produire du XML puis parser la r&#233;ponse avec les outils de LangChain permet d'obtenir des r&#233;ponses structur&#233;es et propres.]]></description><link>https://www.formationlangchain.fr/p/utiliser-du-xml-dans-un-llm-avec-1f6</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/utiliser-du-xml-dans-un-llm-avec-1f6</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Fri, 02 Jan 2026 08:00:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371075/58835ac2f7d4df118b717aabeb8eb476.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Demander au LLM de produire du XML puis parser la r&#233;ponse avec les outils de LangChain permet d'obtenir des r&#233;ponses structur&#233;es et propres.</p><p>Les sorties structur&#233;es en JSON sont tout de m&#234;me recommand&#233;es dans la majorit&#233; des situations, car elles acc&#233;l&#232;rent l&#8217;inf&#233;rence et ont une garantie de qualit&#233;, alors que le parsing peut &#233;chouer.</p><div><hr></div><p></p><p>Formation LangChain et LangGraph &#233;ligible CPF chez LBKE https://www.lbke.fr/formations/developpeur-llm-langgraph-langchain/cpf</p>]]></content:encoded></item><item><title><![CDATA[Crise du développement web : comment en sortir avec l'IA]]></title><description><![CDATA[L&#8217;IA g&#233;n&#233;rative est bien plus qu&#8217;un d&#233;fi pour les d&#233;veloppeurs et d&#233;veloppeuses web : elle constitue une r&#233;elle opportunit&#233; d&#8217;&#233;volution et d&#8217;innovation dans leur m&#233;tier.]]></description><link>https://www.formationlangchain.fr/p/crise-du-developpement-web-comment-34c</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/crise-du-developpement-web-comment-34c</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Thu, 01 Jan 2026 10:30:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371076/2053dbe4c840419bd93236705e4ec574.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>L&#8217;IA g&#233;n&#233;rative est bien plus qu&#8217;un d&#233;fi pour les d&#233;veloppeurs et d&#233;veloppeuses web : elle constitue une r&#233;elle opportunit&#233; d&#8217;&#233;volution et d&#8217;innovation dans leur m&#233;tier. </p><p>Contrairement aux id&#233;es re&#231;ues, la vocation premi&#232;re de l&#8217;IA g&#233;n&#233;rative et agentique n&#8217;est certainement pas &#224; remplacer des comp&#233;tences ! Au contraire, elle les enrichit en automatisant les t&#226;ches r&#233;p&#233;titives et en ouvrant la voie &#224; des solutions cr&#233;atives in&#233;dites. </p><p>Si certaines entreprises vont jusqu&#8217;&#224; proposer des usines logicielles automatis&#233;es, elles ne le font que dans un p&#233;rim&#232;tre pr&#233;cis, pour des syst&#232;mes logiciels relativement standardis&#233;s. Les logiciels les plus innovants continueront donc d&#8217;&#234;tre produit selon un processus de d&#233;veloppement informatique traditionnel, m&#234;me lorsqu&#8217;il est assist&#233; par l&#8217;IA.</p><p>Comme toute nouvelle technologie, les agents IA pour le code nous incitent &#224; repenser nos pratiques, &#224; innover pour en extraire les &#233;l&#233;ments les plus positifs (gain de cr&#233;ativit&#233;, &#233;limination des t&#226;ches fastidieuses) sans souffrir des aspects n&#233;gatifs (d&#233;pendance, perte de comp&#233;tence).</p><p>La formation professionnelle est aussi recommand&#233;e, les &#233;quipes qui gagnent le plus en productivit&#233; avec l&#8217;IA agentique sont celles qui l&#8217;adoptent de mani&#232;re structur&#233;e et avec l&#8217;accompagnement ad&#233;quat.</p><div><hr></div><p>Pour comprendre comment en tirer parti de la transition IA des entreprises en tant que d&#233;veloppeur informatique, un d&#233;cryptage complet est disponible dans <a href="https://www.lbke.fr/actus/2025/developpeur-web-ia-crise-ou-mutation">cet article sur le site de LBKE.</a></p>]]></content:encoded></item><item><title><![CDATA[Pattern routeur dans LangGraph pour gérer différentes requêtes utilisateur]]></title><description><![CDATA[Un routeur joue un r&#244;le cl&#233; dans l&#8217;architecture des agents conversationnels en analysant la requ&#234;te utilisateur pour s&#233;lectionner dynamiquement le prompt, le pipeline ou la fonctionnalit&#233; la plus adapt&#233;e.]]></description><link>https://www.formationlangchain.fr/p/pattern-routeur-dans-langgraph-pour-91c</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/pattern-routeur-dans-langgraph-pour-91c</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Fri, 26 Dec 2025 08:00:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371078/568a274dee3a3f9156ede9f5881f902c.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Un routeur joue un r&#244;le cl&#233; dans l&#8217;architecture des agents conversationnels en analysant la requ&#234;te utilisateur pour s&#233;lectionner dynamiquement le prompt, le pipeline ou la fonctionnalit&#233; la plus adapt&#233;e. </p><p>Cette approche permet de centraliser plusieurs cas d&#8217;usage au sein d&#8217;un unique agent LangGraph, optimisant ainsi la modularit&#233; et l&#8217;efficacit&#233; du syst&#232;me. </p><p>Par exemple, un m&#234;me agent peut basculer entre une recherche documentaire, une analyse de donn&#233;es ou une g&#233;n&#233;ration de code, selon l&#8217;intention d&#233;tect&#233;e, sans multiplier les points d&#8217;entr&#233;e.</p><p>Les routeurs sont aussi fondamentaux pour impl&#233;menter des &#8220;guardrails&#8221;, c&#8217;est-&#224;-dire le rejet des entr&#233;es ou des sorties nocives ou invalides, qui peuvent toujours se produire avec un LLM non-d&#233;terministe confront&#233; &#224; des utilisateurs pas toujours bienveillants.</p><div><hr></div><p>Pour concevoir des agents intelligents capables de routage avanc&#233;, la <a href="https://www.lbke.fr/formations/ia/langchain-ia-agentique-python/cpf">formation LangChain &#233;ligible CPF</a> de LBKE couvre les bonnes pratiques d&#8217;orchestration, depuis la d&#233;finition des r&#232;gles de d&#233;cision jusqu&#8217;&#224; l&#8217;int&#233;gration fluide de multiples workflows dans une seule interface.</p>]]></content:encoded></item><item><title><![CDATA[Pourquoi utiliser des templates de prompt dans LangChain (au lieu de Python)]]></title><description><![CDATA[Les templates de prompt ont l'avantage de pouvoir &#234;tre stock&#233;s dans une base de donn&#233;es, contrairement aux fonctions Python.]]></description><link>https://www.formationlangchain.fr/p/pourquoi-utiliser-des-templates-de-1b5</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/pourquoi-utiliser-des-templates-de-1b5</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Fri, 19 Dec 2025 08:00:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371081/5171761c3a9345f9055eba471c8161e5.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Les templates de prompt ont l'avantage de pouvoir &#234;tre stock&#233;s dans une base de donn&#233;es, contrairement aux fonctions Python.</p><p>Formation LangChain et LangGraph &#233;ligible CPF chez @lbke : https://www.lbke.fr/formations/developpeur-llm-langgraph-langchain/cpf</p>]]></content:encoded></item><item><title><![CDATA[Fournir un outil à un LLM (sans MCP)]]></title><description><![CDATA[En LangChain, cela se fait via la fonction "bind_tools" de langchain-core ou l'option "tools" de create_agent.]]></description><link>https://www.formationlangchain.fr/p/fournir-un-outil-a-un-llm-sans-mcp-28a</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/fournir-un-outil-a-un-llm-sans-mcp-28a</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Fri, 19 Dec 2025 08:00:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371080/40864a99d80a6099ef47db3929a242b8.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>On prend rapidement l&#8217;habitude de brancher des serveurs MCP sur des agents IA. Le protocole MCP est tr&#232;s pratique, car il est cl&#233;-en-main : une URL ou une commande suffisent &#224; le configurer. Il est utilis&#233; aussi bien par les d&#233;veloppeurs que sur des plateformes grand public qui acceptent une connexion MCP, par exemple n8n.</p><p>Mais quand on cr&#233;e son propre agent IA en Python, il est plus efficace de connecter manuellement des outils &#224; son agent d&#232;s que cela est possible. Cette approche donne un plus grand contr&#244;le.</p><p>Le module &#8220;langchain-core&#8221; permet de fournir des fonctions Python directement &#224; un LLM, via <a href="https://reference.langchain.com/python/langchain-core/language_models/chat_models/BaseChatModel/bind_tools">la fonction "bind_tools"</a>. Attention, il faudra ensuite g&#233;rer le d&#233;clenchement de l'outil, ce qui est un peu complexe.</p><p>Depuis la v1 de LangChain, il y a encore plus simple. Il est possible de cr&#233;er directement une <a href="https://www.lbke.fr/ressources/ia/boucle-agentique-definition">boucle agentique</a> et de lui associer un ensemble d&#8217;outils, avec l&#8217;option &#8220;tools&#8221;.</p><p>Cette approche fournit un bon &#233;quilibre entre contr&#244;le et facilit&#233; de mise en place. Le protocole MCP reste utile pour se connecter &#224; des outils plus complexes ou des APIs distantes.</p><div><hr></div><p><a href="https://www.lbke.fr/formations/ia/langchain-ia-agentique-python/cpf">Formation LangChain &#233;ligible CPF chez LBKE</a></p>]]></content:encoded></item><item><title><![CDATA[Vibe coding : une aubaine pour les développeurs web et les PME ?]]></title><description><![CDATA[Le vibe coding r&#233;volutionne le prototypage et permet la cr&#233;ation d&#8217;outils ultra-sp&#233;cialis&#233;s en un temps record, en s&#8217;appuyant sur des assistants IA comme Mistral Vibe, Claude Code, OpenAI Codex, Cursor ou encore GitHub Copilot.]]></description><link>https://www.formationlangchain.fr/p/vibe-coding-une-aubaine-pour-les-9c0</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/vibe-coding-une-aubaine-pour-les-9c0</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Thu, 18 Dec 2025 10:30:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371082/1652d41aaf6f77afc76376d33e7c6427.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Le <strong>vibe coding</strong> r&#233;volutionne le prototypage et permet la cr&#233;ation d&#8217;<strong>outils ultra-sp&#233;cialis&#233;s</strong> en un temps record, en s&#8217;appuyant sur des assistants IA comme Mistral Vibe, Claude Code, OpenAI Codex, Cursor ou encore GitHub Copilot. </p><p>Cependant, cette approche ne se substitue pas &#224; l&#8217;expertise humaine : des <strong>d&#233;veloppeurs exp&#233;riment&#233;s</strong> restent indispensables pour valider l&#8217;architecture, corriger les biais, optimiser les performances et finaliser les projets dans les r&#232;gles de l&#8217;art.</p><div><hr></div><p></p><p>Pour concr&#233;tiser vos id&#233;es, <a href="https://www.agencellm.fr/prestations/vibe-coding">L&#8217;Agence LLM</a> prend en charge le d&#233;veloppement de vos prototypes en mode <em>vibe coding</em>. Et pour ma&#238;triser ces outils et booster votre productivit&#233;, la <a href="https://www.lbke.fr/formations/developpeur-augmente-cursor">formation Cursor en 2 jours</a> de LBKE vous apprend &#224; exploiter pleinement les assistants IA tout en gardant le contr&#244;le sur votre code.</p>]]></content:encoded></item><item><title><![CDATA[LangChain : comment gérer une conversation de plusieurs messages]]></title><description><![CDATA[Pour discuter avec un LLM, il faut syst&#233;matiquement lui rappeler toute la conversation &#224; chaque appel.]]></description><link>https://www.formationlangchain.fr/p/langchain-comment-gerer-une-conversation-36c</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/langchain-comment-gerer-une-conversation-36c</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Fri, 12 Dec 2025 08:00:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371085/6f9739b696ce54b1031dc7ffe5521cd6.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Pour discuter avec un LLM, il faut syst&#233;matiquement lui rappeler toute la conversation &#224; chaque appel. Les grands mod&#232;les de langage sont en effet des syst&#232;mes &#8220;stateless&#8221;, sans &#233;tat : ils n&#8217;ont pas de m&#233;moire par d&#233;faut.</p><p>C&#8217;est pour cela qu&#8217;un appel &#224; un LLM via LangChain prend en entr&#233;e une liste de messages, et non uniquement un prompt.</p><p>C&#8217;est aussi pour cela qu&#8217;il faut parfois red&#233;marrer une conversation quand on discute avec un LLM qui semble commencer &#224; se perdre apr&#232;s une longue discussion. On peut typiquement avoir une conversation d&#8217;id&#233;ation pour affiner un prompt, puis une seconde conversation d&#8217;ex&#233;cution pour accomplir la t&#226;che &#224; partir d&#8217;un prompt/contexte propre.</p><p>Exemple d&#8217;une conversation avec un LLM via LangChain en Python (exemple tir&#233; de la <a href="https://docs.langchain.com/oss/python/langchain/quickstart">documentation officielle LangChain</a>) :</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;d035325c-09da-412c-a0ae-7c508edd3a5d&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">agent = create_agent(
    model="claude-sonnet-4-6",
    system_prompt="On va discuter tous les deux",
)
agent.invoke(
    {"messages": [
{"role": "user", "content": "&#199;a va ?"},
{"role": "assistant", "content": "&#199;a va et toi ?"},
{"role": "user", "content": "Moi &#231;a va. Et toi ?"},
]}
)</code></pre></div><p>Dans cet exemple, les messages &#8220;user&#8221; sont ceux de l&#8217;utilisateur, et &#8220;assistant&#8221; ceux de l&#8217;IA. Pour pouvoir avancer dans la conversation, il faut redonner &#224; l&#8217;IA tout l&#8217;historique, y compris ses propres messages !</p><p>Les agents IA ajoutent g&#233;n&#233;ralement une m&#233;moire court terme, qui permet de stocker une conversation &#224; transmettre au LLM &#224; chaque appel. Les frameworks IA tels que LangChain ou Mastra aident aussi &#224; compresser la conversation quand elle devient trop grande pour la fen&#234;tre de contexte (ou votre portefeuille, les tokens ne sont pas gratuits !).</p><p>Pour un usage plus avanc&#233;, on peut aussi modifier artificiellement les r&#233;ponses de l&#8217;IA : c&#8217;est le principe du "<a href="https://www.ibm.com/fr-fr/think/topics/few-shot-prompting">few-shot learning</a>&#8221;. Cependant, cette technique &#233;tant aussi utilis&#233;e pour le <a href="https://simonwillison.net/2024/Mar/5/prompt-injection-jailbreaking/">jailbreaking</a>, on pr&#233;f&#232;re passer par le prompt syst&#232;me directement pour les mod&#232;les plus r&#233;cents.</p><div><hr></div><p><a href="https://www.lbke.fr/formations/ia/langchain-ia-agentique-python/cpf">Formation LangChain et LangGraph &#233;ligible CPF chez LBKE</a></p>]]></content:encoded></item><item><title><![CDATA[Mieux (plus fiable) que le XML pour les LLM : les sorties structurées avec LangChain]]></title><description><![CDATA[Les sorties structur&#233;es exploitent le m&#233;canisme de tool calling des mod&#232;les de langage pour imposer un format JSON strict et pr&#233;visible, &#233;liminant ainsi les risques d&#8217;erreurs li&#233;s &#224; une g&#233;n&#233;ration libre.]]></description><link>https://www.formationlangchain.fr/p/mieux-plus-fiable-que-le-xml-pour-d7d</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/mieux-plus-fiable-que-le-xml-pour-d7d</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Fri, 12 Dec 2025 08:00:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371084/e3592d6a2d538fb4f4915936da124230.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Les <strong>sorties structur&#233;es</strong> exploitent le m&#233;canisme de <strong>tool calling</strong> des mod&#232;les de langage pour imposer un format JSON strict et pr&#233;visible, &#233;liminant ainsi les risques d&#8217;erreurs li&#233;s &#224; une g&#233;n&#233;ration libre. Les mod&#232;les les plus r&#233;cents sont m&#234;mes capables de les g&#233;rer nativement, sans passer par le tool calling, ce qui les rend tr&#232;s efficaces. En effet, utiliser un format JSON contr&#244;l&#233; acc&#233;l&#232;re l&#8217;inf&#233;rence en limitant le nombre de tokens possibles (<a href="https://blog.dottxt.ai/coalescence.html">.txt parle de coalescence</a>).</p><p>Contrairement aux m&#233;thodes traditionnelles de <strong>parsing</strong>, qui reposent sur une interpr&#233;tation parfois fragile du texte brut, cette approche contraint le LLM &#224; produire des donn&#233;es conformes &#224; un sch&#233;ma d&#233;fini. R&#233;sultat : une <strong>fiabilit&#233; accrue</strong>, des int&#233;grations simplifi&#233;es avec d&#8217;autres syst&#232;mes et une r&#233;duction significative des besoins en post-traitement, ce qui en fait une solution privil&#233;gi&#233;e pour les applications critiques en production.</p><div><hr></div><p></p><p>Formation LangChain et LangGraph &#233;ligible CPF chez LBKE : https://www.lbke.fr/formations/developpeur-llm-langgraph-langchain/cpf</p>]]></content:encoded></item><item><title><![CDATA[Les Apps ChatGPT : une disruption dans la façon dont les logiciels se diffusent]]></title><description><![CDATA[L&#8217;arriv&#233;e d&#8217;une marketplace d&#8217;applications au sein de ChatGPT marque un tournant majeur pour les strat&#233;gies digitales, red&#233;finissant les r&#232;gles du marketing web, des SaaS et m&#234;me des applications mobiles.]]></description><link>https://www.formationlangchain.fr/p/google-cest-fini-avec-les-apps-chatgpt-fcc</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/google-cest-fini-avec-les-apps-chatgpt-fcc</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Thu, 11 Dec 2025 10:30:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371086/f1e4b41114ec8e0a23650caa8b5b66c1.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>L&#8217;arriv&#233;e d&#8217;une <strong>marketplace d&#8217;applications</strong> au sein de ChatGPT marque un tournant majeur pour les strat&#233;gies digitales, red&#233;finissant les r&#232;gles du <strong>marketing web</strong>, des <strong>SaaS</strong> et m&#234;me des <strong>applications mobiles</strong>. </p><p>Cette &#233;volution transforme l&#8217;&#233;cosyst&#232;me en permettant aux utilisateurs d&#8217;acc&#233;der &#224; des services directement depuis l&#8217;interface conversationnelle de ChatGPT, r&#233;duisant ainsi la d&#233;pendance aux sites traditionnels ou aux stores d&#8217;applications. </p><p>Dans ce contexte, votre prochaine  application SaaS pourrait bien prendre la forme d&#8217;une <strong>application ChatGPT</strong>, optimis&#233;e pour l&#8217;engagement et la conversion dans un environnement natif et interactif.</p><p>&#192; quand une marketplace Mistral ??</p><p>Cependant, il ne s&#8217;agit pas encore &#224; ce jour d&#8217;une marketplace ouverte. Dans un premier temps, vous pouvez mettre en oeuvre des agents IA, appel&#233;s &#8220;GPT&#8221; sur ChatGPT.</p><p>La possibilit&#233; de les connecter avec des APIs, &#233;ventuellement avec une authentification Oauth, rend possible la cr&#233;ation d&#8217;agent tr&#232;s avanc&#233;s, malgr&#233; la simplicit&#233; apparente de cette interface.</p><p>Des solutions interm&#233;diaires existent. Par exemple, le noeud &#8220;Chat Trigger&#8221; de n8n vous permet de cr&#233;er des <a href="https://n8n.io/ai-agents/">chatbots agents IA</a> facilement int&#233;grable &#224; un site web en JavaScript, connect&#233;s &#224; des automatisation d&#8217;entreprise.</p><p>Votre prochain site web est peut-&#234;tre un agent IA !</p><div><hr></div><p>Pour anticiper cette transition et tirer parti de ce nouvel espace, l&#8217;<a href="https://www.agencellm.fr/prestations/marketplace-chatgpt">Agence LLM par LBKE</a> accompagne les entreprises dans l&#8217;&#233;laboration d&#8217;une <strong>strat&#233;gie marketplace ChatGPT</strong> sur mesure.</p>]]></content:encoded></item><item><title><![CDATA[Appeler une API LLM de façon standardisée avec LangChain]]></title><description><![CDATA[Chaque fournisseur d&#8217;IA, comme OpenAI, Mistral ou Anthropic, propose g&#233;n&#233;ralement une API qui permet aux d&#233;veloppeurs IA d&#8217;int&#233;grer des appels LLM &#224; un code informatique, par exemple pour impl&#233;menter des chatbots et agents IA en tous genres.]]></description><link>https://www.formationlangchain.fr/p/appeler-une-api-llm-de-facon-standardisee-721</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/appeler-une-api-llm-de-facon-standardisee-721</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Fri, 05 Dec 2025 08:00:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371089/98d06a706e8b92a95ddc00fa6db6df9e.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Chaque fournisseur d&#8217;IA, comme OpenAI, Mistral ou Anthropic, propose g&#233;n&#233;ralement une API qui permet aux d&#233;veloppeurs IA d&#8217;int&#233;grer des appels LLM &#224; un code informatique, par exemple pour impl&#233;menter des chatbots et agents IA en tous genres.</p><p>Cependant, que se passe-t-il lorsque l&#8217;on souhaite changer de fournisseur ? Il faudrait potentiellement r&#233;&#233;crire tout le code !</p><p>C&#8217;est ici qu&#8217;intervient l&#8217;&#233;cosyst&#232;me LangChain et notamment la librairie <a href="https://pypi.org/project/langchain-core/">langchain-core</a>. Elle fournit une interface standardis&#233;e pour se connecter &#224; n&#8217;importe quel fournisseur.</p><p>La fonction "invoke" permet d'appeler n'importe quelle API LLM connect&#233;e &#224; LangChain. Plus besoin d'apprendre les sp&#233;cificit&#233;s de chaque SDK (OpenAI, Claude, Gemini etc.).</p><p>Cette fonction s&#8217;appuie sur les &#8220;Runnable&#8221;, une abstraction au coeur du fonctionnement de LangChain mais qui devient moins visible depuis la v1 de LangChain, qui met plut&#244;t l&#8217;accent sur l&#8217;utilisation de la boucle agentique.</p><p>Attention &#224; ne pas confondre framework LLM et gateway : OpenRouter et LiteLLM vous permettent aussi de vous connecter &#224; plusieurs fournisseurs LLM, mais sont positionn&#233;s c&#244;t&#233; &#8220;backend&#8221; : LangChain reste n&#233;cessaire pour int&#233;grer un LLM &#224; votre code.</p>]]></content:encoded></item><item><title><![CDATA[Dev IA et vibe codeur : ne plus les confondre !]]></title><description><![CDATA[L&#8217;intelligence artificielle impacte significativement le m&#233;tier de d&#233;veloppeur informatique, mais pas toujours de la m&#234;me fa&#231;on.]]></description><link>https://www.formationlangchain.fr/p/dev-ia-et-vibe-codeur-ne-plus-les-703</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/dev-ia-et-vibe-codeur-ne-plus-les-703</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Thu, 04 Dec 2025 10:30:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371090/a04736a3d47ac68b611b0ab92f91de39.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>L&#8217;intelligence artificielle impacte significativement le m&#233;tier de d&#233;veloppeur informatique, mais pas toujours de la m&#234;me fa&#231;on.</p><p>D&#8217;un c&#244;t&#233;, le <strong>d&#233;veloppeur IA</strong> con&#231;oit des <strong>syst&#232;mes agentiques</strong> bas&#233;s sur l&#8217;IA g&#233;n&#233;rative, architecturant des solutions autonomes capables de raisonner, d&#8217;agir et de s&#8217;adapter &#224; des cas d&#8217;usage complexes. Il utilise des technologies telles que LangChain, Vercel AI SDK ou &#233;quivalents pour int&#233;grer des appels IA au sein de programmes informatiques.</p><p>De l&#8217;autre, le <strong>vibe codeur ou d&#233;veloppeur augment&#233;</strong> exploite des <strong>assistants de code</strong> comme Mistral Vibe, GitHub Copilot, Cursor ou Claude Code pour gagner en productivit&#233;. Cette comp&#233;tence lui permet de prototyper rapidement des applications, mais le vibe codeur reste d&#233;pendant d&#8217;outils externes.</p><p>Les d&#233;veloppeurs informatiques peuvent donc &#234;tre soit producteurs d&#8217;IA, soit utilisateurs d&#8217;IA. </p><p>Dans les deux cas, il s&#8217;agit d&#8217;une utilisation avanc&#233;e de l&#8217;intelligence artificielle de nature &#224; disrupter le fonctionnement des entreprises. Les agents IA, qui combinent du code et des appels LLM pour la prise de d&#233;cision, commencent &#224; d&#233;montrer une capacit&#233; &#224; traiter des t&#226;ches complexes : production de code mais aussi bureautique, analyse m&#233;dicale, veille commerciale&#8230;</p><div><hr></div><p><a href="https://www.agencellm.fr/prestations/vibe-coding">L'Agence LLM</a> par LBKE propose des prestations de <strong>vibe coding</strong> pour d&#233;velopper vos prototypes en un temps record. Si vous souhaitez ma&#238;triser ces assistants et optimiser votre workflow, la <a href="https://www.lbke.fr/formations/developpeur-augmente-cursor">formation Cursor en 2 jours</a> de LBKE ou la nouvelle <a href="https://www.lbke.fr/formations/developpeur-augmente-cursor">formation Claude Code</a> vous donneront les cl&#233;s pour coder plus efficacement avec l&#8217;IA.</p>]]></content:encoded></item><item><title><![CDATA[LangGraph ou Mastra : choisissez le meilleur framework pour l'IA en JavaScript]]></title><description><![CDATA[LangGraph s&#8217;impose comme une r&#233;f&#233;rence pour les d&#233;veloppeurs Python souhaitant exploiter l&#8217;IA agentique.]]></description><link>https://www.formationlangchain.fr/p/langgraph-ou-mastra-choisissez-le-8df</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/langgraph-ou-mastra-choisissez-le-8df</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Tue, 02 Dec 2025 19:00:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371091/8142ed7785127274b396695b4aad4a42.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>LangGraph s&#8217;impose comme une r&#233;f&#233;rence pour les d&#233;veloppeurs Python souhaitant exploiter l&#8217;IA agentique. LangChain et LangGraph existent tous deux en version JavaScript, avec une API relativement similaire.</p><p>Cependant, les professionnels travaillant avec <strong>JavaScript</strong> disposent d&#8217;une alternative tout aussi performante : <strong>Mastra</strong>. Il y a donc de la comp&#233;tition !</p><p>Le framework Mastra, construit sur la base du <strong>Vercel AI SDK</strong> est sp&#233;cialement con&#231;u pour une int&#233;gration fluide des LLM dans des applications <strong>SaaS,</strong> impl&#233;ment&#233;es par exemple avec<strong> Next.js et React</strong>.</p><p>Il n&#8217;y a pas de mauvais choix, car les possibilit&#233;s de cr&#233;ation d&#8217;agents IA offertes par le combo LangChain et LangGraph sont tr&#232;s proches de celles offertes par Mastra : </p><ul><li><p>Cr&#233;ation de boucles agentiques</p></li><li><p>Cr&#233;ation d&#8217;outils</p></li><li><p>Cr&#233;ation de workflows</p></li></ul><p>La diff&#233;rence se situe surtout dans l&#8217;exp&#233;rience d&#233;veloppeur : Mastra est globalement plus facile &#224; prendre en main que LangChain et LangGraph ! </p><p>Par exemple, le studio de d&#233;veloppement Mastra est open source, ce qui facilite le d&#233;ploiement d&#8217;une plateforme agentique en auto-h&#233;bergement. Il est aussi plus facile de transformer un agent Mastra en serveur MCP.</p><p>C&#8217;est pourquoi nous avons choisi Mastra pour nos formations IA en JavaScript chez LBKE, tout en conservant LangChain et LangGraph pour les d&#233;veloppeurs Python.</p><div><hr></div><p>Team JavaScript ? Retrouvez notre <a href="https://www.lbke.fr/formations/ia/mastra-ia-agentique-javascript">formation Mastra et Vercel AI SDK &#233;ligible CPF.</a> Team Python ? Retrouvrez notre formation <a href="https://www.lbke.fr/formations/ia/langchain-ia-agentique-python/cpf">formation LangChain et LangGraph</a>.</p>]]></content:encoded></item><item><title><![CDATA[Stockez vos clés d'API LLM dans Google Colab avec le menu Secrets]]></title><description><![CDATA[Le menu &#8220;Secrets&#8221; dans Google Colab offre une solution s&#233;curis&#233;e pour enregistrer et prot&#233;ger vos cl&#233;s d&#8217;API, qu&#8217;il s&#8217;agisse de celles de Mistral, ChatGPT, Claude, Gemini ou OpenRouter. Cette fonctionnalit&#233; &#233;vite d&#8217;exposer directement vos cl&#233;s d&#8217;API dans le code (un poncif du vibe coding !), renfor&#231;ant ainsi la s&#233;curit&#233; de vos projets.]]></description><link>https://www.formationlangchain.fr/p/stockez-vos-cles-dapi-llm-dans-google-d71</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/stockez-vos-cles-dapi-llm-dans-google-d71</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Fri, 28 Nov 2025 08:00:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371092/7ad50e88405cb61d44d7b47d20975cda.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Le menu <strong>&#8220;Secrets&#8221;</strong> dans Google Colab offre une solution s&#233;curis&#233;e pour enregistrer et prot&#233;ger vos cl&#233;s d&#8217;API, qu&#8217;il s&#8217;agisse de celles de <strong>Mistral, ChatGPT, Claude, Gemini ou OpenRouter</strong>. Cette fonctionnalit&#233; &#233;vite d&#8217;exposer directement vos cl&#233;s d&#8217;API dans le code (un poncif du vibe coding !), renfor&#231;ant ainsi la s&#233;curit&#233; de vos projets. </p><p>Pour les utiliser dans un notebook, il suffit d&#8217;importer le paquet <code>google.colab</code> et d&#8217;acc&#233;der aux donn&#233;es via le module <code>userdata</code>, ce qui permet de charger les cl&#233;s de mani&#232;re dynamique et contr&#244;l&#233;e.</p><p>Pour aller plus loin dans la ma&#238;trise des outils IA et l&#8217;int&#233;gration s&#233;curis&#233;e des mod&#232;les de langage, la <a href="https://www.lbke.fr/formations/developpeur-llm-langgraph-langchain/cpf">formation LangChain et LangGraph &#233;ligible CPF</a> propos&#233;e par LBKE permet d&#8217;acqu&#233;rir des comp&#233;tences avanc&#233;es en d&#233;veloppement d&#8217;agents autonomes et en orchestration de LLM, tout en respectant les bonnes pratiques de s&#233;curit&#233; et d&#8217;optimisation.</p>]]></content:encoded></item><item><title><![CDATA[Les agences web deviennent des agences IA]]></title><description><![CDATA[L&#8217;IA g&#233;n&#233;rative d&#233;mocratise la cr&#233;ation de syst&#232;mes d&#8217;intelligence artificielle.]]></description><link>https://www.formationlangchain.fr/p/les-agences-web-deviennent-des-agences-400</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/les-agences-web-deviennent-des-agences-400</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Thu, 27 Nov 2025 10:30:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371093/1f8947a6ad84df16f01104e9ea95c197.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>L&#8217;IA g&#233;n&#233;rative d&#233;mocratise la cr&#233;ation de syst&#232;mes d&#8217;intelligence artificielle. Plus besoin de cr&#233;er un nouveau mod&#232;le d&#8217;IA pour automatiser une t&#226;che, on peut prompter un grand mod&#232;le de langage LLM en langage naturel pour aboutir &#224; des r&#233;sultats tout aussi viables.</p><p>Cela change le quotidien des professionnels mais aussi celui des prestataires en informatiques. </p><p>Les agences sp&#233;cialis&#233;es en intelligence artificielle ou &#8220;agences IA&#8221; repr&#233;sentent une &#233;volution des entreprises de services du num&#233;rique (ESN) et des agences web. </p><p>Elles sont ax&#233;es sur les solutions agentiques et les mod&#232;les g&#233;n&#233;ratifs, c&#8217;est-&#224;-dire la rencontre <a href="https://blogbinaire.larecherche.fr/2025/10/03/le-futur-de-lintelligence-artificielle-se-code-aujourdhui/">entre le code et l&#8217;IA</a>. </p><p>Exemple de prestations : </p><ul><li><p>Vibe coding de prototypes</p></li><li><p>Strat&#233;gie marketplace ChatGPT</p></li><li><p>D&#233;veloppement web appuy&#233; par l&#8217;IA</p></li><li><p>Automatisation IA : n8n, PowerAutomate</p></li><li><p>Cr&#233;ation d&#8217;agents IA : LangChain, Mastra</p></li><li><p>Cr&#233;ation de chatbots</p></li></ul><p>Les nouveaux m&#233;tiers de l&#8217;IA comme celui de <a href="https://www.formationlangchain.fr/p/le-nouveau-metier-de-developpeur-554">d&#233;veloppeur ou d&#233;veloppeuse IA</a> sont encore en cours de d&#233;finition. Il faut donc &#234;tre prudent quand vous choisissez une agence IA ou agence LLM : v&#233;rifiez qu&#8217;elle dispose bien des comp&#233;tences ad&#233;quates en IA et en d&#233;veloppement informatique !</p><p>Pour des projets comme le RAG, les chatbots ou l&#8217;automatisation intelligente, <a href="https://www.agencellm.fr/">l&#8217;Agence LLM par LBKE</a> propose des prestations sur mesure adapt&#233;es aux besoins des entreprises.</p>]]></content:encoded></item><item><title><![CDATA[Installer LangChain dans Google Colab avec %pip]]></title><description><![CDATA[Google Colab est un outil gratuit pour &#233;crire des programmes Python, sous la forme de notebooks combinant code et prise de note.]]></description><link>https://www.formationlangchain.fr/p/installer-langchain-dans-google-colab-d80</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/installer-langchain-dans-google-colab-d80</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Fri, 21 Nov 2025 08:00:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371095/ec733b64373c2901edff66210d5c43eb.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Google Colab est un outil gratuit pour &#233;crire des programmes Python, sous la forme de notebooks combinant code et prise de note. Il s&#8217;appuie sur la technologie open source Jupyter. Parfait pour l&#8217;apprentissage de LangChain et de l&#8217;IA agentique !</p><p>Dans un notebook Jupyter ou Google Colab, la commande <code>%pip</code> simplifie l&#8217;installation de biblioth&#232;ques Python en ex&#233;cutant pip directement depuis l&#8217;environnement, sans avoir &#224; passer par un terminal externe. </p><p>Cette fonctionnalit&#233; est particuli&#232;rement utile pour tester rapidement des d&#233;pendances, par exemple des int&#233;grations compatibles avec l&#8217;API <a href="https://reference.langchain.com/python/langchain-core">langchain-core</a>.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;f91dfd7f-dc1f-4cb2-bd9d-c9f7dd8b07c4&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">%pip install langchain-openai</code></pre></div><p>Pourquoi utiliser l&#8217;int&#233;gration OpenAI ? Car l&#8217;API OpenAI est utilis&#233;e comme un standard par des outils alternatifs comme Ollama et OpenRouter, qui vous permettent d&#8217;utiliser des mod&#232;les locaux, open source ou h&#233;berg&#233;s par des providers alternatifs.</p><div><hr></div><p>Pour ma&#238;triser ces techniques et aller plus loin dans la cr&#233;ation d&#8217;agents IA avec <strong>LangChain</strong>, d&#233;couvrez notre formation LangChain &#233;ligible au CPF : <a href="https://www.lbke.fr/formations/ia/langchain-ia-agentique-python/cpf">Formation D&#233;veloppeur LLM LangGraph &#8211; LBKE</a></p>]]></content:encoded></item><item><title><![CDATA[Le nouveau métier de développeur IA : qu'est-ce que c'est ?]]></title><description><![CDATA[Les professionnels du &#8220;d&#233;veloppement IA&#8221; con&#231;oivent les applications innovantes qui exploitent les grands mod&#232;les de langage, qu&#8217;il s&#8217;agisse d&#8217;agents autonomes, de moteurs de recherche s&#233;mantiques (RAG) ou d&#8217;interfaces conversationnelles.]]></description><link>https://www.formationlangchain.fr/p/le-nouveau-metier-de-developpeur-554</link><guid isPermaLink="false">https://www.formationlangchain.fr/p/le-nouveau-metier-de-developpeur-554</guid><dc:creator><![CDATA[Eric Burel]]></dc:creator><pubDate>Thu, 20 Nov 2025 10:30:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188371096/95e0e49f49f906f1bb679ee242f5e559.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Les professionnels du &#8220;d&#233;veloppement IA&#8221; con&#231;oivent les applications innovantes qui exploitent les grands mod&#232;les de langage, qu&#8217;il s&#8217;agisse d&#8217;agents autonomes, de moteurs de recherche s&#233;mantiques (RAG) ou d&#8217;interfaces conversationnelles. </p><p>Ces solutions transforment les interactions avec nos ordinateurs et ouvrent de nouvelles perspectives d&#8217;automatisation de processus en entreprise. Les agents IA font beaucoup parler d&#8217;eux d&#233;but 2026, et &#224; raison. </p><p>Le d&#233;veloppeur ou la d&#233;veloppeuse IA se situe &#224; la fronti&#232;re entre g&#233;nie logiciel et IA. Son r&#244;le est de se saisir des capacit&#233;s offertes par l&#8217;IA g&#233;n&#233;rative, notamment pour la compr&#233;hension de contenu texte (texte libre, code, configurations JSON&#8230;) et la prise de d&#233;cision &#224; partir d&#8217;un prompt.</p><p>Le d&#233;veloppeur IA peut coder en Python avec LangChai, en JavaScript avec le AI SDK, ou encore &#234;tre adepte du no-code : une solution comme n8n permet de cr&#233;er des syst&#232;mes IA tr&#232;s puissants !</p><div><hr></div><p>Pour se former &#224; ces comp&#233;tences recherch&#233;es, LBKE propose des formations &#224; l&#8217;IA agentique via les technologies <strong>LangChain</strong> et <strong>Mastra</strong> : <a href="https://www.lbke.fr/formations">Explorer les formations &#8211; LBKE</a> </p>]]></content:encoded></item></channel></rss>