Skip to content

LIGHTRAG+NEO4J做知识图谱可视化的踩坑记录

Published: at 00:00

注意: 这里主要涉及JDK, Neo4j和APOC,它们之间都有版本对应关系!第一次接触的话,很多设置细节问题需要注意,我搞了好久才弄好,记录下来帮人避坑。

Table of Content

0. 版本匹配提醒

1.安装 JDK

1.1 下载地址

我用的是4.4.0.x版本的 Neo4j,因此需要下载JDK11,其它的各位可以自己确定一下。反正我是换了Neo4j之后运行不了,错误提示里面告诉我需要JDK11的,大不了看错误提示改一下。

  1. JDK11官方下载 建议使用官网下载,但是需要注册和邮箱激活!
  2. OpenJDK Downloads | Download Java JDK 8, 11, 17, & 21 | OpenLogic 这个没有测试过,可能是开源版本的JDK?据说可以平替(自行验证,我不负责🤪)

1.2 安装设置

正常点击安装完成后,需要设置一下环境变量。在“系统变量”中添加:

2. 安装 NEO4J

因为大部分资料是基于Community版本的Neo4j,因此这里也选择Community,但是桌面版(Desktop)也可以共存,感兴趣的话可以自行研究一下。

2.1 下载地址

Index of /doc/neo4j/ 自行选择版本下载即可,但是再次提醒,它和APOC版本之间是有对应的,一定要选择匹配的版本,省的像我一样返工! 我选择了4.4.0版。(下表是NEO4JAPOC的版本兼容表,来源于APOC官方页面)

apoc versionneo4j version
4.4.0.14.4.0 (4.3.x)
4.3.0.44.3.7 (4.3.x)
4.2.0.94.2.11 (4.2.x)
4.1.0.104.1.11 (4.1.x)
4.0.0.184.0.12 (4.0.x)
3.5.0.153.5.30 (3.5.x)
3.4.0.83.4.18 (3.4.x)
3.3.0.43.3.9 (3.3.x)
3.2.3.63.2.14 (3.2.x)
3.1.3.93.1.9 (3.1.x)
3.0.8.63.0.12 (3.0.x)
3.5.0.03.5.0-beta01
3.4.0.23.4.5
3.3.0.33.3.5
3.2.3.53.2.3
3.1.3.83.1.5

2.2 安装和设置

Community社区版是个zip文件,因此只要选个目标位置解压就可以了,我选择如下位置:

C:\Program Files\neo4j-community-4.4.0

接下来就是添加环境变量了,包括两个操作:

  1. 在“系统变量”中添加NEO4J_HOME,直接上图: N4J.png
  2. 在“系统变量”的Path变量中,增加一项: %NEO4J_HOME%\bin PATH.png 两项完成之后,你打开命令行窗口,输入neo4j,应该就能可以看到下图这样的回应了,凡是提示找不到命令之类的,都是环境变量设置的问题,对比上面改就是了!也可以查询一下版本:
neo4j --version

image

3. APOC 插件的安装

3.1 下载和放置位置

国内下载,用这个链接,你懂的。根据版本的匹配关系,我选了个匹配我的Neo4j版本APOC 4.4.0.1。里面有好几个,但最好下载apoc-4.4.0.1-all这个,因为这是最全的,避免后面又出幺蛾子。下载后放在你Neo4j文件夹下的plugins子文件夹下就可以了。以下是我的:

C:\Program Files\neo4j-community-4.4.0\plugins

3.2 设置!!!很重要

APOC只是下载了放在那是不会起作用的,当你运行LightRAG显示构建的图谱时,会一直报找不到apoc,必须要进行配置才可以。根据网上搜到的若干帖子,直接照抄过来都无法成功,经过反复测试,下面这两个改动部分按我的来就可以了。 找到C:\Program Files\neo4j-community-4.4.0\conf文件夹下neo4j.conf文件,在其中定位到如下被注释掉的两行(这两行不相邻,但很近):

#dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*
#dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*,gds.*

把它们改成如下的样子,并取消注释:

