五分钟构建动态知识图谱:利用大模型提取实体关系与对话
利用知识图谱从大量文档、视频中提取信息,建立实体之间的关系,有利于加速信息处理,提取文档中的数据,以及发现实体之间潜在关系和规律。
随着 AI 大模型的快速发展,大模型和知识图谱的结合带来了更多可能性。本文将演示如何在 5 分钟内上传数据源,构建一个动态知识图谱,可用于提取实体关系,并且与数据对话。
这里使用的工具是 大模型知识图谱构建器(LLM Knowledge Graph Builder)。这是 Neo4j 生态系统中常用的 GraphRAG 工具之一,能够将非结构化数据转化为动态知识图谱,还可以通过自然语言查询数据并获得解释性见解。
什么是大模型知识图谱构建器
Neo4j 大模型知识图谱构建器是一款在线应用,无需编写代码和使用 Cypher 语言即可将非结构化文本转化为知识图谱,操作起来非常方便。
它利用机器学习模型将 PDF 文件、网页和 YouTube 视频等转化为包含实体及其关系的知识图谱。前端是基于 Needle Starter Kit 的 React 应用,后端是 Python FastAPI 应用。该应用使用了 Neo4j 为 LangChain 贡献的 llm-graph-transformer 模块。
该应用体验流畅,分为以下四个简单步骤:
- 导入数据:支持多种数据源,包括 PDF 文档、维基百科页面、YouTube 视频等。
- 识别实体:使用 AI 大模型识别并提取非结构化文本中的实体和关系。
- 构建图谱:将识别出的实体和关系转换为图谱格式,利用 Neo4j 的图谱功能。
- 使用图谱:提供直观的网页界面,用户可以方便地与应用互动,包括上传数据源、可视化生成的图谱以及与 RAG 代理交互。这一功能特别令人兴奋,因为它使用户能够直观地与数据互动,宛如与知识图谱对话,无需任何技术知识。

你可以在 Neo4j 官网使用应用程序,无需绑定支付信用卡和 AI 大模型密钥,使用过程无任何障碍。
如果你想在本地或自己的环境中运行该程序,可以访问 GitHub 仓库并按照以下步骤进行操作。
环境准备
在使用大模型知识图谱构建器之前,你需要创建一个新的 Neo4j 数据库。
你可以按照以下步骤使用免费的 AuraDB 数据库:
- 访问 https://console.neo4j.io 并登录或创建账户。
- 在 Instances 下创建一个新的 AuraDB Free 数据库。
- 下载凭证文件。
- 等待实例启动。
完成上述步骤后,Neo4j 数据库已经启动,并且有了凭证。点击右上角的 Connect to Neo4j,你打开大模型知识图谱构建器,将之前下载的凭证文件拖到连接对话框中,所有信息会自动填充。你也可以手动输入所有信息。
创建知识图谱
首先将非结构化数据导入,然后通过 AI 大模型识别关键实体及其关系。
你可以将 PDF 和其他文件拖到左侧的第一个输入区域。
第二个输入框允许你复制粘贴 YouTube 视频(暂不支持其他视频网站)链接。
第三个输入框则用于输入维基百科页面链接。
在这里,示例中上传了:
- 一家供应链公司内部的 PDF 文件,文档详细记录了他们的整个供应链策略和产品。
- 福布斯的新闻文章。
- 一个关于《企业可持续发展尽职调查指令》(CSDDD)的 YouTube 视频。
- 以及维基百科上的两篇文章。
你可以选择只上传 pdf 文档,视频或者维基百科页面。
上传文件时,应用程序会使用 LangChain 文档加载器,以及 YouTube 解析器将上传的文件存储为图中的文档节点。
所有文件上传完毕后,你会看到类似如下的界面:

