为多工具创建图工作流
用于创建聊天机器人图的构件现在都已就绪!您将把所有节点用边连接起来,组合成一个完整的工作流,并用边来管理它们之间的连接。为便于开始,已为您预先设置了用于跟踪聊天机器人消息更新的 MessagesState 和 StateGraph()。用于将图渲染为 LangGraph 图示的 display() 函数也已就绪,并且已为您导入 MemorySaver。
from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver
workflow = StateGraph(MessagesState)
本练习是课程的一部分
使用 LangChain 设计 Agentic 系统
练习说明
- 使用标签
"chatbot"添加call_model作为一个节点,并使用标签"tools"添加tool_node。 - 定义一条从
START节点到"chatbot"节点的边。 - 先从
"chatbot"节点出发,使用should_continue添加到"tools"和END节点的条件边,然后再将"tools"节点连接回"chatbot"节点。 - 创建一个
MemorySaver()实例,并将工作流编译为一个应用,将该内存作为checkpointer。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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()