dbms.security.procedures.unrestricted=apoc.*
dbms.security.procedures.allowlist=apoc.*

尤其是最后一行,就是我一直按网上帖子改不成功的原因。因为LightRAG好像使用了apoc的某个方法,但这里按原来写法,只放开了apoc.coll.*apoc.load.*两个方法,所以一直报错找不到,我这里就把apoc下面的全放开了。 然后,应该就可以放心的启动Neo4j的服务了!

4. 跑起来!

4.1 安装并启动Neo4j服务

管理员模式打开命令行窗口,然后输入:

neo4j install-serive

接下来就可以启动服务了,两个方式:

C:\Windows\System32>neo4j console
Directories in use:
home:         C:\Program Files\neo4j-community-4.4.0
config:       C:\Program Files\neo4j-community-4.4.0\conf
logs:         C:\Program Files\neo4j-community-4.4.0\logs
plugins:      C:\Program Files\neo4j-community-4.4.0\plugins
import:       C:\Program Files\neo4j-community-4.4.0\import
data:         C:\Program Files\neo4j-community-4.4.0\data
certificates: C:\Program Files\neo4j-community-4.4.0\certificates
licenses:     C:\Program Files\neo4j-community-4.4.0\licenses
run:          C:\Program Files\neo4j-community-4.4.0\run
Starting Neo4j.
2024-11-22 15:51:30.878+0000 INFO  Starting...
2024-11-22 15:51:31.453+0000 INFO  This instance is ServerId{baa33dc0} (baa33dc0-ad7c-4169-bd41-55a5d4c46e31)
2024-11-22 15:51:32.138+0000 INFO  ======== Neo4j 4.4.0 ========
2024-11-22 15:51:36.236+0000 INFO  Performing postInitialization step for component 'security-users' with version 3 and status CURRENT
2024-11-22 15:51:36.236+0000 INFO  Updating the initial password in component 'security-users'
2024-11-22 15:51:37.110+0000 INFO  Called db.clearQueryCaches(): Query cache already empty.
2024-11-22 15:51:37.472+0000 INFO  Bolt enabled on kubernetes.docker.internal:7687.
2024-11-22 15:51:37.896+0000 INFO  Remote interface available at http://localhost:7474/
2024-11-22 15:51:37.898+0000 INFO  id: 8C6AA1531BE4544853FE5EBC28F2E483EEEECFE841379E6A844F0B7C174E9384
2024-11-22 15:51:37.899+0000 INFO  name: system
2024-11-22 15:51:37.899+0000 INFO  creationDate: 2024-11-22T14:14:10.777Z
2024-11-22 15:51:37.899+0000 INFO  Started.

4.2 服务页面的配置

根据上面提示打开http://localhost:7474,就能够呈现这个页面: browser.png 首次需要连接到Neo4j的服务页面,在上面填写信息,初始用户和密码如下:

neo4j$ return apoc.version()

应该能够成功返回你之前下载的apoc版本号。

4.3 展现LightRAG构建的图谱

关于LightRAG怎么部署和使用,以后有机会再单独说吧,按照官网的指导就可以完成构建。这里展示的是在完成LightRAG的构建之后,会生成一系列文件,我们把它对接到刚刚部署的Neo4j中进行展示。在(lightrag) C:\Users\Dyson\Documents\LightRAG\examples>目录下,先修改一下graph_visual_with_neo4j.py中关于登录页面的验证,就是改成之前设置的用户名和密码:

# Neo4j connection credentials
NEO4J_URI = "neo4j://localhost:7687"
NEO4J_USERNAME = "neo4j"
NEO4J_PASSWORD = "YOU_PASSWORD"

然后运行:

python graph_visual_with_neo4j.py

大功告成! KG.jpeg 如果出现:

Error occurred: {code: Neo.ClientError.Security.Unauthorized} {message: The client is unauthorized due to authentication failure.}

说明刚才的密码设置不对!去改过来就可以了。


Previous Post
Python拾遗系列(1):脚本调用的玄机
Next Post
“深度”自由!一个开源单摄像头高精度深度图工具