НачатьНачать бесплатно

Добавление инструмента в граф

Инструмент 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()
Редактировать и запускать код