neo4j-semantic-layer
该模板旨在实现一个能够通过语义层与图形数据库(如 Neo4j)交互的代理,使用 OpenAI 函数调用。
语义层为代理提供了一套强大的工具,使其能够根据用户的意图与图形数据库进行交互。
在相关博客文章中了解更多关于语义层模板的信息。
工具
该代理使用多个工具有效地与 Neo4j 图形数据库进行交互:
- 信息工具:
- 检索有关电影或个人的数据,确保代理能够访问最新和最相关的信息。
- 推荐工具:
- 根据用户的偏好和输入提供电影推荐。
- 记忆工具:
- 在知识图谱中存储有关用户偏好的信息,从而在多次交互中提供个性化体验。
环境设置
您需要定义以下环境变量
OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
NEO4J_URI=<YOUR_NEO4J_URI>
NEO4J_USERNAME=<YOUR_NEO4J_USERNAME>
NEO4J_PASSWORD=<YOUR_NEO4J_PASSWORD>
使用数据填充
如果您想用示例电影数据集填充数据库,可以运行 python ingest.py
。
该脚本导入有关电影及其用户评分的信息。
此外,该脚本创建了两个 fulltext indices,用于将用户输入的信息映射到数据库。
使用方法
要使用此包,您首先需要安装 LangChain CLI:
pip install -U "langchain-cli[serve]"
要创建一个新的 LangChain 项目并将其作为唯一的包安装,您可以执行:
langchain app new my-app --package neo4j-semantic-layer
如果您想将其添加到现有项目中,可以直接运行:
langchain app add neo4j-semantic-layer
并将以下代码添加到您的 server.py
文件中:
from neo4j_semantic_layer import agent_executor as neo4j_semantic_agent
add_routes(app, neo4j_semantic_agent, path="/neo4j-semantic-layer")
(可选)现在让我们配置 LangSmith。 LangSmith 将帮助我们跟踪、监控和调试 LangChain 应用程序。 您可以在此处注册 LangSmith here。 如果您没有访问权限,可以跳过此部分。
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-semantic-layer/playground 访问游乐场
我们可以通过以下代码访问模板:
from langserve.client import RemoteRunnable
runnable = RemoteRunnable("http://localhost:8000/neo4j-semantic-layer")