Skapa grafarbetsflödet för flera verktyg
Nu är alla byggstenar för din chatbot-graf på plats! Du ska sätta ihop alla noder i ett enda arbetsflöde och använda kanter för att hantera kopplingarna mellan dem. Som startpunkt har grafarbetsflödet redan konfigurerats åt dig med MessagesState och StateGraph() för att spåra chatbotens meddelandeuppdateringar. Funktionen display() för att rendera grafen som ett LangGraph-diagram har också konfigurerats, och MemorySaver har importerats åt dig.
from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver
workflow = StateGraph(MessagesState)
Den här övningen är en del av kursen
Designa agentbaserade system med LangChain
Övningsinstruktioner
- Lägg till
call_modelsom en nod med etiketten"chatbot"och lägg tilltool_nodemed etiketten"tools". - Definiera en kant som kopplar
START-noden till"chatbot"-noden. - Lägg till villkorliga kanter från
"chatbot"-noden till"tools"- ochEND-noderna med hjälp avshould_continue, och koppla sedan"tools"-noden tillbaka till"chatbot"-noden. - Skapa en
MemorySaver()-instans och kompilera arbetsflödet till en applikation med minnes-checkpointer.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()