深度学习-177-知识图谱技术之langchain与neo4j完整的RAG系统示例
文章目录
- 1 一个完整的RAG系统示例
-
- 1.1 嵌入模型
- 1.2 大语言模型
- 2 准备数据
-
- 2.1 初始化Neo4jVector
- 2.2 插入数据(自动向量化)
- 2.3 手动创建向量索引(推荐)
- 2.4 在Neo4j中建立图关系(Cypher)
- 3 使用图增强检索器
-
- 3.1 向量检索最相关的文档
- 3.2 通过图查询扩展上下文
- 3.3 构建增强上下文
- 4 构建RAG链
首先向量检索最相关的文档并得到相关节点,以这些节点为起点,通过图查询扩展上下文,然后将相关的内容归并起来,构建增强的上下文,最后调用LLM获取最终的答案。
1 一个完整的RAG系统示例
(1)用户提问。
(2)向量检索Neo4jVector。
(3)获取相关节点。
(4)图查询扩展Neo4jGraph。
(5)构建结构化上下文。
(6)LLM生成答案。
1.1 嵌入模型
from langchain_ollama import OllamaEmbeddings
import os
os.environ['OLLAMA_HOST'] = '127.0.0.1'
os.environ['OLLAMA_PORT'] = '11434'
embed_model = OllamaEmbeddings(model="bge-m3")
确定 embedding 的维度
# Python 中运行
embedding = embed_model.embed_query("hello world")
dimension = len(embedding)
print(dimension) # 例如:1536
输出1024。
1.2 大语言模型
from langchain_openai import ChatOpenAI
from dotenv import d