Accueil / Articles

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.

Éditeur : REACTAPP.TOP8 min de lecture1845 mots

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é.

Conclusion

Liste de contrôle opérationnelle