Les subtilités des LangChain Chains : libérer la puissance des workflows IA modernes
Updated on
LangChain continue d’évoluer rapidement, et les chains restent l’un de ses concepts les plus essentiels. Dans ce guide mis à jour, nous explorons ce que signifient réellement les LangChain Chains en 2025, comment elles fonctionnent avec le nouveau LCEL (LangChain Expression Language), et comment elles aident les développeurs à construire des applications IA fiables, multi‑étapes.
Cet article met à jour tous les exemples selon les standards modernes de LangChain, en remplaçant les classes obsolètes comme LLMChain par des Runnables, PromptTemplate, ChatModels et des pipelines séquentiels.
Qu’est-ce que LangChain ? (Vue d’ensemble 2025)
LangChain est un framework Python/JavaScript puissant qui aide les développeurs à construire des applications IA en utilisant :
- Large language models (LLMs)
- Prompt templates
- Memory
- Tools & agents
- Retrieval (RAG)
- Workflow graphs (LangGraph)
Le concept le plus emblématique de LangChain est la Chain :
un pipeline réutilisable et composable qui fait circuler les données étape par étape à travers des prompts, des modèles, des outils, des transformations et des output parsers.
📘 Besoin d’une introduction de base ? Lisez notre article d’introduction à LangChain.
Que sont les LangChain Chains ?
En 2023, les chains étaient généralement créées avec LLMChain et des classes Python personnalisées.
En 2025, la méthode recommandée est LCEL, qui utilise une syntaxe de pipeline fonctionnelle, claire :
chain = prompt | model | output_parserUne Chain est simplement :
- Une séquence d’étapes
- Reliées en une seule unité appelable
- Où la sortie d’une étape devient l’entrée de la suivante
LangChain propose désormais :
- Simple Chains (un seul modèle + un prompt)
- Sequential Chains (plusieurs étapes)
- Parallel Chains (workflows avec branchements)
- Agents (chains dynamiques qui choisissent des tools)
Passons en revue des exemples modernes.
Basic Chains (mise à jour pour 2025)
Une basic chain déclenche un seul modèle avec un seul prompt.
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
prompt = PromptTemplate.from_template(
"Describe a perfect day in {city}."
)
model = ChatOpenAI(model="gpt-4o-mini")
chain = prompt | model
chain.invoke({"city": "Paris"})Ce qui se passe
- PromptTemplate formate
"Describe a perfect day in Paris." - Le LLM génère la description
- La sortie est renvoyée comme ChatMessage ou string, selon la configuration
C’est la chain la plus simple possible dans LangChain moderne.
Advanced Chains : pipelines multi‑étapes
Les multi‑step chains combinent plusieurs opérations.
Exemple :
Summarize → Translate avec LCEL :
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
summarize_prompt = PromptTemplate.from_template(
"Summarize this text:\n\n{text}"
)
translate_prompt = PromptTemplate.from_template(
"Translate this into Spanish:\n\n{summary}"
)
model = ChatOpenAI(model="gpt-4o-mini")
summarize_chain = summarize_prompt | model
translate_chain = translate_prompt | model
full_chain = summarize_chain | (lambda x: {"summary": x.content}) | translate_chain
full_chain.invoke({"text": "Climate change is causing rapid ocean warming..."})Pourquoi c’est important
Cela reflète les bonnes pratiques LangChain modernes :
- Runnables au lieu des anciennes classes de chain
- Composition fonctionnelle avec
| - Mappage des données intermédiaires avec des fonctions Python
Chains sans LLM (pipelines de transformation et de nettoyage)
Toutes les chains n’ont pas besoin d’un LLM. Vous pouvez créer des pipelines de pré‑traitement ou de post‑traitement.
Exemple : trim whitespace → conversion en lowercase → envoi au LLM :
def cleanup(text):
return text.strip().lower()
chain = cleanup | model
chain(" WHAT is the WEATHER LIKE? ")Toute fonction Python peut être insérée dans une chain tant qu’elle accepte et renvoie des données sérialisables.
Sequential Chains (remplace SimpleSequentialChain)
SimpleSequentialChain et SequentialChain sont dépréciées.
L’équivalent LCEL est simplement :
chain = step1 | step2 | step3Exemple :
Nettoyer le prompt → réécrire → répondre
from langchain_openai import ChatOpenAI
clean = lambda x: x.strip()
rewrite_prompt = PromptTemplate.from_template(
"Rewrite this more clearly: {text}"
)
answer_prompt = PromptTemplate.from_template(
"Answer this question: {question}"
)
model = ChatOpenAI(model="gpt-4o-mini")
rewrite_chain = rewrite_prompt | model
answer_chain = answer_prompt | model
chain = clean | (lambda x: {"text": x}) | rewrite_chain | (lambda x: {"question": x.content}) | answer_chain
chain.invoke(" What is LangChain used for? ")C’est le remplacement moderne de SimpleSequentialChain.
Rôle des agents dans LangChain (édition 2025)
Les agents permettent aux LLMs de choisir des tools dynamiquement :
- Search engines
- Code execution
- Calculators
- APIs
- Retrievers
- Fonctions personnalisées
Exemple (syntaxe moderne) :
from langchain.agents import AgentExecutor, load_tools, create_react_agent
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini")
tools = load_tools(["llm-math"], llm=llm)
agent = create_react_agent(llm, tools)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
executor.invoke({"input": "If I'm half my dad's age and he'll be 60 next year, how old am I?"})Les agents sont particulièrement adaptés lorsque la tâche nécessite :
- Du reasoning
- Le choix de tools appropriés
- Plusieurs étapes de décision
Pour des workflows fixes, une simple chain est souvent préférable.
Exemple pratique : un workflow de recommandation de films (mis à jour)
Nous modernisons votre exemple de chain à deux LLMs en utilisant LCEL.
Étape 1 — Demander à l’utilisateur ses genres préférés
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
ask_prompt = PromptTemplate.from_template(
"Ask the user about their favorite movie genres."
)
ask_chain = ask_prompt | ChatOpenAI(model="gpt-4o-mini")Étape 2 — Recommander des films
recommend_prompt = PromptTemplate.from_template(
"Based on these genres: {genres}, recommend 5 movies."
)
recommend_chain = recommend_prompt | ChatOpenAI(model="gpt-4o-mini")Combiner les deux
chain = ask_chain | (lambda x: {"genres": x.content}) | recommend_chain
chain.invoke({})Ajouter de la memory (version moderne)
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(return_messages=True)
# pipelines can load memory before passing to next stepConclusion
LangChain moderne (2024–2025) simplifie plus que jamais la création de workflows IA à l’échelle grâce aux pipelines LCEL, aux Runnables et aux agents. Que vous souhaitiez :
- Prétraiter du texte
- Construire des workflows multi‑étapes
- Intégrer des tools
- Créer des agents dynamiques
LangChain fournit les blocs de construction pour tout connecter de manière propre et fiable.
Expérimentez librement : des simple chains peuvent rapidement évoluer en puissantes applications IA.
FAQ (mise à jour)
-
Qu’est-ce que LangChain ?
LangChain est un framework pour construire des applications IA à l’aide de prompts, de modèles, de tools, de memory et de workflow graphs. -
Qu’est-ce qui remplace SimpleSequentialChain ?
Les pipelines LCEL utilisant l’opérateur|pour le traitement séquentiel. -
Comment ajouter de la memory ?
UtilisezConversationBufferMemory,SummaryMemoryou une memory personnalisée injectée dans votre chain. -
Les agents sont-ils toujours utiles ?
Oui — lorsqu’une sélection dynamique de tools est nécessaire. Pour des étapes fixes, les chains sont plus simples. -
Où en savoir plus ?
Consultez la documentation LangChain ou explorez LangGraph pour l’orchestration d’agents basée sur des workflows.