Maak de grafen-workflow voor meerdere tools
Je bouwstenen om je chatbot-graaf te maken zijn nu klaar! Je voegt al je nodes samen in één workflow, waarbij je edges gebruikt om de verbindingen te beheren. Om te beginnen is je grafen-workflow al voor je opgezet met MessagesState en de StateGraph() om de berichtupdates van de chatbot bij te houden. De functie display() om je graaf weer te geven als een LangGraph-diagram is ook al ingesteld en de MemorySaver is voor je geïmporteerd.
from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver
workflow = StateGraph(MessagesState)
Deze oefening maakt deel uit van de cursus
Agentic Systems ontwerpen met LangChain
Oefeninstructies
- Voeg
call_modeltoe als node met het label"chatbot"en voegtool_nodetoe met het label"tools". - Definieer een edge die de
START-node verbindt met de"chatbot"-node. - Voeg conditionele edges toe van de
"chatbot"-node naar de"tools"- enEND-nodes metshould_continue, en verbind daarna de"tools"-node terug naar de"chatbot"-node. - Maak een
MemorySaver()-instance en compileer de workflow tot een applicatie met de memorycheckpointer.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Add nodes for chatbot and tools
workflow.add_node("____", ____)
workflow.add_node("____", ____)
# Define an edge connecting START to the chatbot
workflow.add_edge(____, "____")
# Define conditional edges and route "tools" back to "chatbot"
workflow.add_conditional_edges("____", ____, ["____", ____])
workflow.add_edge("____", "____")
# Set up memory and compile the workflow
memory = ____()
app = workflow.____(checkpointer=____)
try:
display(Image(graph.get_graph().draw_mermaid_png()))
except Exception:
print("Plot generation failed... falling back to cached asset.")
display_fallback()