学习如何结合 Neo4j 知识图谱和 LangChain,打造精准、可解释、适合生产环境的 Retrieval-Augmented Generation (RAG) 系统。
Retrieval-Augmented Generation (RAG) 已经迅速成为让 Large Language Models (LLMs) 在生产环境中真正发挥作用的首选架构。RAG 不再仅仅依赖 LLM 的内部记忆,而是将其与外部知识源连接起来。
虽然大多数教程展示的是使用 Pinecone、Weaviate 或 FAISS 等向量数据库的 RAG,但在现实世界的问题中,单靠语义相似度往往不够。你需要关系、推理和可解释性。这正是 Neo4j 驱动的知识图谱大放异彩的地方。
在这篇文章中,我们将使用 LangChain 构建一个 Neo4j 驱动的 RAG 管道,内容包括:
- • 为什么将知识图谱与 RAG 结合
- • 安装和配置 Neo4j + LangChain
- • 将数据导入 Neo4j(节点、关系、嵌入)
- • 编写 Cypher 查询 + 混合检索器
- • 使用 LangChain 的 graph chain 连接 Neo4j 和 LLM
- • 一个完整的实际示例
为什么在 RAG 中使用知识图谱?
传统的向量检索会找到与查询相似的文本片段。但在以下情况下它会失败:
- • 答案需要多跳推理(例如:“哪些供应商间接影响产品 X?”)
- • 关系是关键(药物 → 靶点 → 蛋白质 → 疾病)
- • 需要可解释性(用户想知道模型为什么这样回答)
Neo4j 允许你以图谱形式显式存储实体和关系,并使用 Cypher 进行查询。通过 LangChain,你可以结合:
- • 图谱遍历进行结构化查询
- • 嵌入进行语义相似性匹配
- • LLM 进行推理和自然语言回答
这就形成了混合检索管道:精准、可解释、适合生产环境。
设置
–
首先安装依赖:
pip install langchain langchain-community neo4j openai你还需要一个运行中的 Neo4j 数据库(本地或 AuraDB Free)。
步骤 1:连接到 Neo4j
LangChain 提供内置的 Neo4j 图谱集成:
from langchain_community.graphs import Neo4jGraph graph = Neo4jGraph( url="bolt://localhost:7687", username="neo4j", password="password" ) # 检查 schema print(graph.schema)这让 LangChain 能够理解你的知识图谱的实体和关系。
步骤 2:将数据导入 Neo4j
让我们插入一个小型医疗知识图谱:
CREATE (d1:Disease {name: "Diabetes"}) CREATE (d2:Disease {name: "Hypertension"}) CREATE (drug1:Drug {name: "Metformin"}) CREATE (drug2:Drug {name: "Insulin"}) CREATE (drug3:Drug {name: "Lisinopril"}) CREATE (drug1)-[:TREATS]->(d1) CREATE (drug2)-[:TREATS]->(d1) CREATE (drug3)-[:TREATS]->(d2)现在我们可以直接查询类似(:Drug)-[:TREATS]->(:Disease)的关系。
步骤 3:使用 LangChain 的 Cypher Chain
LangChain 有一个 CypherChain,可以将自然语言问题转化为 Cypher 查询:
from langchain_openai import ChatOpenAI from langchain.chains import GraphCypherQAChain llm = ChatOpenAI(model="gpt-4.1") cypher_chain = GraphCypherQAChain.from_llm( llm=llm, graph=graph, verbose=True ) response = cypher_chain.run("Which drugs treat Diabetes?") print(response)LLM 会将自然语言问题翻译成 Cypher 查询,在 Neo4j 上执行,然后返回人类可读的答案。
步骤 4:添加向量检索(混合 RAG)
如果用户问一些模糊的问题,比如“用来控制血糖的是什么?”单靠图谱可能不够。
这时候混合 RAG 就派上用场了:
- • 使用嵌入 + 向量数据库进行语义召回
- • 使用 Neo4j 进行关系推理
在 LangChain 中,你可以组合检索器:
from langchain.retrievers import EnsembleRetriever from langchain_community.vectorstores import FAISS from langchain_openai import OpenAIEmbeddings # 示例 FAISS 检索器 embeddings = OpenAIEmbeddings() vectorstore = FAISS.from_texts( ["Metformin is first-line treatment for type 2 diabetes.", "Insulin regulates blood glucose levels.", "Lisinopril is used for hypertension."], embeddings ) faiss_retriever = vectorstore.as_retriever() # 组合 Neo4j + FAISS 检索器 hybrid_retriever = EnsembleRetriever( retrievers=[faiss_retriever, graph], weights=[0.5, 0.5] )现在你的管道同时利用了语义和结构。
步骤 5:完整的 Neo4j RAG 链
以下是如何将它组装成完整的 LangChain RAG 流程:
from langchain.chains import RetrievalQA rag_chain = RetrievalQA.from_chain_type( llm=llm, retriever=hybrid_retriever, chain_type="stuff" ) query = "What drugs are commonly prescribed for high blood sugar?" answer = rag_chain.run(query) print(answer)检索器会从 Neo4j 和向量嵌入中拉取上下文,LLM 则生成自然语言答案。
高级扩展
- •图谱 + LLM 代理:使用 LangChain Agents 结合工具(Neo4j 查询工具 + 向量检索工具)。
- •Schema 感知提示:将 Neo4j 的 schema 提供给 LLM,让它写出更好的 Cypher 查询。
- •路径解释:返回答案旁边的实际图谱路径,以提高可解释性。
- •图谱嵌入:使用 Neo4j Graph Data Science 计算实体/路径的嵌入。
使用场景
- •医疗 RAG:检索有效的药物-疾病关系,防止幻觉。
- •金融风险:建模机构之间的风险暴露,使用混合检索查询“间接风险”。
- •法律搜索:将案例法引用表示为图谱,进行多跳先例推理。
- •企业知识:基于本体论的聊天机器人,用于内部文档发现。
结论
–
仅依赖向量检索会限制系统处理复杂推理和多跳查询的能力。通过引入知识图谱,你不仅能获得更丰富的关联,还能提升可解释性和结构化推理能力。
使用 LangChain 的 Neo4jGraph 和 CypherQAChain,将 Neo4j 集成到 RAG 管道中变得无缝。此外,采用混合检索策略——结合嵌入和基于图谱的遍历——能提供语义灵活性和关系准确性之间的最佳平衡。
在实践中,LangChain 和 Neo4j 的结合使开发出既强大又可解释、值得信赖的生产级 RAG 系统成为可能。
普通人如何抓住AI大模型的风口?
领取方式在文末
为什么要学习大模型?
目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。
目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。
随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!
最后
只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!
在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
大模型全套学习资料展示
自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。
希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!
01教学内容
从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!
大量真实项目案例:带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
02适学人群
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
vx扫描下方二维码即可
本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!
03入门到进阶学习路线图
大模型学习路线图,整体分为5个大的阶段:
04视频和书籍PDF合集
从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)
新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
05行业报告+白皮书合集
收集70+报告与白皮书,了解行业最新动态!
0690+份面试题/经验
AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)
07 deepseek部署包+技巧大全
由于篇幅有限
只展示部分资料
并且还在持续更新中…
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发