LangChain, les abstractions qui comptent
Pourquoi apprendre LangChain (mĂȘme sans l'utiliser partout)
LangChain est la lingua franca de l'Ă©cosystĂšme LLM Python : ses abstractions structurent la documentation, les tutoriels, les intĂ©grations â et LangGraph est bĂąti sur son socle (langchain-core). Comprendre sa grammaire, c'est pouvoir lire 90 % du code IA qui circule.
Les briques, de bas en haut
Messages et chat models
from langchain_anthropic import ChatAnthropic
from langchain_core.messages import SystemMessage, HumanMessage
llm = ChatAnthropic(model="claude-sonnet-4-6")
reponse = await llm.ainvoke([
SystemMessage("Tu es un assistant de vente B2B."),
HumanMessage("Reformule : 'BOUL. INOX 50MM x100'"),
])
BaseChatModel est l'interface unique multi-providers : changer Anthropic pour Mistral = changer une ligne. Les messages (System/Human/AI/ToolMessage) sont le vocabulaire commun â tu les retrouveras tels quels dans le state LangGraph.
Prompts et output parsers
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
("system", "Tu extrais des lignes de commande."),
("human", "{document}"),
])
Les templates rendent les prompts paramétrés et versionnables. CÎté sortie, with_structured_output(MonModelePydantic) fait ce que tu as vu au module 4 (tool forcé + validation) en une ligne.
LCEL : composer avec |
LangChain Expression Language : tout est un Runnable qui se pipe :
chain = prompt | llm.with_structured_output(StructuredOrder)
result = await chain.ainvoke({"document": texte})
La chaĂźne obtenue sait faire invoke, ainvoke, stream, batch â la composition apporte gratuitement le streaming et le parallĂ©lisme.
Tools
from langchain_core.tools import tool
@tool
async def get_stock(sku: str) -> int:
"""Retourne le stock disponible pour un SKU.""" # la docstring EST la description
...
llm_with_tools = llm.bind_tools([get_stock])
Le dĂ©corateur dĂ©rive le schĂ©ma JSON des type hints â la version framework du ToolDefinition maison du module 4.
L'intĂ©rĂȘt central de BaseChatModel :