欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 图谱驱动的智能:如何用Django实现GraphRAG的高效检索

图谱驱动的智能:如何用Django实现GraphRAG的高效检索

2024/10/23 23:24:14 来源:https://blog.csdn.net/qq_30333063/article/details/140988184  浏览:    关键词:图谱驱动的智能:如何用Django实现GraphRAG的高效检索

前言

前面一章讲述了构建知识图谱来提高基于 RAG 的应用程序的准确性,并且使用 Neo4jLangChainRAG 应用程序中构建和检索知识图谱信息。

图形检索增强生成 (Graph RAG) 这种方法利用图形数据库的结构化特性,将数据组织为节点和关系,以增强检索信息的深度和上下文性。

由于篇幅可能会比较长,这一篇知识点较多,我单独分成了两个小节

一、给定 Cypher 查询结果图表

Cypher 是什么?可能很多小伙伴不太懂这个,一来就产生一个疑问,我这里简单描述一下。

Cypher 其实是 Neo4j的图形查询语言,可让您从图形中检索数据。

它就像是 SQL 语句,不过它是图形的 SQL,但它受到 SQL 的启发,因此我们可以专注于怎么从图形中获取什么数据(而不是如何获取数据)。

后面几章节我会详细对 Cypher 的 语句 进行详细说明。

打开我们 Jupyter(https://jupyter.org/try-jupyter/lab/index.html)或者 Colab(https://colab.research.google.com/drive/),因为下面使用到了 yfiles_jupyter_graphs 它支持的环境就是 Jupyter 环境,VS CodeGoogle Colab 环境:

%pip install --upgrade --quiet  langchain langchain-community langchain-openai langchain-experimental neo4j wikipedia tiktoken yfiles_jupyter_graphs
from neo4j import GraphDatabase
from yfiles_jupyter_graphs import GraphWidgetos.environ["NEO4J_URI"] = "bolt://*********"
os.environ["NEO4J_USERNAME"] = "ne*******"
os.environ["NEO4J_PASSWORD"] = "de**********"
os.environ["OPENAI_API_KEY"] = "sk-*********"graph = Neo4jGraph()
# dire
ctly show the graph resulting from the given Cypher query
default_cypher = "MATCH (s)-[r:!MENTIONS]->(t) RETURN s,r,t LIMIT 50"def showGraphDetail(cypher: str = default_cypher):# create a neo4j session to run queriesdriver = GraphDatabase.driver(uri = os.environ["NEO4J_URI"],auth = (os.environ["NEO4J_USERNAME"],os.environ["NEO4J_PASSWORD"]))session = driver.session()widget = GraphWidget(graph = session.run(cypher).graph())widget.node_label_mapping = 'id'return widget
showGraphDetail(default_cypher)

"MATCH (s)-[r:!MENTIONS]->(t) RETURN s,r,t LIMIT 50" 这就是一句我们的 Cypher 查询语句,它表示的意思是 “找出图数据库中所有通过非’MENTIONS’关系相连的节点对,返回这些节点和它们之间的关系,但最多只返回50组这样的结果。”

这个查询可以用来探索图中的各种关系,同时排除了 "MENTIONS" 这种特定的关系类型。

它对于了解图的结构和不同实体之间的连接方式很有用,尤其是当你想排除某种特定类型的关系时。
点击运行,出现下面界面:

我们在这里可以看到之前保存到 Neo4j 的图数据。

二、混合检索

图生成后,我们将使用混合检索方法,将向量和关键字索引与 RAG 应用程序的图检索相结合。

在检索过程中,从用户提出问题开始,然

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com