Neo4j + Deepseek构建电影知识图谱智能问答 完整实例分享
一、前述传统的问答系统要么基于关键词匹配答非所问要么基于向量检索缺乏逻辑推理能力。而知识图谱大模型的组合正好解决了这个问题Neo4j存储结构化知识能回答关系的逻辑DeepSeek负责自然语言理解和生成能看懂问句、组织答案LangChain在中间做翻译官把自然语言转成 Cypher 查询语句本文带你从零搭建这样一个系统。全文代码均可直接运行。二、环境准备2.1 安装 LangChain 相关依赖pip install --upgrade --quiet langchain langchain-community langchain-openai neo4j2.2 安装 Neo4j 图数据库访问 Neo4j 部署中心下载neo4j-community-5.26.4版本解压到任意目录例如D:\neo4j2.3 安装 APOC 插件增强 Neo4j 功能APOC 是 Neo4j 的扩展工具包提供了大量实用函数。从 APOC 发布页 下载apoc-5.26.6-core.jar将该文件复制到 Neo4j 安装目录下的plugins文件夹修改 Neo4j 配置文件\conf\neo4j.conf在末尾添加以下两行dbms.security.procedures.unrestricted apoc.* dbms.security.procedures.allowlist apoc.*2.4 启动 Neo4j打开命令行进入 Neo4j 安装目录的\bin文件夹运行neo4j console看到Started字样说明启动成功浏览器访问http://localhost:7474即可查看。三、核心代码实现3.1 导入依赖并配置环境变量import getpassimport osfrom langchain.chains importGraphCypherQAChainfrom langchain_openai importChatOpenAIfrom langchain_community.graphs importNeo4jGraphos.environ[OPENAI_API_KEY]您的DeepSeek API 秘钥os.environ[NEO4J_URI]bolt://localhost:7687os.environ[NEO4J_USERNAME]neo4jos.environ[NEO4J_PASSWORD]您的Neo4j密码3.2 初始化 LLM大语言模型这里使用DeepSeek作为底层大模型因为它便宜、快且代码理解能力很强。llm ChatOpenAI( modeldeepseek-chat, base_urlhttps://api.deepseek.com/v1)3.3 连接 Neo4j 并构建知识图谱llm ChatOpenAI( modeldeepseek-chat, base_urlhttps://api.deepseek.com/v1)graph Neo4jGraph()# Import movie informationmovies_query LOAD CSV WITH HEADERS FROM https://raw.githubusercontent.com/tomasonjo/blog-datasets/main/movies/movies_small.csv AS rowMERGE (m:Movie {id:row.movieId})SET m.released date(row.released), m.title row.title, m.imdbRating toFloat(row.imdbRating)FOREACH (director in split(row.director, |) | MERGE (p:Person {name:trim(director)}) MERGE (p)-[:DIRECTED]-(m))FOREACH (actor in split(row.actors, |) | MERGE (p:Person {name:trim(actor)}) MERGE (p)-[:ACTED_IN]-(m))FOREACH (genre in split(row.genres, |) | MERGE (g:Genre {name:trim(genre)}) MERGE (m)-[:IN_GENRE]-(g))#用Loadcsv 在线下载并构建电影知识图谱数据graph.query(movies_query)graph.refresh_schema()#刷新schema3.4 构建问答链并提问chain GraphCypherQAChain.from_llm(graphgraph,allow_dangerous_requestsTrue,llmllm, verboseTrue)response chain.invoke({query:电影《Casino》的演员阵容是怎样的})#提问print(response)#回答四、运行结果程序执行过程中LangChain 会自动将自然语言转换为 Cypher 查询语句生成的 Cypher 查询MATCH ( p : Person ) - [ : ACTED_IN ] - ( m : Movie { title : Casino } ) RETURN p . name从 Neo4j 中查到的原始数据[ { p.name : James Woods } , { p.name : Joe Pesci } , { p.name : Robert De Niro } , { p.name : Sharon Stone } ]最终输出的自然语言答案电影《Casino》的演员阵容包括詹姆斯·伍兹James Woods、乔·佩西Joe Pesci、罗伯特·德尼罗Robert De Niro和莎朗·斯通Sharon Stone。五、完整代码import getpassimport osfrom langchain.chains importGraphCypherQAChainfrom langchain_openai importChatOpenAIfrom langchain_community.graphs importNeo4jGraphos.environ[OPENAI_API_KEY]您的DeepSeek API 秘钥os.environ[NEO4J_URI]bolt://localhost:7687os.environ[NEO4J_USERNAME]neo4jos.environ[NEO4J_PASSWORD]您的Neo4j密码llm ChatOpenAI( modeldeepseek-chat, base_urlhttps://api.deepseek.com/v1)graph Neo4jGraph()# Import movie informationmovies_query LOAD CSV WITH HEADERS FROM https://raw.githubusercontent.com/tomasonjo/blog-datasets/main/movies/movies_small.csv AS rowMERGE (m:Movie {id:row.movieId})SET m.released date(row.released), m.title row.title, m.imdbRating toFloat(row.imdbRating)FOREACH (director in split(row.director, |) | MERGE (p:Person {name:trim(director)}) MERGE (p)-[:DIRECTED]-(m))FOREACH (actor in split(row.actors, |) | MERGE (p:Person {name:trim(actor)}) MERGE (p)-[:ACTED_IN]-(m))FOREACH (genre in split(row.genres, |) | MERGE (g:Genre {name:trim(genre)}) MERGE (m)-[:IN_GENRE]-(g))#用Loadcsv 在线下载并构建电影知识图谱数据graph.query(movies_query)graph.refresh_schema()#刷新schemachain GraphCypherQAChain.from_llm(graphgraph,allow_dangerous_requestsTrue,llmllm, verboseTrue)response chain.invoke({query:电影《Casino》的演员阵容是怎样的})#提问print(response)#回答六、总结通过以上不到 50 行核心代码我们实现了组件作用Neo4j存储电影、人物、类型等实体及关系DeepSeek理解自然语言问题 生成流畅答案LangChain自动将问题转成 Cypher 查询连接 NLU 和 DB这个方案的亮点在于你不需要写任何 Cypher 语句只需用自然语言提问系统自动完成查询和回答。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】