為多個工具建立圖形工作流程
建立聊天機器人圖形的基礎元件都準備好了!你現在要把所有節點用邊串接成單一工作流程,並以邊來管理它們之間的連結。為了幫你開始,圖形工作流程已替你設定好 MessagesState 與 StateGraph(),用來追蹤聊天機器人的訊息更新。用來將圖形渲染成 LangGraph 圖表的 display() 函式也已設定完成,MemorySaver 也已為你匯入。
from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver
workflow = StateGraph(MessagesState)
本練習屬於課程
Designing Agentic Systems with LangChain
練習說明
- 使用標籤
"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()