Intermédiaire
🧠 Fondamentaux
30 XP
0 personnes ont réussi
Routage conditionnel LangGraph
La vraie puissance de LangGraph, c'est les transitions conditionnelles. Au lieu d'un pipeline lineaire, tu peux diriger le flux vers differents noeuds selon le contenu du state. C'est comme un aiguillage de train.
Pour ca, tu utilises add_conditional_edges :
def router(state): if state["score"] > 0.8: return "bon" return "mauvais"
graph.add_conditional_edges( "evaluer", # noeud source router, # fonction de routage {"bon": "valider", "mauvais": "corriger"} # mapping )
La fonction router recoit le state et renvoie une string qui correspond a une clé du mapping. Cette clé pointe vers le noeud suivant.
Écris une fonction build_classifier() qui crée un graphe avec :
State : text (str), category (str), confidence (float)
Noeuds : - "analyser" : si le texte contient "erreur" ou "bug", met category a "technique" et confidence a 0.9, sinon met category a "general" et confidence a 0.5 - "traitement_technique" : ajoute " [TECH]" a la fin du texte - "traitement_general" : ajoute " [GEN]" a la fin du texte
Routing : apres "analyser", si category est "technique" on va a "traitement_technique", sinon a "traitement_general".
Les deux noeuds de traitement menent a END.
Exemple :
app = build_classifier() r = app.invoke({"text": "j'ai un bug", "category": "", "confidence": 0.0}) r["text"] vaut "j'ai un bug [TECH]" r["category"] vaut "technique"