สร้าง graph workflow สำหรับหลายเครื่องมือ
ส่วนประกอบทั้งหมดสำหรับสร้าง graph ของ chatbot พร้อมแล้ว! ถึงเวลานำโหนดทั้งหมดมาประกอบเข้าด้วยกันเป็น workflow เดียว โดยใช้ edges จัดการการเชื่อมต่อระหว่างโหนด graph workflow ได้ถูกตั้งค่าไว้ให้แล้วพร้อมกับ MessagesState และ StateGraph() สำหรับติดตามการอัปเดตข้อความของ chatbot นอกจากนี้ ฟังก์ชัน display() สำหรับแสดง graph เป็นไดอะแกรม LangGraph และ MemorySaver ก็ถูก import มาให้เรียบร้อยแล้ว
from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver
workflow = StateGraph(MessagesState)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การออกแบบระบบ Agentic ด้วย LangChain
คำแนะนำการฝึกหัด
- เพิ่ม
call_modelเป็นโหนดโดยใช้ label"chatbot"และเพิ่มtool_nodeโดยใช้ label"tools" - กำหนด edge เชื่อมต่อจากโหนด
STARTไปยังโหนด"chatbot" - เพิ่ม conditional edges จากโหนด
"chatbot"ไปยังโหนด"tools"และENDโดยใช้should_continueจากนั้นเชื่อมโหนด"tools"กลับมายังโหนด"chatbot" - สร้าง instance ของ
MemorySaver()และคอมไพล์ workflow ให้เป็นแอปพลิเคชันโดยระบุ memorycheckpointer
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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()