深度学习-175-知识图谱技术之langchain与neo4j的深入剖析
文章目录
- 1 场景描述
-
- 1.1 场景目标
- 1.2 ollama本地大模型
- 1.3 GraphCypherQAChain
- 2 自定义QA链
-
- 2.1 定义查询链
-
- 2.1.1 详细流程
- 2.1.2 对应代码
- 2.2 封装成QA链
- 3 Langchain为何不做拖拉拽工作流
-
- 3.1 工作流和智能体
- 3.2 可视化工作流构建器的问题
- 3.3 不同复杂度的解决方案
- 4 参考附录
通过定义查询链,然后封装为QA链,实现自定义QA链。理解langchain_neo4j
的CypherQAChain类利用大语言模型(LLM)和数据库的模式,将用户的问题转换为Cypher查询,并在数据库上执行该查询,这个工作流程。同时又介绍了Langchain为什么不愿意做拖拉拽工作流。
1 场景描述
上一节使用langchain_neo4j的GraphCypherQAChain和Neo4jGraph。
CypherQAChain类支持与Neo4j数据库进行自然语言交互。它利用大语言模型(LLM)和数据库的模式,将用户的问题转换为Cypher查询,并在数据库上执行该查询。然后,生成的数据会连同用户的问题一起发送给大语言模型(LLM),以生成自然语言回复。
这些内容都封装在类中,本节主要介绍一个这个过程是如何实现的。
1.1 场景目标
让大语言模型(LLM)自动将用户的问题翻译成正确的Cypher查询语句,然后执行并返回结果。
使用LangChain和Neo4j,结合LLM自动生成Cypher,构建一个智能电影问答系统。
用户提问:“汤姆·汉克斯演过哪些由斯皮尔伯格导演的电影?”
系统可以:
(1)理解问题语义。
(2)由LLM自动生成正确的Cypher查询。
(3)在Neo4j中执行。
(4)返回结构化结果,并用自然语言回答。
1.2 ollama本地大模型
from langcha