Автоматизация создания графа знаний с LangGraph и NetworkX: подробное руководство
Подробное руководство по созданию автоматизированного конвейера графа знаний с использованием LangGraph и NetworkX, включающее этапы обработки данных и визуализации.
Обзор автоматизированного конвейера графа знаний
В этом руководстве показано, как построить автоматизированный конвейер графа знаний, используя LangGraph и NetworkX. Конвейер моделирует работу интеллектуальных агентов, которые совместно выполняют задачи сбора данных, извлечения сущностей, выявления связей, разрешения дубликатов и проверки графа.
Начиная с заданной пользователем темы, например «Искусственный интеллект», система последовательно собирает релевантную информацию, извлекает сущности и связи, устраняет дубли и интегрирует данные в структурированный граф. Такой подход помогает разработчикам и специалистам по данным визуализировать сложные взаимосвязи между концепциями и полезен для задач семантического анализа, обработки естественного языка и управления знаниями.
Необходимые библиотеки
Для работы конвейера требуются две основные Python-библиотеки:
!pip install langgraph langchain_core- LangGraph: для организации агентно-ориентированных рабочих процессов.
- LangChain Core: предоставляет базовые классы для приложений с языковыми моделями.
Также используются NetworkX и matplotlib для создания и визуализации графов, регулярные выражения для обработки текста и typing для структурирования данных.
Определение состояния конвейера
С помощью TypedDict определяется структура состояния конвейера KGState, которая включает тему, исходный текст, извлечённые сущности и связи, разрешённые дубликаты, объект графа, результаты проверки, сообщения агентов и текущего активного агента.
Функции агентов
Каждый этап конвейера реализован как функция — агент, выполняющий:
- data_gatherer: сбор данных по теме.
- entity_extractor: поиск сущностей с помощью регулярных выражений.
- relation_extractor: определение семантических связей между сущностями.
- entity_resolver: стандартизация названий сущностей для устранения дубликатов.
- graph_integrator: построение направленного графа с NetworkX.
- graph_validator: проверка свойств графа — связности и циклов.
Каждая функция обновляет состояние и задаёт следующего активного агента.
Организация рабочего процесса с LangGraph
Функция build_kg_graph формирует полный workflow, добавляя агентов как узлы и связывая их условными переходами в зависимости от текущего агента. Старт происходит с data_gatherer, завершение — после проверки графа.
Запуск конвейера
Функция run_knowledge_graph_pipeline инициализирует состояние с заданной темой, компилирует workflow и запускает его. Итоговое состояние содержит готовый граф знаний и отчёт проверки.
Визуализация графа знаний
С помощью matplotlib и NetworkX визуализируется итоговый граф с подписями узлов и рёбер:
def visualize_graph(graph):
plt.figure(figsize=(10, 6))
pos = nx.spring_layout(graph)
nx.draw(graph, pos, with_labels=True, node_color='skyblue', node_size=1500, font_size=10)
edge_labels = nx.get_edge_attributes(graph, 'relation')
nx.draw_networkx_edge_labels(graph, pos, edge_labels=edge_labels)
plt.title("Граф знаний")
plt.tight_layout()
plt.show()Практический пример
При прямом запуске скрипта создаётся граф знаний по теме «Искусственный интеллект» и отображается. Это демонстрирует полную автоматизацию создания графа с помощью нескольких агентов.
Расширение решения
Модульный конвейер можно улучшать, добавляя продвинутые методы распознавания сущностей, интеграцию с реальными источниками данных и кастомизацию под конкретные области, что делает его универсальным инструментом для создания графов знаний.
Switch Language
Read this article in English