Створіть робочий процес графа для кількох інструментів
Ваші будівельні блоки для створення графа чатбота вже готові! Тепер об'єднайте всі вузли в один робочий процес, використовуючи ребра для керування зв'язками між ними. Щоб почати, робочий процес графа вже налаштовано для вас із MessagesState і StateGraph() для відстеження оновлень повідомлень чатбота. Функцію display() для відображення графа як діаграми LangGraph також підготовлено, а MemorySaver імпортовано для вас.
from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver
workflow = StateGraph(MessagesState)
Ця вправа є частиною курсу
Проєктування агентних систем з LangChain
Інструкції до вправи
- Додайте
call_modelяк вузол із міткою"chatbot"і додайтеtool_nodeз міткою"tools". - Визначте ребро, що з'єднує вузол
STARTіз вузлом"chatbot". - Додайте умовні ребра від вузла
"chatbot"до вузлів"tools"іEND, використовуючиshould_continue, перш ніж під'єднати вузол"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()