首页 / 文章

Neo4j LLM图构建工具:从文档到可查询的知识图谱

Neo4j LLM 图谱构建工具:从克隆版本到可查询的知识图谱的实现方法,包括后端与前端配置、凭证设置、数据导入示例,以及 APOC 和 TLS 相关问题的解决方案。

发布者:REACTAPP.TOP阅读约 8 分钟1845 词

来源: Building Knowledge Graphs from Documents with Neo4j LLM Graph Builder

本指南将逐步演示如何使用 Neo4j LLM Graph Builder 从原始材料构建出可运行的知识图谱系统。重点在于具体的操作步骤、明确的检查点以及可直接放入代码仓库的代码,无需猜测其用途。 在修改代码之前,应先明确输入参数、各步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行相应步骤,而无需推测隐藏的状态。 配置信息应与应用程序代码分开存放。环境文件、密钥存储以及功能开关都应集中管理,以便操作人员无需查看整个图结构即可进行审核。

前置条件

在修改代码之前,需先明确前提条件,包括输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误处理都是产品本身的组成部分,而非后续需要补充的功能。 应为要提出的问题构建模型节点及关联关系,而非针对文档中的每个名词都这样做。稀疏且有类型的边比密集且难以理解的图结构更佳。

第一步:克隆仓库

第一步:在修改代码之前,先克隆仓库,明确输入参数、该步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏的状态。相比冗长的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障原因应能指向单一责任模块,而非复杂的流程链。应为需要解答的问题构建节点与关联关系模型,而非针对文档中的每个名词都这样做。稀疏且有类型的边比密集且难以理解的图结构更佳。

git clone https://github.com/neo4j-labs/llm-graph-builder.git
cd llm-graph-builder

第二步:配置并运行后端

在“配置并运行后端”这一步中,应在修改代码之前明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将这一阶段视为输入与已验证输出之间的契约。为相关成果命名,定义成功判定标准,杜绝默许的半完成状态。 仅为需要提问的问题构建模型节点与关联关系,而非文档中的所有名词。稀疏且有类型的边比密集且难以理解的图结构更佳。 在“配置并运行后端”这一步中,应在修改代码之前明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于操作人员可审计的位置,避免出现混乱。

读取整个图表。

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:配置并运行前端

在执行“配置并运行前端”这一步骤时,应在修改代码之前明确输入参数、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误处理都是产品功能的一部分,而非后续需要补充的内容。 在批量导入数据之前应使用约束条件和索引。通过对业务键设置唯一性,可将后续的合并操作转化为可预测的插入或更新操作,从而避免出现数据重复问题。

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凭证

在第四步“连接数据库与LLM凭证”中,修改代码之前需先明确输入参数、该步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比冗长的脚本,更应采用小型、可测试的单元。当某一步骤失败时,故障原因应能指向单一责任主体,而非复杂的流程问题。在批量导入数据之前,应先使用约束条件和索引;通过对业务键设置唯一性,可将后续的合并操作转化为可预测的插入或更新操作,从而避免数据重复问题。

第五步:导入样本文档并生成图结构

对于第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 验证功能,在修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比冗长的脚本,更应优先使用小型、可测试的单元。当某个步骤失败时,故障应指向单一责任模块,而非复杂的流程链。在批量导入数据之前,应设置约束条件与索引;通过业务键确保唯一性,这样后续的合并操作就会是可预测的插入或更新操作,而非大量重复数据的出现。

资源管理

在处理资源管理时,同样需要在修改代码之前明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。

结论

操作检查清单