Neo4j LLM Graph Builder: от документов к поисковым знаниевым графам
Neo4j LLM Graph Builder: от клона до запросируемой графовой базы знаний — настройка бэкенда и фронтенда, учетные данные, пример импорта данных, а также решения проблем с APOC и TLS.
Источники: Building Knowledge Graphs from Documents with Neo4j LLM Graph Builder
В этом руководстве показано, как построить цепочку от сырья до функциональной системы для создания графов знаний из документов с использованием Neo4j LLM Graph Builder. Основное внимание уделяется практическим шагам, четкой проверке результатов и коду, который можно просто добавить в репозиторий без необходимости догадываться о его назначении. Для получения общего представления необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии системы. Конфигурацию следует хранить отдельно от кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь граф.
Предварительные требования
Что касается предварительных требований, необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Необходимо задокументировать как успешный, так и восстановительный сценарии работы. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не элементами последующей доработки. Необходимо моделировать узлы и связи только для тех вопросов, которые вы собираетесь задать, а не для каждого существительного в документе. Редкие, типизированные связи лучше, чем плотные графы с неясными структурами.
Шаг 1: Клонирование репозитория
Для шага 1: сначала клонируйте репозиторий, определите входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое шага причина должна быть связана с конкретной функцией, а не с запутанной структурой обработки данных. Моделируйте узлы и связи только для тех вопросов, которые вы собираетесь задать, а не для каждого существительного в документе. Редкие, типизированные связи лучше, чем густые, неясные графы.
git clone https://github.com/neo4j-labs/llm-graph-builder.git
cd llm-graph-builder
Шаг 2: настройка и запуск бэкенда
Для шага 2: настройка и запуск бэкенда — определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия элементам, определите критерии успеха и не допускайте молчаливого частичного завершения работы. Создавайте модели узлов и связей для вопросов, которые вы собираетесь задать, а не для каждого существительного в документе. Редкие, типизированные связи лучше, чем плотные неясные графы. Для шага 2: настройка и запуск бэкенда — определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, которое операторы могут проверять без проблем.
Чтение всей диаграммы.cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
NEO4J_URI = "bolt://<hostname>:7687"
NEO4J_USERNAME = "neo4j"
NEO4J_PASSWORD = "<password>"
NEO4J_DATABASE = "neo4j"
LLM_MODEL_CONFIG_META_LLAMA3_1_8B="meta-llama/Meta-Llama-3.1-8B-Instruct,http://<hostname>:<port>/fast/v1,<API_KEY>"
LLM_MODEL_CONFIG_GEMINI_2_5_FLASH="gemini-2.5-flash"
TRACK_USER_USAGE="false"
Шаг 3: Настройка и запуск фронтенда
На шаге 3 «Настройка и запуск фронтенда» необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Необходимо задокументировать как успешный, так и восстановительный пути выполнения. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не последующими улучшениями. Используйте ограничения и индексы перед массовым вводом данных. Уникальность по бизнес-ключам превращает последующие объединения в предсказуемые операции добавления или замены данных, а не в ситуации с дубликатами.
cd frontend
sudo apt update && sudo apt install yarn -y
VITE_BACKEND_API_URL="https://backendgb.datamindslab.in"
VITE_LLM_MODELS="gemini_2.5_flash,meta_llama3_1_8b,diffbot,openai_gpt_5.4_mini,gemini_3.5_flash,anthropic_claude_4.5_haiku"
VITE_FRONTEND_HOSTNAME="https://graphbuilder.datamindslab.in"
yarn run dev
Шаг 4: Подключение к базе данных и учетные данные LLM
Для шага 4: Подключение к базе данных и учетные данные LLM — определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое шага он должен указывать на конкретную причину, а не на сложную структуру обработки данных. Используйте ограничения и индексы перед массовым вводом данных. Уникальность бизнес-ключей позволяет преобразовывать последующие объединения в предсказуемые операции добавления или замены данных, а не вызывать кризис из-за дубликатов.
Шаг 5: Загрузка примера документа и создание графа
Для шага 5: «Загрузка примерного документа и генерация графа» определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия создаваемым объектам, определите критерии успеха и не допускайте безответственного частичного выполнения задачи. Используйте ограничения и индексы перед массовой загрузкой. Уникальность по бизнес-ключам превращает последующие объединения в предсказуемые операции добавления или замены данных, а не в ситуацию дублирования. Для шага 5: «Загрузка примерного документа и генерация графа» определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте.
Операторы могут проводить аудит, не читая весь граф.Пример текста документа
Для примера текста документа необходимо определить входные данные, ответственного за шаг и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Необходимо задокументировать как успешный путь выполнения, так и путь восстановления. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не последующими улучшениями. Проверьте пример окружающей области после первой партии данных. Инструменты Cypher позволяют выявить смещение меток и отсутствие свойств дешевле, чем тесты в формате полного обмена сообщениями.
Шаги обработки
Для шагов обработки необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не пытаясь угадать скрытое состояние. Лучше использовать небольшие, тестируемые единицы вместо обширных скриптов. При сбое шага он должен указывать на конкретную проблему, а не на сложную структуру обработки. После первой партии данных следует проверить примерную группу записей. Инструменты типа Cypher позволяют выявить смещение меток и отсутствие свойств дешевле, чем тесты в полном объёме.
Nodes (Entities): 538
Relationships (Edges): 1541
SiteScope
OBM
URL Monitor
CPU Monitor
Windows Server
Database
Service
Alert
Threshold
SiteScope --MONITORS--> Windows Server
SiteScope --CONNECTS_TO--> OBM
CPU Monitor --GENERATES--> Alert
Database --HOSTS--> SiteScope
Плотность графа — полезным показателем является:
Что касается плотности графа — полезным показателем является: необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия результатам работы, определите критерии успеха и не допускайте молчаливого частичного завершения задачи. Проверьте пример окружающей области после первой партии данных. Инструменты типа Cypher позволяют выявить смещение меток и отсутствие свойств дешевле, чем тесты в формате полного обмена сообщениями.
1541 relationships / 538 nodes
≈ 2.86 relationships per node
Что касается плотности графа — полезным показателем является: необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь граф.
Использование токенов
Для использования токенов необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Необходимо одновременно задокументировать успешный сценарий работы и сценарий восстановления. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не последующими улучшениями. Необходимо моделировать узлы и связи только для тех вопросов, которые вы собираетесь задавать, а не для каждого существительного в документе. Редкие, типизированные связи лучше, чем плотные непонятные графы.
422,085 tokens
422,085 tokens
≈ 300,000–350,000 words
≈ 800–1200 pages of processed content
Возникшие проблемы
При столкновении с трудностями необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Лучше использовать небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое шага он должен указывать на конкретную причину, а не на запутанную цепочку операций. Моделируйте узлы и связи только для тех вопросов, которые вы собираетесь задать, а не для каждого существительного в документе. Редкие, типизированные связи лучше, чем плотные, непонятные графы.
Совместимость с Neo4j APOC
Для обеспечения совместимости с Neo4j APOC необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия элементам, определите критерии успеха и не допускайте безответственного частичного выполнения. Моделируйте узлы и связи только для тех вопросов, которые вы собираетесь задать, а не для каждого существительного в документе. Редкие, типизированные связи лучше, чем плотные графы с непонятной структурой. Для обеспечения совместимости с Neo4j APOC необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, которое операторы могут проверять, не читая весь граф.
Проблемы с сертификатами SSL
При решении проблем с сертификатами SSL необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг, исходя из известной точки контроля, без необходимости угадывать скрытое состояние. Необходимо документировать как успешный, так и восстановительный пути работы. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не этапом доработки позже. Перед массовым вводом данных следует использовать ограничения и индексы; наличие уникальности по бизнес-ключам позволяет превращать последующие объединения в предсказуемые операции добавления или замены данных вместо возникновения дубликатов.
Аутентификация в Google Gemini
Для аутентификации в Google Gemini необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Лучше использовать небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое шага причина должна быть связана с конкретной функцией, а не с запутанной цепочкой операций. Применяйте ограничения и индексы перед массовым вводом данных. Уникальность по бизнес-ключам позволяет преобразовывать последующие объединения в предсказуемые операции добавления или замены данных, а не вызывать проблемы с дубликатами.
Управление ресурсами
При управлении ресурсами также необходимо заранее определить входные данные, ответственного за шаг и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии.