Neo4j LLM Graph Builder : des documents aux graphes de connaissances consultables
Neo4j LLM Graph Builder : de la copie à un graphique de connaissances consultable ; configuration du backend et du frontend, identifiants, exemple d’importation, ainsi que corrections pour APOC et TLS.
Sources: Building Knowledge Graphs from Documents with Neo4j LLM Graph Builder
Ce guide reconstitue le processus, depuis les matières premières jusqu’à un système fonctionnel, pour : créer des graphes de connaissances à partir de documents à l’aide de Neo4j LLM Graph Builder. L’accent est mis sur des étapes opérationnelles, des vérifications explicites et du code que vous pouvez intégrer directement dans un dépôt sans devoir deviner l’intention derrière lui. Pour une vue d’ensemble, définissez les entrées, le responsable de chaque étape ainsi que les critères d’achèvement avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans avoir à deviner l’état caché. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans avoir à lire l’ensemble du graphe.
Prérequis
Pour les prérequis, définissez les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez ensemble le parcours normal et le parcours de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non livrés font partie du produit, et non d’une mise en forme ultérieure. Modélisez les nœuds et les relations pour les questions que vous poserez, et non pour chaque nom dans le document. Des arêtes sparses et typées valent mieux que des graphes complexes et mystérieux.
Étape 1 : Cloner le répertoire
Pour l’Étape 1 : Cloner le répertoire, définir les entrées, l’ responsable de l’étape ainsi que les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner des états cachés. Préférer de petites unités testables à des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un pipeline embrouillé. Modéliser les nœuds et les relations en fonction des questions que vous poserez, et non pour chaque nom dans le document. Des arêtes sparses et typées valent mieux que des graphes mystérieux et denses.
git clone https://github.com/neo4j-labs/llm-graph-builder.git
cd llm-graph-builder
Étape 2 : Configurer et exécuter le backend
Pour l’Étape 2 : Configurer et exécuter le backend, définissez les entrées, le responsable de l’étape ainsi que les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Considérez cette étape comme un contrat entre les entrées et les sorties validées. Nommez les artefacts, définissez des vérifications de succès et refusez toute complétion partielle silencieuse. Modélisez les nœuds et les relations pour les questions que vous poserez, et non pour chaque nom dans le document. Des arêtes sparses et typées valent mieux que des graphes complexes et mystérieux. Pour l’Étape 2 : Configurer et exécuter le backend, définissez les entrées, le responsable de l’étape ainsi que les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Gardez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les flags fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans difficulté.
Lire l’ensemble du graphique.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"
Étape 3 : Configurer et exécuter l’interface utilisateur
Pour l’Étape 3 : Configurer et exécuter l’interface utilisateur, définissez les entrées, le responsable de l’étape ainsi que les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez ensemble le parcours normal et le parcours de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’améliorations ultérieures. Utilisez des contraintes et des index avant l’ingestion en masse. L’unicité des clés métier permet de transformer les fusionnements ultérieurs en opérations d’insertion/mise à jour prévisibles, plutôt que de créer des doublons en masse.
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
Étape 4 : Connecter la base de données et les identifiants du LLM
Pour l’Étape 4 : Connecter la base de données et les identifiants du LLM, définissez les entrées, le responsable de l’étape ainsi que les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables à des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un pipeline embrouillé. Utilisez des contraintes et des index avant l’ingestion en masse. L’unicité des clés métier permet de transformer les fusionnements ultérieurs en opérations d’insertion/mise à jour prévisibles, plutôt que de créer des doublons en masse.
Étape 5 : Ingérer un document d’échantillon et générer un graphe
Pour l’Étape 5 : Ingestion d’un document d’échantillon et génération d’un graphe, définissez les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Considérez cette étape comme un contrat entre les entrées et les sorties validées. Nommez les artefacts, définissez des vérifications de succès et refusez toute complétion partielle silencieuse. Utilisez des contraintes et des index avant l’ingestion en masse. L’unicité des clés métier permet de transformer les fusionnements ultérieurs en opérations d’insertion ou de mise à jour prévisibles, plutôt que de créer des doublons en masse. Pour l’Étape 5 : Ingestion d’un document d’échantillon et génération d’un graphe, définissez les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Gardez la configuration en dehors du code de l’application. Les fichiers d’environnement, les stores de secrets et les flags fonctionnels doivent être regroupés dans un seul endroit.
Les opérateurs de place peuvent effectuer des audits sans avoir à lire l’ensemble du graphe.Exemple de texte de document
Pour l’exemple de texte de document, définissez les entrées, le responsable de l’étape et les critères de sortie avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez ensemble le parcours normal et le parcours de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non livrés font partie du produit, et non d’une mise en forme ultérieure. Inspectez un voisinage d’échantillon après le premier lot. Les sondes Cypher permettent de détecter les écarts de labels et les propriétés manquantes à moindre coût que des tests de chat bout en bout.
Étapes de traitement
Pour les étapes de traitement, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables à des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un processus embrouillé. Vérifiez un échantillon du voisinage après le premier lot. Les sondes Cypher permettent de détecter les écarts dans les étiquettes et les propriétés manquantes à moindre coût que des tests de chat du début à la fin.
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
Densité du graphe — Une métrique utile est :
Pour la densité du graphe — une métrique utile est : définir les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Considérez cette étape comme un contrat entre les entrées et les sorties validées. Donnez des noms aux artefacts, définez des vérifications de succès et refusez les terminaisons partielles silencieuses. Inspectez un échantillon du voisinage après le premier lot. Les sondes Cypher permettent de détecter les écarts dans les étiquettes et les propriétés manquantes à moindre coût que des tests de conversation du début à la fin.
1541 relationships / 538 nodes
≈ 2.86 relationships per node
Pour la densité du graphe — une métrique utile est : définir les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Conserver la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les flags fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans avoir à lire l’ensemble du graphe.
Utilisation des tokens
Pour l’utilisation des tokens, définissez les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez ensemble le parcours normal et les scénarios de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’améliorations ultérieures. Modélisez les nœuds et les relations pour les questions que vous poserez, et non pour chaque nom dans le document. Des arêtes sparses et typées valent mieux que des graphes complexes et mystérieux.
422,085 tokens
422,085 tokens
≈ 300,000–350,000 words
≈ 800–1200 pages of processed content
Défis rencontrés
Pour les défis rencontrés, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier du code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables à des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un processus embrouillé. Modélisez les nœuds et les relations en fonction des questions que vous poserez, et non pour chaque nom dans le document. Des arêtes sparses et typées valent mieux que des graphes complexes et mystérieux.
Compatibilité avec Neo4j APOC
Pour assurer la compatibilité avec Neo4j APOC, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Considérez cette étape comme un contrat entre les entrées et les sorties validées. Donnez des noms aux artefacts, définites des vérifications de succès et refusez les terminations partielles silencieuses. Modélisez les nœuds et les relations en fonction des questions que vous souhaitez poser, et non pour chaque nom dans le document. Des arêtes sparses et typées valent mieux que des graphes complexes et mystérieux. Pour assurer la compatibilité avec Neo4j APOC, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans avoir à lire l’ensemble du graphique.
Problèmes de certificat SSL
Pour les problèmes de certificat SSL, définissez les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez ensemble le parcours normal et le parcours de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non livrés font partie intégrante du produit, et non d’améliorations ultérieures. Utilisez des contraintes et des index avant l’ingestion en masse. L’unicité des clés métier permet de transformer les fusionnements ultérieurs en opérations d’insertion ou de mise à jour prévisibles, plutôt que de créer des doublons en masse.
Authentification Google Gemini
Pour l’authentification Google Gemini, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables à des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un processus embrouillé. Utilisez des contraintes et des index avant l’ingestion en masse. L’unicité des clés métier permet de transformer les fusionnements ultérieurs en opérations d’insertion ou de mise à jour prévisibles, plutôt que de créer des doublons en masse.
Gestion des ressources
Pour la gestion des ressources, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché.