如何优化提示以生成 Cypher 语句,以便从 Neo4j 中检索与你的 LLM 应用程序相关的信息

由 Midjourney 构想的知识图谱聊天机器人。
我们探讨了如何在 LangChain 库中开始使用 Cypher 搜索,以及为什么您会想要在您的 LLM 应用程序中使用知识图谱。在这篇博客文章中,我们将继续探索将知识图谱集成到 LLM 和 LangChain 应用程序的各种用例。在这个过程中,您将学习如何改进提示以产生更好、更准确的 Cypher 语句。
具体来说,我们将通过提供几个 Cypher 语句示例来探讨如何使用 LLMs 的少量样本能力,这些示例可以用来指定 LLM 应该产生哪些 Cypher 语句,结果应该是什么样子,等等。此外,您还将学习如何将 Neo4j 图数据科学库中的图算法集成到您的 LangChain 应用程序中。
GitHub.
所有代码都可以在 GitHub 上找到。
Neo4j 环境设置
I
在这篇博客文章中,我们将使用在 Neo4j Sandbox 中可用的 Twitch 数据集。

Twitch dataset graph model. Image by the author.
Twitch 数据集图形模型。图片由作者提供。
Twitch 社交网络由用户组成。这些用户中只有一小部分通过直播流广播他们的游戏或活动。在图形模型中,进行直播的用户被标记为次要标签“Stream”。有关他们所属的团队、他们在直播中玩的游戏以及他们呈现内容的语言的额外信息是存在的。我们也知道在抓取时他们有多少关注者,历史总浏览量,以及他们何时创建了他们的账户。对于网络分析来说,最相关的信息是知道哪些用户参与了主播的聊天。你可以区分在直播中聊天的用户是普通用户(CHATTER 关系)、直播的版主(MODERATOR 关系)还是直播的 VIP。
提高 LangChain Cypher 搜索
首先,我们必须设置 LangChain Cypher 搜索。
import os from langchain.chat_models import ChatOpenAI from langchain.chains import GraphCypherQAChain from langchain.graphs import Neo4jGraph os.environ['OPENAI_API_KEY'] = "OPENAI_API_KEY" graph
python
12345678
于 2024-05-01 20:59:38 发布 · 1.4k 阅读