Récapitulation et examen final
Dix modules pour partir d'un premier appel chat et arriver à un assistant de notes de frais outillé, tracé et testable. Voici le cours condensé, les fils qui le traversent, et l'annonce de l'examen.
Le cours d'un coup d'œil
| Module | L'essentiel à retenir |
|---|---|
| 1. Apport de LangChain | Interfaces communes aux fournisseurs ; utile dès la deuxième brique, superflu pour un appel isolé |
| 2. Modèles, consignes, analyseurs | with_structured_output(pydantic) est la voie par défaut ; temperature=0 en extraction |
| 3. Composition de chaînes | | compose ; RunnablePassthrough.assign enrichit ; RunnableParallel ne sert que pour des branches indépendantes |
| 4. Chargeurs et découpage | Métadonnées plates dès le chargement ; RecursiveCharacterTextSplitter 500 / 80 couvre 90 % des cas |
| 5. Bases vectorielles | Sans score_threshold, l'assistant invente ; MultiQueryRetriever rattrape les reformulations |
| 6. Mémoire | RunnableWithMessageHistory par session_id ; plafonner à 15-25 % de la fenêtre du modèle |
| 7. Outils | Fonction typée + @tool ; Literal et pydantic évitent les arguments invalides |
| 8. Agents | LangGraph explicite le graphe ; recursion_limit coupe les boucles infinies ; interrupt_before pour l'humain |
| 9. Traçage et évaluation | Un jeu de 30-80 cas est la spécification exécutable ; comparer deux versions avant de déployer |
| 10. Projet | Trois catégories d'erreurs d'outil, trois traitements ; cache et budget plafonné dès le premier déploiement |
Les fils qui traversent le cours
Tout est un Runnable. Un modèle chat, un gabarit, un analyseur, un récupérateur, une fonction Python enveloppée dans RunnableLambda, une chaîne, un agent : chacun expose .invoke, .stream, .batch et leurs cousins asynchrones. Cette uniformité est ce qui rend possible la composition avec |, le traçage automatique et le remplacement d'un fournisseur par un autre en changeant un import. Comprendre le contrat Runnable rend le reste du cours déductible plutôt que mémorisable.
Une abstraction n'est utile qu'à partir de la deuxième brique. Un appel isolé ne mérite pas trois Runnable ; il mérite un SDK officiel et cinq lignes. Dès qu'on a un récupérateur, une mémoire, un outil, un branchement ou un fournisseur à pouvoir changer, LCEL gagne largement. Choisir l'agent par défaut pour un flux dont l'ordre est connu est l'anti-patron le plus fréquent en 2026.
La qualité d'un système LLM se joue aux frontières. Le récupérateur avec ou sans score_threshold, la mémoire avec ou sans trim_messages, l'outil avec ou sans pydantic, l'agent avec ou sans recursion_limit : à chaque fois, un paramètre de bord fait la différence entre un système qui invente et un système qui refuse honnêtement. Les modules 5, 6, 7 et 8 sont, littéralement, un catalogue de garde-fous.
On n'améliore pas ce qu'on ne mesure pas. Le module 9 n'est pas un module d'observabilité annexe : c'est la condition pour que les neuf autres ne se dégradent pas au fil des versions. Un jeu d'évaluation de trente cas et un tableau de bord de coût par catégorie économisent des semaines de rattrapage après le premier déploiement.
La carte des composants du fil rouge
L'assistant de notes de frais assemblé au module 10 recouvre tout le cours :
- Documents (module 4) : politique PDF chargée avec métadonnées, tickets extraits par OCR puis structurés en
pydantic(module 2). - Récupération (module 5) :
Chromalocal surpolitique-2026, seuil 0,75,MultiQueryRetrieverpour les reformulations utilisateurs. - Mémoire (module 6) :
SQLChatMessageHistorypar employé,trim_messagessur 1 200 jetons, réécriture de question avant récupération. - Outils (module 7) :
chercher_politique,convertir_en_eur,verifier_plafond,ajouter_ligne_tableur, tous à schémapydanticstrict. - Agent (module 8) :
create_react_agentavecPostgresSaver,interrupt_before=["tools"]pour les gestes lourds,recursion_limit=10. - Interface (module 10) :
FastAPIavecastream_eventspour le flux, endpoint séparé d'approbation. - Traçage (module 9) :
LangSmithsur toute la chaîne,CoutCumulemaison par catégorie, jeu d'évaluation de 50 cas versionné.
L'examen final
L'examen comporte 40 questions couvrant les dix modules : choix entre appel direct et chaîne LangChain, écriture d'un Runnable en LCEL, gestion des erreurs d'analyse, calibration d'un seuil de récupération, prévention de la saturation du contexte, déclaration d'un outil typé, boucles d'agent et limites, jeu d'évaluation et détection de régression, décisions de production.
Plusieurs questions présentent des situations à diagnostiquer : un pipeline dont la latence a doublé sans raison apparente, un agent qui boucle sur le même outil, un récupérateur qui remonte n'importe quoi, un contexte saturé par une mémoire non plafonnée, une régression silencieuse après changement de modèle. C'est le jugement qui est évalué, pas la récitation de signatures.
En cas de réussite, votre attestation d'achèvement est délivrée immédiatement ; son numéro est vérifiable par tout tiers sur la plateforme.
Reprenez le tableau du cours et, pour chaque ligne, demandez-vous « quel signal me dirait que je me trompe ici ? ». Si vous savez pourquoi un agent boucle, pourquoi un récupérateur sans seuil invente, pourquoi une mémoire non plafonnée fait exploser le coût, et à quel moment un simple appel direct au fournisseur est préférable à LangChain, vous êtes prêt. Bonne chance !
Examen final
Prêt à valider ce cours ?
40 questions tirées au hasard dans la banque du cours · seuil de réussite 70 % · certificat PDF vérifiable délivré immédiatement en cas de réussite.
Commencer l'examenConnexion à votre compte InSkillML et abonnement actif requis. Vous pouvez aussi lancer l'examen depuis Mes cours.