当前位置: 首页 > ai >正文

[特殊字符]【实战教程】用大模型LLM查询Neo4j图数据库(附完整代码)

🌟 核心要点速览

✅ 基于LangChain框架实现LLM查询Neo4j ✅ 使用Qwen2.5模型(实测Llama3.1查不出内容) ✅ 包含完整数据准备+代码实现+效果演示 ✅ GitHub/Gitee源码已同步(文末获取)


🛠️ 环境准备

1️⃣ 安装Neo4j图数据库

# Windows安装指南参考:
# https://blog.csdn.net/xxx/xxx

2️⃣ 安装APOC插件

🔍 APOC是什么? Neo4j的超级工具包,提供300+扩展函数!

下载方式

  • GitHub官方源

  • CSDN资源站(文末附链接)

安装步骤

  1. 下载APOC插件(.rar)

  2. 放入Neo4j的plugins目录

  3. 重启Neo4j服务


🎬 数据准备

我们使用电影数据集作为示例:

数据集说明

  • 文件:movies_small.csv

  • 包含:电影、导演、演员、类型等关系

📌 关键导入代码

def create_graph():db_file_path = 'file:///movies_small.csv'movies_query = """LOAD CSV WITH HEADERS FROM '%s' AS rowMERGE (m:Movie {id:row.movieId})# ...完整导入逻辑见原文...""" % (db_file_path)graph.query(movies_query)graph.refresh_schema()

🔍 LLM查询实战

核心组件

from langchain_neo4j import GraphCypherQAChain
from langchain_ollama import ChatOllama
​
# 初始化大模型(实测Qwen2.5可用)
llm = ChatOllama(model="qwen2.5", temperature=0)
​
# 创建查询链
chain = GraphCypherQAChain.from_llm(graph=enhanced_graph, llm=llm,allow_dangerous_requests=True
)

🎯 查询示例

问题: "What was the cast of the Casino?"

LLM生成的Cypher

MATCH (m:Movie {title: 'Casino'})<-[:ACTED_IN]-(a:Person) 
RETURN a.name

查询结果

{"result": "The cast included James Woods, Joe Pesci...","context": [{"a.name": "James Woods"}, {"a.name": "Joe Pesci"},...]
}

💡 技术亮点

  1. 自动Cypher生成:LLM自动转换自然语言为数据库查询

  2. 错误处理:对比了Qwen2.5/Llama3.1/GLM3的表现差异

  3. 扩展性强:可轻松适配其他图数据库


📚 资源下载

资源类型链接
完整代码GitHub | Gitee
APOC插件CSDN下载
电影数据集文末附件
http://www.xdnf.cn/news/4613.html

相关文章:

  • 赋能金融科技创新,Telerik打造高效、安全的金融应用解决方案!
  • Linux58 ssh服务配置 jumpserver 测试双网卡 为何不能ping通ip地址
  • 从ellisys空口分析蓝牙耳机回连手机失败案例
  • 正则表达式(Regular Expression)详解
  • 关于ubuntu下交叉编译arrch64下的gtsam报错问题,boost中boost_regex.so中连接libicui18n.so.55报错的问题
  • 【Python 字符串】
  • Java常用API:深度解析与实践应用
  • 【Spring Boot 多模块项目】@MapperScan失效、MapperScannerConfigurer 报错终极解决方案
  • 安装 Docker
  • ZC706开发板教程:windows下编译ADRV9009
  • vue 中如何使用region?
  • PyTorch 实战:从 0 开始搭建 Transformer
  • 解决word里插入公式后打不开的问题
  • Linux-openeuler更换yum镜像源
  • uniapp + vue3 + 京东Nut动作面板组件:实现登录弹框组件(含代码、案例、小程序截图)
  • 村田与RohdeSchwarz联合开发用于测量Digital ET省电效果的RF系统
  • 网络化:DevOps 工程的必要基础(Networking: The Essential Foundation for DevOps Engineering)
  • 幂等的几种解决方案以及实践
  • STM32G070xx将Flash页分块方式存储,固定数据块存储,实现一次擦除多次写入
  • 【C语言】文件操作(续)
  • 一个用C#开发的记事本Notepads开源编辑器
  • Python实现中文数字与阿拉伯数字映射生成器(支持0-9999)
  • WebFlux与HttpStreamable关系解析
  • HuggingFace与自然语言处理(从框架学习到经典项目实践)[ 01 API操作 ]
  • 极简远程革命:节点小宝 — 无公网IP的极速内网穿透远程解决方案
  • 《开源先锋Apache软件基金会:历史沿革、顶级项目与行业影响》
  • 新能源汽车赛道变局:传统车企子品牌私有化背后的战略逻辑
  • java 破解aspose.words 18.6 使用
  • 如何使用 QuickAPI 推动医院数据共享 —— 基于数据仓库场景的实践
  • 学习笔记:数据库——事务