Создание графа рабочего процесса для нескольких инструментов
Все строительные блоки для вашего графа чат-бота готовы! Теперь объедините все узлы в единый рабочий процесс, используя рёбра для управления связями между ними. Граф уже настроен для вас: заданы 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()