LLM 知识图谱构建器是 Neo4j 提供的一款创新工具,旨在将非结构化数据转化为动态知识图谱,支持生成式 AI 应用。该工具集成了检索增强生成(RAG)聊天机器人,使用户能够通过自然语言查询数据并获得可解释的洞察。用户无需编写代码,即可通过简单的步骤实现数据的提取与可视化,极大地简化了知识图谱的构建过程。

  1. 工具介绍

    • LLM 知识图谱构建器可将 PDF、网页和 YouTube 视频等非结构化文本转化为知识图谱。
    • 该应用基于 React 前端和 Python FastAPI 后端,使用 Neo4j 的图形能力进行图谱构建。
  2. 使用步骤

    • 数据摄取:支持多种数据源,如 PDF、维基百科页面和 YouTube 视频。
    • 实体识别:利用 LLM 识别和提取文本中的实体及其关系。
    • 图谱构建:将识别的实体和关系转化为图格式。
    • 用户界面:提供直观的网页界面,方便用户上传数据源、可视化生成的图谱,并与 RAG 代理互动。
  3. 创建知识图谱

    • 用户可通过拖放文件或输入链接来上传数据,系统将自动识别和处理。
    • 提供预定义的图谱模式选项,用户可根据需求选择或自定义模式。
  4. 探索与互动

    • 生成的知识图谱以节点和边的形式展现,便于高效存储和查询复杂数据网络。
    • 用户可通过 RAG 代理询问与数据相关的问题,系统将根据存储的图谱信息提供回答。

LLM 知识图谱构建器:从零到 GraphRAG 只需五分钟

使用 LLM 知识图谱构建器,在你的生成式 AI (GenAI) 应用中提取和使用知识图谱。

LLM 知识图谱构建器Neo4j 的 GraphRAG 生态系统工具之一,帮助你将非结构化数据转化为动态知识图谱。它集成了检索增强生成 (RAG) 聊天机器人,支持自然语言查询,并提供数据的可解释见解。

什么是 Neo4j LLM 知识图谱构建器?

Neo4j LLM 知识图谱构建器是一款创新的在线应用,无需编写代码和 Cypher 查询,即可将非结构化文本转化为知识图谱,提供神奇的文本到图谱体验。

它使用机器学习模型 (大语言模型:OpenAI、Gemini、Diffbot) 将 PDF、网页和 YouTube 视频转换为实体及其关系的知识图谱。

前端是基于我们的 Needle Starter Kit 的 React 应用,后端是 Python FastAPI 应用。它使用 Neo4j 为 LangChain 贡献的 llm-graph-transformer 模块

该应用提供了无缝体验,包含以下四个步骤:

  1. 数据导入 — 支持多种数据源,包括 PDF 文档、维基百科页面、YouTube 视频等。
  2. 实体识别 — 使用大语言模型识别和提取非结构化文本中的实体和关系。
  3. 图谱构建 — 将识别出的实体和关系转换为图谱格式,利用 Neo4j 图谱功能。
  4. 用户界面 — 提供直观的网页界面,方便用户上传数据源、可视化生成的图谱,并与 RAG 智能体互动。这一功能特别令人兴奋,因为它允许用户与数据进行直观的互动,就像与知识图谱本身对话一样,无需技术知识。

让我们来试试

我们在 Neo4j 托管环境中提供了该应用,无需信用卡和大语言模型密钥,无障碍使用。

或者,要在本地或你的环境中运行它,请访问公共 GitHub 仓库,按照本文中提供的分步说明操作。

在打开并使用 LLM 知识图谱构建器之前,让我们创建一个新的 Neo4j 数据库。你可以按照以下步骤使用免费的 AuraDB 数据库:

  • 登录或创建一个帐户 https://console.neo4j.io
  • 在实例下,创建一个新的 AuraDB 免费数据库。
  • 下载凭证文件。
  • 等待实例运行。

现在我们有了运行的 Neo4j 数据库和凭证,我们可以打开 LLM 知识图谱构建器,并点击右上角的 Connect to Neo4j

将之前下载的凭证文件拖到连接对话框中。所有信息会自动填写。或者,你也可以手动输入。

创建知识图谱

这个过程从导入你的非结构化数据开始,然后通过大语言模型识别关键实体及其关系。

你可以将 PDF 和其他文件拖放到左侧的第一个输入区。第二个输入区允许你复制/粘贴 YouTube 视频链接,第三个输入区则接受维基百科页面链接。

