探索Neo4j-Cypher-Memory:如何利用自然语言与图形数据库对话

96 阅读3分钟

引言

在当今数据驱动的世界中,复杂数据集的分析和交互显得尤为重要。Neo4j是广受欢迎的图形数据库,而Cypher语言则是其查询数据的核心。在本文中,我们将探讨如何使用Neo4j-Cypher-Memory模板,通过自然语言与Neo4j图形数据库进行交互。这一技术结合了OpenAI的强大语言模型和Neo4j的图形存储能力,使用户能够通过简单的自然语言查询数据。

主要内容

环境设置

为了使用Neo4j-Cypher-Memory,我们首先需要配置环境变量:

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数据库,其中使用Neo4j AuraDB提供的云服务是一个简单的选择。创建一个免费实例并获取访问凭据。为了实验目的,我们可以使用python ingest.py脚本填充一些示例数据,如电影数据。

使用LangChain CLI

安装LangChain CLI以便管理应用:

pip install -U langchain-cli

创建新的LangChain项目并添加neo4j-cypher-memory作为唯一包:

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

或者将其添加到现有项目:

langchain app add neo4j-cypher-memory

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

from neo4j_cypher_memory import chain as neo4j_cypher_memory_chain

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

可选配置

如果需要跟踪、监控和调试LangChain应用,可以注册使用LangSmith:

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

代码示例

以下是一个简单的示例,展示如何通过自然语言查询Neo4j数据库中的电影数据。

from langserve.client import RemoteRunnable

# 配置远程可运行实例
runnable = RemoteRunnable("http://localhost:8000/neo4j-cypher-memory")  # 使用API代理服务提高访问稳定性

# 提供自然语言查询
query = "Show me movies directed by Christopher Nolan."

# 运行并获取结果
response = runnable.run(user_id="user123", session_id="session456", query=query)
print(response)

常见问题和解决方案

  1. 访问受限问题: 如果你所在地区访问Neo4j AuraDB或者OpenAI的API受到网络限制,可以考虑使用API代理服务以提高访问的稳定性。

  2. 基础数据缺失: 在没有预先填充数据时执行查询可能会失败,建议在使用前运行数据填充脚本。

总结和进一步学习资源

通过将自然语言处理与图形数据库结合使用,Neo4j-Cypher-Memory模板简化了数据交互的复杂性。为了深入学习,建议访问以下资源:

参考资料

  1. Neo4j 官网:neo4j.com/
  2. OpenAI API 文档:beta.openai.com/docs/
  3. LangChain GitHub 仓库:github.com/langchain

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

---END---