====== LangGraph Tests ====== 🗂️ [[start|Terug naar start]]\\ ⛓️ 🗂️ [[longchain_home|LangChain start]]\\ 🦜 🗂️ [[langgraph|LangGraph Start]] 💫 [[langgraph-tests|LangGraph Tests]]\\ ♻️ [[langgraph-basis|LangGraph Basis principes]] Ik heb op [[langgraph-basis|deze pagina hier]] 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. Het nut en in hoeverre de verzamelde gegevens inderdaad nuttig zouden kunnen zijn moet nog blijken😬 **Wat wil ik bouwen:**\\ Een applicatie voor therapeuten die een account op kwaliteitsteem.nl hebben die taken kan uitvoeren, gegevens op kan halen en aanpassen d.m.v. Natuurlijke Taal. Verder heeft de applicatie al een AI-Chatbot (CATja) waarmee de therapeut kan chatten. Mogelijk moet ook deze Chatbot in de CAT Agent worden geïntegreerd. De applicaties die ik bouw zijn opgebouwd ut Classes\\ De applicaties zijn gemaakt met Streamlit GUI //(gebruikersinterface)// ===== Tests ===== Diverse tests die vanuit mijn adminzandbak.py worden gestart\\ Hier de code uit adminzandbak.py: import streamlit as st import adzandbak.test_1 as test class Zandbak: def __init__(self): self.test_1 = test.Test_1() self.col1, self.col2 = st.columns([2, 2]) def pageIni(self): with self.col1: st.subheader("1️⃣ Test 1") self.chat_container = st.container(border=True, height=50) if st.button("🔄 Run Test 1 Script *(Zie console print)*"): Result = self.test_1.run("Hallo, Ik ben A3.") with self.chat_container: st.write(f"Resultaat: {Result}") cat = Zandbak() cat.pageIni() ==== 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" ===== LangGraph Schema ===== {{ LangGraph_basis.png?1000 }} ----