在这个例子中,我将加载一些关于供应链公司的 PDF 文件,名为 GraphACME 的虚构供应链公司,一篇来自福布斯的新闻文章,以及一段关于公司可持续发展尽职调查指令 (CSDDD) 的 YouTube 视频,还有两页来自维基百科:公司可持续发展尽职调查指令孟加拉国

上传文件时,应用将使用 LangChain 文档加载器和 YouTube 解析器将上传的资源存储为图中的文档节点。所有文件上传完成后,你应该会看到类似这样的界面:

现在我们只需选择要使用的模型,点击 Generate Graph,然后让它完成剩下的工作!

如果你只想生成文件选择,可以先选择文件 (通过表格第一列的复选框) 并点击 Generate Graph

⚠️ 注意,如果你想使用预定义或你自己的图谱模式,可以点击右上角的设置图标,从下拉列表中选择预定义模式,使用你自己编写的节点标签和关系,或者从现有的 Neo4j 数据库中提取现有模式,或复制/粘贴文本并请求大语言模型分析并提出建议的模式。

在处理你的文件并创建你的知识图谱时,让我总结一下幕后发生的事情:

  1. 内容被分割成块。
  2. 块被存储在图中,并连接到文档节点和彼此,以实现高级 RAG 模式。
  3. 高度相似的块通过 SIMILAR 关系连接,形成 K 最近邻图。
  4. 嵌入被计算并存储在块和向量索引中。
  5. 使用 llm-graph-transformer 或 diffbot-graph-transformer,从文本中提取实体和关系。
  6. 实体被存储在图中并连接到源块。

探索你的知识图谱

从文档中提取的信息被结构化为图谱格式,其中实体成为节点,关系成为连接这些节点的边。使用 Neo4j 的优点在于其高效存储和查询这些复杂的数据网络,使生成的知识图谱立即可用于多种应用。

在我们使用 RAG 智能体询问有关数据的问题之前,我们可以选中一个或多个文档的复选框并点击 Show Graph。这将显示为你选中的文档创建的实体;你还可以在该视图中显示文档和块节点。

Open Graph with Bloom”按钮将打开 Neo4j Bloom,帮助你可视化和导航新创建的知识图谱。下一步操作——Delete files 删除图中的选定文档和块 (如果在选项中选择,还包括实体)。

与知识对话

现在到了最后一部分:你可以在右侧面板中看到 RAG 智能体。

检索过程——它是如何工作的?

下图显示了 GraphRAG 过程的简化视图。

当用户提出问题时,我们使用 Neo4j 向量索引和检索查询来查找与问题最相关的块及其连接的实体,深度达 2 跳。我们还会总结聊天记录并将其作为元素来丰富上下文。

各种输入和来源 (问题、向量结果、聊天记录) 都会在自定义提示中发送给选定的大语言模型,要求基于提供的元素和上下文回答问题并格式化回答。当然,提示还有更多的功能,如格式化、要求引用来源、如果答案未知则不进行推测等。完整的提示和说明可以在 FINAL_PROMPT 中找到。

提出与数据相关的问题

在这个例子中,我加载了一个虚构公司 GraphACME (位于欧洲) 的内部文档,记录了他们的整个供应链策略和产品。我还加载了一篇新闻文章和 YouTube 视频,解释了新的 CSDDD、其影响和法规。我们现在可以向聊天机器人提问关于我们内部 (虚构) 公司知识的问题——关于 CSDDD 法律的问题,甚至是跨两个方面的问题,比如询问 GraphACME 生产的产品清单,它们是否会受到 CSDDD 法规的影响,如果会,如何影响公司。

聊天功能

在主屏幕右侧,你会看到附在聊天窗口上的三个按钮:

  • 关闭 将关闭聊天机器人界面。
  • 清除聊天记录 删除当前会话的聊天记录。
  • 最大化窗口 将全屏打开聊天机器人界面。

在 RAG 智能体的回答上,你会发现回答后有三个功能:

  • 详细信息将打开一个检索信息弹出窗口,显示 RAG 智能体如何收集和使用资源 (文档)、块和实体。还包括所用模型和 Token 消耗的信息。
  • 复制将复制回答内容到剪贴板。
  • 文本到语音将朗读回答内容。

总结

要深入了解 LLM 知识图谱构建器,GitHub 仓库提供了丰富的信息,包括源代码和文档。此外,我们的文档提供了详细的入门指南,GenAI 生态系统则提供了对更广泛工具和应用的进一步见解。

资源

了解更多关于 GenAI 应用的新资源:Neo4j GraphRAG 生态系统工具。这些开源工具使得使用知识图谱构建 GenAI 应用变得容易,这有助于提高响应质量和可解释性,加速应用开发和采用。

视频

完整版直播

链接