langchain对neo4j的使用
通过langchain组件生成图谱。本文是延续上一篇文章【】以下所有路径,命令都是基于这篇内容设置的。
·
一:背景
通过langchain组件生成图谱。本文是延续上一篇文章【Linux Red Hat 部署neo4j 2025.8社区版-CSDN博客】以下所有路径,命令都是基于这篇内容设置的
二:准备
1.APOC插件
apoc是调用neo4j的一个插件,在使用langchain存储图谱时会用到其中的apoc.merge.node方法,如果不装会出现报错
neo4j.exceptions.ClientError: {code: Neo.ClientError.Procedure.ProcedureNotFound} {message: There is no procedure with the name `apoc.merge.node` registered for this database instance.}1.下载对应版本的 APOC 插件
【官方地址:https://github.com/neo4j/apoc/releases】
直接下载好2025.8的版本
sudo wget -O /var/lib/neo4j/plugins/apoc.jar https://github.com/neo4j/apoc/releases/download/5.26.12/apoc-5.26.12-core.jar2.验证文件
ls -l /var/lib/neo4j/plugins/apoc.jar3.设置权限
sudo chown neo4j:neo4j /var/lib/neo4j/plugins/apoc.jar sudo chmod 644 /var/lib/neo4j/plugins/apoc.jar4.启动apoc
echo 'dbms.security.procedures.unrestricted=apoc.*' >> /etc/neo4j/neo4j.conf echo 'dbms.security.procedures.allowlist=apoc.*' >> /etc/neo4j/neo4j.conf5.重启
sudo /usr/bin/neo4j restart6.验证插件
三:python代码
【driver在上一篇文章中】
def verify_apoc_ready(tx):
"""检查 APOC 是否加载"""
result = tx.run("CALL apoc.help('') YIELD name RETURN count(name) AS totalCount")
record = result.single()
return record["totalCount"] > 0
def get_apoc_version(tx):
"""获取 APOC 版本"""
try:
result = tx.run("RETURN apoc.version() AS version")
record = result.single()
return record["version"]
except ClientError:
return None
def main():
# 测试连接
driver.verify_connectivity()
print("成功连接到 Neo4j 数据库")
with driver.session() as session:
# 1. 检查 APOC 是否存在
has_apoc = session.execute_read(verify_apoc_ready)
if not has_apoc:
print("APOC 未加载:没有找到任何 APOC 过程")
return
print("APOC 已加载(检测到多个 APOC 过程)")
# 2. 获取 APOC 版本
apoc_version = session.execute_read(get_apoc_version)
if apoc_version:
print(f"APOC 版本: {apoc_version}")
else:
print("APOC 版本无法获取,但过程可用")
driver.close()
if __name__ == "__main__":
main()
【未完待续...........】
更多推荐




所有评论(0)