====== LangGraph Tests ====== 🗂️ [[start|Terug naar start]]\\ ⛓️ 🗂️ [[longchain_home|LangChain start]]\\ 🦜♻️🗂️ [[langgraph|LangGraph Start]] 🦜♻️🧩 [[langgraph-basis|LangGraph Basis principes]]\\ 🔸 Ik heb op de [[langgraph-basis||LangGraph Basis principes]] pagina eerst de nodige gegevens verzameld waarmee ik denk uit de voeten te kunnen om //(gebruikmakend van die gegevens)// verder te kunnen en een begin te kunnen maken met een applicatie die gebruik maakt van LangGraph. 🔸 Op deze pagina //(hieronder)// vind je werkende //(verder uitgewerkte)// basis methoden ---- ==== 1️⃣ Test 1 ==== 🧭 **[[langgraph-basis|Test 1: Simpele LangGraph zoals hier beschreven]]** Code uit **adzandbak > test_1.py**: import random from typing import Literal, TypedDict from langgraph.graph import StateGraph, START, END class State(TypedDict): graph_state: str class Test_1: def __init__(self): # Build graph self.builder = StateGraph(State) self.builder.add_node("node_1", self.node_1) self.builder.add_node("node_2", self.node_2) self.builder.add_node("node_3", self.node_3) # Logic self.builder.add_edge(START, "node_1") self.builder.add_conditional_edges("node_1", self.decide_mood) self.builder.add_edge("node_2", END) self.builder.add_edge("node_3", END) # Add self.graph = self.builder.compile() def run(self, user_query): state = {"graph_state": user_query} result_state = self.graph.invoke(state) print(result_state) print(result_state['graph_state']) return result_state['graph_state'] def node_1(self, state): print("---Node 1---") return {"graph_state": state['graph_state'] +" I am"} def node_2(self, state): print("---Node 2---") return {"graph_state": state['graph_state'] +" happy! "} def node_3(self, state): print("---Node 3---") return {"graph_state": state['graph_state'] +" sad! "} def decide_mood(self, state) -> Literal["node_2", "node_3"]: # Here, let's just do a 50 / 50 split between nodes 2, 3 if random.random() < 0.5: return "node_2" return "node_3" ---- ===== 2️⃣ Test 2 Router ===== **Bron: Les 5 van Module 1 van de cursus "Introduction to LangGraph"**\\ [[https://academy.langchain.com/courses/take/intro-to-langgraph/lessons/58239412-lesson-5-router|Video]]\\ [[https://colab.research.google.com/github/langchain-ai/langchain-academy/blob/main/module-1/router.ipynb|Python code in Colab]] > We kunnen dit zien als een router, waarbij het chatmodel routeert tussen een direct antwoord of een tool-aanroep op basis van de invoer van de gebruiker. Dit is een eenvoudig voorbeeld van een agent, waarbij de LLM de controle stroom aanstuurt door een tool aan te roepen of gewoon direct te reageren.