现在,我们只需要选择使用的模型,点击 Generate Graph,系统将为你完成其余的工作!
如果你只想生成特定文件的图谱,可以先选择文件(在表格第一列的复选框中勾选),然后点击 Generate Graph。
⚠️ 提示:如果你想使用预定义的或自定义的图模式,可以点击右上角的设置图标,然后从下拉菜单中选择一个预定义模式。你也可以通过输入节点标签和关系来使用自定义模式,还可以从现有的 Neo4j 数据库中提取模式,或者粘贴文本,让 AI 大模型分析并提供建议的模式。
处理原理
处理文件并创建知识图谱是如何进行的呢?我把工作原理总结如下:
- 内容被分割成小块(Chunking)。
- 小块存储在图中,并连接到文档节点和彼此,以实现高级 RAG 模式。
- 高度相似的小块通过 SIMILAR 关系连接,形成 K 最近邻图。
- 计算并存储小块的嵌入和向量索引。
- 使用
llm-graph-transformer 或 diffbot-graph-transformer,从文本中提取实体和关系。
- 实体存储在图中,并连接到原始小块。
探索知识图谱
从文档中提取的信息被结构化为图形格式,其中实体成为节点,关系则成为连接这些节点的边。
Neo4j 的优势在于它能够高效地存储和查询这些复杂的数据网络,使生成的知识图谱能够立即用于各种应用。
在使用 RAG 代理提问之前,可以选中一个或多个文档,点击 显示图谱(Show Graph) 按钮。这将显示所选文档中的实体,你也可以在该视图中显示文档和块节点。

点击 Open Graph with Bloom 按钮将启动 Neo4j Bloom,将可视化创建的知识图谱。点击删除文件(Delete files)将从图中删除选定的文档和块(如果在选项中选择,也会删除实体)。
与你上传的数据对话
现在进入最后一个部分:使用右侧面板中的 RAG 代理(RAG agent)对话。
工作原理
下图展示了 GraphRAG 过程的简化视图。

当用户提出问题时,使用 Neo4j 向量索引和检索查询来找到与问题最相关的块及其连接的实体,深度最多可达两跳。
还可以总结聊天记录,并将其作为一个元素来丰富上下文。
各种输入的信息(问题、向量结果、聊天记录)都会被发送到选定的 AI 大模型中,通过一个自定义提示,向选定的 AI 大模型提供问题的各种输入和来源,并请求其根据这些元素和上下文提供并格式化问题的回答。当然,这个提示还包括其他方面,比如格式化要求引用来源,在不清楚答案时不进行推测等。
完整的提示和指令可以在 QA_integration.py 文件中找到,标记为 FINAL_PROMPT。
文件地址:https://github.com/neo4j-labs/llm-graph-builder/blob/main/backend/src/QA_integration.py#L59
对话界面功能
在主屏幕右侧的聊天窗口,你会看到三个按钮:
- 关闭:关闭聊天机器人界面。
- 清除聊天记录:删除当前会话的聊天记录。
- 最大化窗口:以全屏模式打开聊天机器人界面。
RAG 代理回答后,还有三种功能:
- 详情:打开检索信息弹出窗口,显示 RAG 代理如何收集和使用来源(文档)、块和实体的信息。还包括所用模型的信息和令牌消耗情况。
- 复制:将回答内容复制到剪贴板。
- 文字转语音:将回答内容朗读出来。

实际应用场景
现在,我就可以询问上传文档的知识了(使用之前上传的数据),比如查询这家公司生产的产品列表,以及这些产品是否受到 CSDDD 法规的影响,如果受到影响,具体的影响是什么。
这种能力使得非技术人员也能轻松利用复杂的知识库进行决策支持,而无需掌握 SQL 或图查询语言。
进阶用法与最佳实践
为了更深入地利用此工具,以下是一些进阶建议和注意事项:
1. 数据预处理
虽然工具支持直接上传 PDF 和视频,但为了提高实体识别的准确率,建议在上传前对文档进行简单的清洗。去除无关的广告、页眉页脚,确保文本内容的连贯性。
2. 自定义图模式
对于特定行业,通用的图模式可能不够精确。你可以尝试在设置中定义自定义的节点标签(Label)和关系类型(Relationship Type)。例如,在金融领域,可以将'公司'定义为 Company,将'投资'定义为 INVESTED_IN。
3. 结合 Cypher 查询
虽然工具提供了自然语言接口,但对于需要复杂逻辑的场景,可以直接在 Neo4j Browser 中使用 Cypher 语句进行查询。这允许你执行更精细的数据挖掘和分析任务。
4. 隐私与安全
在使用云端服务处理敏感数据时,请注意数据隐私政策。如果涉及企业内部机密,建议使用本地部署版本,并确保网络连接的安全。
结语
如果你想更深入地了解 AI 大模型知识图谱构建器,可以访问 GitHub 仓库,那里有丰富的信息,包括源代码和文档。
此外,你可以查看更详细的入门指南,获取更多知识图谱构建经验。
通过结合大模型的语义理解能力和知识图谱的结构化推理能力,我们可以构建出更加智能、可解释的 AI 应用系统。