Добавление инструмента в граф
Инструмент Wikipedia готов к работе. Теперь пришло время встроить его в граф рабочего процесса чат-бота! Вы измените узлы и рёбра графа так, чтобы инструмент стал отдельным узлом. Граф будет настроен таким образом, чтобы чат-бот обращался к инструменту только при необходимости — в зависимости от запроса пользователя. Для управления узлом инструмента и связанными с ним рёбрами в среду уже импортированы следующие модули. Построенный вами wikipedia_tool также доступен в среде. После завершения построения граф будет отображён в виде диаграммы LangGraph.
from langgraph.prebuilt import ToolNode, tools_condition
Это упражнение является частью курса
Проектирование агентных систем с LangChain
Инструкции к упражнению
- Используйте
.add_node(), чтобы добавить узел"chatbot"в граф, связав его с функциейchatbot. - Создайте
ToolNode(), передавwikipedia_toolв параметрtools, и добавьте его в граф с помощью.add_node()под именем"tools". - Примените
.add_conditional_edges(), чтобы настроить маршрутизацию из"chatbot"на основеtools_condition. - Используйте
.add_edge(), чтобы соединить"tools"обратно с"chatbot",START— с"chatbot", а"chatbot"— сEND, завершив тем самым рабочий процесс.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Add chatbot node to the graph
graph_builder.____("____", ____)
# Create a ToolNode to handle tool calls and add it to the graph
tool_node = ____(tools=[____])
graph_builder.____("tools", ____)
# Set up a condition to direct from chatbot to tool or END node
graph_builder.____("____", ____)
# Connect tools back to chatbot and connect START and END nodes
graph_builder.add_edge("____", "____")
graph_builder.add_edge(____, "chatbot")
graph_builder.add_edge("chatbot", ____)
graph = graph_builder.compile()
try:
display(Image(graph.get_graph().draw_mermaid_png()))
except Exception:
print("Plot generation failed... falling back to cached asset.")
display_fallback()