在本篇文章中,我们将演示如何利用LangChain框架和Neo4j图数据库来构建一个基于问答链(QA Chain)的查询系统。通过调用大语言模型(LLM),可以动态生成Cypher查询,从而简化数据库查询的流程。这种方法非常适合应用于知识图谱、推荐系统等需要灵活数据查询的场景。
一、准备工作
在开始之前,请确保已经安装了Neo4j和LangChain库,并且已将Neo4j数据库在本地运行。
pip install openai langchain neo4j
二、设置LLM
首先,设置并加载大语言模型(LLM),在这里我们将使用OpenAI的GPT模型。为了安全起见,API密钥应存储在环境变量中。以下代码片段演示了如何加载API密钥并初始化LLM实例。
import openai
from dotenv import load_dotenv
import os
from langchain.chat_models import ChatOpenAI
# 加载环境变量中的API密钥
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
organization = os.getenv("OPEN_AI_ORG")
# 初始化LLM
llm = ChatOpenAI(
openai_api_key=api_key,
openai_organization=organization,
max_tokens=1500
)
三、连接到Neo4j数据库
接下来,使用Neo4jGraph
类连接到本地Neo4j数据库,设置连接地址和用户名、密码。确保数据库已在端口7687上运行。
from langchain.graphs import Neo4jGraph
graph = Neo4jGraph(
url="bolt://localhost:7687",
username="neo4j",
password="12345678"
)
四、向数据库插入数据
假设数据库当前是空的。我们可以使用Cypher查询语句添加数据。在本例中,我们添加了电影《壮志凌云》的演员信息。MERG