Architecture de LangChain et LCEL
Composants de LangChain, syntaxe de tubes LCEL, chaînes, interfaces exécutables, chaînes diffusées en continu.
Architecture de LangChain et LCEL est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Qu’est-ce que LangChain ?
LangChain est un cadre destiné à créer des applications LLM en composant des éléments réutilisables : invites, modèles, analyseurs, outils de récupération et mémoire. Au lieu de connecter manuellement les appels d’API, vous créez des chaînes qui transmettent les données d’un composant au suivant.
pip install langchain langchain-openaiLes blocs de construction fondamentaux
Trois composants apparaissent dans presque toutes les chaînes : un PromptTemplate (qui met l’entrée en forme pour créer une invite), un modèle conversationnel (le LLM) et un analyseur de sortie (qui nettoie le résultat). LangChain les relie au sein d’une chaîne de traitement.
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParserCréation d’un modèle d’invite
Un modèle d’invite contient des espaces réservés remplis lors de l’exécution. Utilisez la syntaxe {variable}. Lorsque vous invoquez la chaîne avec un dictionnaire, les valeurs correspondant à ces clés sont insérées.
prompt = ChatPromptTemplate.from_template(
"Explain {topic} to a {audience} in two sentences."
)LCEL : syntaxe de chaînage
LCEL (langage d’expressions de LangChain) compose les composants avec l’opérateur de canalisation |. La sortie de chaque étape est transmise à la suivante, de gauche à droite, comme dans une chaîne de traitement Unix.
model = ChatOpenAI(model="gpt-4o")
chain = prompt | model | StrOutputParser()Pourquoi utiliser StrOutputParser ?
Un modèle conversationnel renvoie un objet message, et non une simple chaîne de caractères. StrOutputParser() extrait le texte .content afin que la chaîne produise une chaîne propre. Sans lui, vous récupéreriez un message structuré.
Invocation de la chaîne
Exécutez la chaîne avec chain.invoke() en transmettant un dictionnaire qui remplit les variables du modèle. Le résultat est la chaîne de sortie analysée.
result = chain.invoke({"topic": "vectors", "audience": "beginner"})
print(result)Diffusion en continu d’une chaîne
Pour obtenir une sortie en temps réel, appelez chain.stream() au lieu de invoke. Cette méthode renvoie un générateur qui produit des fragments de sortie au fur et à mesure que le modèle les génère, comme lors de la diffusion en continu d’une API brute.
for chunk in chain.stream({"topic": "RAG", "audience": "engineer"}):
print(chunk, end="", flush=True)Traitement par lots de plusieurs entrées
Traitez efficacement de nombreuses entrées avec chain.batch(). Transmettez une liste de dictionnaires d’entrée : LangChain les exécute simultanément et renvoie une liste de résultats dans le même ordre.
inputs = [
{"topic": "loops", "audience": "kid"},
{"topic": "recursion", "audience": "kid"}
]
results = chain.batch(inputs)RunnablePassthrough
RunnablePassthrough transmet son entrée sans modification. Il est indispensable lorsqu’une chaîne doit conserver l’entrée d’origine en plus d’une valeur transformée, ce qui est fréquent dans RAG lorsque vous transmettez à la fois la question et le contexte récupéré.
from langchain_core.runnables import RunnablePassthrough
chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt | model | StrOutputParser()
)Composition avec des dictionnaires
Lorsqu’une étape est un dictionnaire, chaque valeur est traitée en parallèle et les résultats constituent l’entrée de l’étape suivante. Cela permet de créer les invites à plusieurs entrées qui alimentent les chaînes de récupération, en associant chaque clé à un exécutable ou à un transfert direct.
parallel = {
"context": retriever,
"question": RunnablePassthrough()
}
# parallel feeds {"context": ..., "question": ...} downstreamPourquoi LCEL est important
Les chaînes LCEL offrent gratuitement la diffusion en continu, le traitement par lots et l’exécution asynchrone, sont faciles à lire et s’assemblent comme des briques Lego. La même syntaxe de chaînage s’adapte d’une invite sur une ligne à un système RAG complet.
Vérification rapide
Vérifiez votre compréhension de LCEL.
Récapitulatif : architecture et LCEL
Vous avez composé des composants LangChain avec l’opérateur de canalisation : prompt | model | StrOutputParser(). Vous avez exécuté les chaînes avec invoke, utilisé la diffusion en continu avec stream et traité de nombreuses entrées avec batch. RunnablePassthrough et la composition de dictionnaires vous permettent de créer des chaînes de traitement à plusieurs entrées pour RAG.
Questions Fréquemment Posées
La leçon « Architecture de LangChain et LCEL » est-elle gratuite ?
Oui — le texte complet de « Architecture de LangChain et LCEL » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Architecture de LangChain et LCEL » ?
Composants de LangChain, syntaxe de tubes LCEL, chaînes, interfaces exécutables, chaînes diffusées en continu. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Architecture de LangChain et LCEL » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Architecture de LangChain et LCEL
- Charger, découper et plonger des documents
- Bases vectorielles : Chroma et FAISS
- Créer un système de questions-réponses RAG de bout en bout