Le Labo AI
Leçon 2 sur 5 · 11 min

LangChain et LlamaIndex — les frameworks essentiels

Présentation des deux frameworks principaux pour construire des applications LLM. Quand utiliser LangChain, quand utiliser LlamaIndex, et comment ils s'articulent dans une architecture d'agent.

Pourquoi un framework ?

Quand vous voulez construire un agent, vous pourriez tout faire à la main : appeler directement l'API OpenAI, gérer manuellement la mémoire, écrire votre propre gestionnaire d'outils, implémenter la boucle ReAct...

C'est faisable. C'est aussi 10x plus de travail que nécessaire. Les frameworks LangChain et LlamaIndex font ce travail à votre place.


LangChain — le framework généraliste

LangChain est le framework le plus populaire pour construire des applications LLM. Il fournit des abstractions pour :

  • Chains — des séquences d'opérations LLM
  • Agents — des LLMs qui utilisent des outils de manière autonome
  • Memory — différents types de mémoire (conversation, vectorielle)
  • Tools — intégrations avec des centaines d'outils et APIs
  • Callbacks — observabilité et logging

Installation et exemple minimal

pip install langchain langchain-openai
from langchain_openai import ChatOpenAI
from langchain.schema import HumanMessage

llm = ChatOpenAI(model="gpt-4o", temperature=0)
response = llm.invoke([HumanMessage(content="Explique le RAG en 2 phrases.")])
print(response.content)

Créer un agent avec des outils

from langchain_openai import ChatOpenAI
from langchain.agents import create_react_agent, AgentExecutor
from langchain_community.tools import DuckDuckGoSearchRun
from langchain import hub

# Outils disponibles pour l'agent
tools = [DuckDuckGoSearchRun()]

# Modèle
llm = ChatOpenAI(model="gpt-4o", temperature=0)

# Prompt ReAct standard (depuis LangChain Hub)
prompt = hub.pull("hwchase17/react")

# Création de l'agent
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# Exécution
result = agent_executor.invoke({
    "input": "Quelles sont les 3 dernières actualités sur Mistral AI ?"
})
print(result["output"])

Le verbose=True vous permet de voir exactement ce que l'agent pense et fait à chaque étape — indispensable pour le debug.


LangChain Expression Language (LCEL)

La version moderne de LangChain utilise LCEL — une syntaxe pipe (|) pour chaîner les composants :

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

prompt = ChatPromptTemplate.from_template(
    "Résume ce texte en 3 points : {texte}"
)
llm = ChatOpenAI(model="gpt-4o")
parser = StrOutputParser()

# La chaîne : prompt → LLM → parser
chain = prompt | llm | parser

result = chain.invoke({"texte": "Votre texte ici..."})

LlamaIndex — le spécialiste des données

LlamaIndex (anciennement GPT Index) est optimisé pour un cas d'usage précis : connecter des LLMs à vos propres données.

Là où LangChain est généraliste, LlamaIndex excelle pour :

  • Indexer des documents (PDF, Word, Notion, bases de données)
  • Construire des pipelines RAG (voir leçon suivante)
  • Requêter des données structurées avec du langage naturel

Exemple — indexer un PDF et l'interroger

pip install llama-index llama-index-llms-openai
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.llms.openai import OpenAI

# Charger les documents d'un dossier
documents = SimpleDirectoryReader("./mes_docs/").load_data()

# Créer un index vectoriel
index = VectorStoreIndex.from_documents(documents)

# Créer un moteur de requête
query_engine = index.as_query_engine(
    llm=OpenAI(model="gpt-4o")
)

# Poser une question
response = query_engine.query(
    "Quelles sont les clauses de résiliation de ce contrat ?"
)
print(response)

Quand utiliser lequel ?

Cas d'usageFramework recommandé
Agent avec outils externes (web, API, email)LangChain
RAG sur vos documents internesLlamaIndex
Chaînes de traitement complexesLangChain (LCEL)
Chatbot sur base de connaissancesLlamaIndex
Multi-agentsLangChain (LangGraph)
Analyse de données non structuréesLlamaIndex

Bonne nouvelle : les deux s'intègrent facilement. Un agent LangChain peut utiliser un index LlamaIndex comme outil.


L'écosystème en 2025

LangChain a évolué vers LangGraph pour les agents complexes (graphes d'états plutôt que chaînes linéaires). Si vous démarrez un projet agent en 2025, regardez LangGraph directement — c'est la direction que prend l'écosystème.

LangSmith — la plateforme d'observabilité de LangChain, pour tracer, évaluer et déboguer vos agents en production.


Ce qu'il faut retenir

  • LangChain = framework généraliste pour agents, chaînes, et intégrations d'outils
  • LlamaIndex = spécialiste de l'indexation de documents et du RAG
  • LCEL (LangChain) permet de chaîner les composants de manière lisible
  • LangGraph est l'évolution pour les agents complexes avec états
  • Les deux frameworks s'intègrent — choisissez selon votre cas d'usage principal

Dans la prochaine leçon : le RAG (Retrieval Augmented Generation) — comment donner de la mémoire à votre agent sur vos propres données.

?

Testez vos connaissances

4 questions · il faut 4/4 pour valider la leçon

1.Pour quel cas d'usage LlamaIndex est-il spécialement optimisé ?

2.Que permet la syntaxe pipe (|) du LangChain Expression Language (LCEL) ?

3.Quelle est l'évolution de LangChain recommandée pour construire des agents complexes en 2025 ?

4.Peut-on utiliser LangChain et LlamaIndex ensemble dans un même projet ?

Répondez aux 4 questions restantes