Crea el flujo de trabajo del grafo para varias herramientas
¡Ya tienes listos los bloques de construcción para crear el grafo de tu chatbot! Ahora vas a unir todos tus nodos en un único flujo de trabajo usando bordes para gestionar las conexiones entre ellos. Para empezar, tu flujo de trabajo del grafo ya está configurado con MessagesState y StateGraph() para seguir las actualizaciones de los mensajes del chatbot. También se ha configurado la función display() para representar tu grafo como un diagrama de LangGraph y se ha importado MemorySaver por ti.
from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver
workflow = StateGraph(MessagesState)
Este ejercicio forma parte del curso
Diseño de sistemas agénticos con LangChain
Instrucciones del ejercicio
- Añade
call_modelcomo nodo usando la etiqueta"chatbot"y añadetool_nodecon la etiqueta"tools". - Define un borde que conecte el nodo
STARTcon el nodo"chatbot". - Añade bordes condicionales desde el nodo
"chatbot"hacia los nodos"tools"yENDusandoshould_continue, antes de conectar el nodo"tools"de vuelta al nodo"chatbot". - Crea una instancia de
MemorySaver()y compila el flujo de trabajo en una aplicación concheckpointerde memoria.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()