Crea il flusso del grafo per più strumenti
I blocchi di costruzione per creare il grafo del tuo chatbot sono pronti! Ora metterai insieme tutti i tuoi nodi in un unico workflow usando i bordi per gestire le connessioni tra di loro. Per iniziare, il flusso del grafo è già stato configurato per te con MessagesState e StateGraph() per tracciare gli aggiornamenti dei messaggi del chatbot. Anche la funzione display() per visualizzare il grafo come diagramma LangGraph è stata predisposta e MemorySaver è stata importata per te.
from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver
workflow = StateGraph(MessagesState)
Questo esercizio fa parte del corso
Progettare sistemi agentici con LangChain
Istruzioni dell'esercizio
- Aggiungi
call_modelcome nodo usando l'etichetta"chatbot"e aggiungitool_nodecon l'etichetta"tools". - Definisci un bordo che colleghi il nodo
STARTal nodo"chatbot". - Aggiungi bordi condizionali dal nodo
"chatbot"ai nodi"tools"edENDusandoshould_continue, prima di collegare il nodo"tools"di nuovo al nodo"chatbot". - Crea un'istanza di
MemorySaver()e compila il workflow in un'applicazione con ilcheckpointerdella memoria.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()