微信扫码
添加专属顾问
我要投稿
探索LLM知识图谱构建器如何革新数据可视化,提升用户体验。 核心内容: 1. LLM知识图谱构建器前端架构概览 2. 现代化前端技术栈与实时数据更新技术 3. UI架构、组件与设计模式的最佳实践
本文将带您深入了解 LLM 知识图谱构建器工具的前端架构,揭秘其如何简化知识图谱的构建流程并提升用户体验。该工具提供了一个用户友好的界面,简化了 PDF 文件和其他 Web 资源的上传流程,并借助 LLM 生成知识图谱。它还提供了一个聊天体验,可以使用生成的知识图谱与 GraphRAG 检索器进行交互。
LLM 知识图谱构建器的用户界面采用现代化的前端技术栈构建:使用 React 实现应用逻辑和组件,Axios 负责处理网络调用和响应。为了实现实时数据更新,我们采用了长轮询或服务器发送事件 (SSE) 技术。其中,长轮询是一种简单的机制,可以在客户端和服务器之间维持稳定的连接。其原理是,当服务器没有响应时,客户端会保持请求一段时间,并在有新信息时,定期更新客户端的状态和处理块(频率为每分钟一次)。服务器发送事件 (SSE,Server-Sent Events) 则是一种服务器主动推送实时数据更新的技术,适用于服务器循环生成数据并向客户端发送多个事件,或者需要从服务器到客户端的实时数据流的场景。CSS 设计通过基于 Neo4j 的 Needle Design System 的 Tailwind CSS 或 styled-components 实现。
React Context API 用于状态管理。用户界面引导用户完成知识图谱构建和聊天体验的每个步骤,方便不同技术水平的用户轻松使用。
流程和架构
LLM 知识图谱构建器使用了以下技术:
我们使用了 Neo4j Needle Design System(https://www.neo4j.design/),它用于所有 Neo4j UI、产品工具和网页。它遵循 Web 行业的标准,如无障碍设计,并提供用户友好的设计元素、配色方案和组件。我们还涵盖了应用程序中的常见设计模式和通用的 UX 写作规范。
Neo4j Needle starter kit(https://github.com/neo4j-labs/neo4j-needle-starterkit) 帮助我们加快了开发速度。响应式 starter kit 用于构建具有 Neo4j Needle Design System 的应用程序,以加速 Neo4j 驱动的前端应用程序的价值实现。它提供了基本的、可扩展的组件,可以根据功能进行调整。
用户友好的界面引导用户连接到 Neo4j Aura、访问文件源、上传 PDF 文件、生成图、可视化图以及聊天界面:
Needle Design System 开箱即用地支持主题(如深色和浅色),这使开发人员的工作更加轻松。
步骤:
1. 启动连接
启动应用程序,开始与 UI 交互。
2. Neo4j 连接
用户提供必要的凭据和连接详细信息,以建立与 Neo4j 数据库的连接。这是他们指定主机、端口、用户名和密码以访问目标数据库实例的地方。
3. 数据摄取
用户上传或指定数据源。包括:
4. 实体识别
系统使用 LLM 处理摄取的数据,以识别实体(关键对象、概念等)以及这些实体之间的关系。这是 LLM 查看内容并开始识别和提取文档中的相关信息的地方。
5. 图构建
在上一步中识别的实体和关系用于在 Neo4j 数据库中构建知识图谱。这包括确定构成图数据库的节点(实体)和边(关系)。
6. 可视化
用户现在可以可视化构建的图。选项包括:
7. 与 RAG 代理交互
用户通过提问与聊天机器人交互。应用程序使用检索增强生成 (RAG) 从知识图谱中检索相关信息并生成答案。用户可以选择仅向量或 GraphRAG 方法。他们还可以访问有关 RAG 代理如何检索和使用源材料的详细信息。用户可以与机器人交互,提出问题并改进查询。
8. 结束
用户已完成其交互。这可能涉及关闭应用程序、探索该图、构建应用程序以使用数据或导出数据。
用户通过添加协议、URI、数据库名称、用户名和密码等详细信息来连接 Neo4j 数据库。您还可以直接将创建 Aura 或 Sandbox 实例时下载的凭据文件拖放到连接对话框中,以使用强大的错误处理填充表单。
连接对话框
用户可以上传不同类型的文件,包括:
系统会读取文件内容,并将其分割成块,然后将这些块转换为 Document
节点。大于 CHUNK SIZE (5MB) 的文件将被分成二进制块并发送到服务器。在服务器端,所有块将被合并并处理以创建文档节点。CHUNK SIZE 可通过 Docker 文件配置进行配置。
用户可以提供 Web 资源,例如 Wikipedia、YouTube 视频和 Web URL(例如,对于文章),这些资源使用 Unstructured LangChain loader(https://python.langchain.com/docs/integrations/providers/unstructured/) 进行处理。创建 Document
节点,并基于配置处理源内容以生成文本 Chunk
。
用户可以提供来自 Amazon S3 和 Google Cloud Storage 的批量上传的源。
对于 S3,用户需要提供其访问密钥、秘密密钥和 S3 URL。提交这些凭据后,系统会导入存储桶和文件夹中的所有 PDF 文件,并为每个文件创建 Document
节点,同时将其内容作为 Chunk
节点。
Amazon S3:
Google Cloud Storage:
用户需要提供项目 ID、存储桶名称和文件夹。然后,他们会获得重定向到身份验证页面的流程,以验证其 Google 帐户以获得对存储桶的访问权限。
我们支持各种模型(https://neo4j.com/labs/genai-ecosystem/llm-graph-builder-features/)。用户可以选择任何其他支持 OpenAI API 的模型,只需在配置中提供相应的 API 密钥即可。当前选择的模型将用于提取、后处理、检索、聊天及评估等多个功能模块。对于后者,您也可以根据需要切换模型。
要处理文档,用户需要单击“生成图”按钮,该按钮使用 LangChain 中的 LLM Graph Transformer(https://medium.com/towards-data-science/building-knowledge-graphs-with-llm-graph-transformer-a91045c49b59) 工具启动提取过程。所选文件或处于新状态的文件将进入处理状态,若无失败则进入完成状态。
为了实时更新处理进度,我们采用了服务器发送事件(SSE)技术。服务器会从数据库中实时读取文档状态,并通过流式传输的方式发送给客户端。在客户端,我们会在每次进度更改时更新状态,并进行最小的重新渲染,以确保性能标准。
我们创建了一个自定义 Hook,该 Hook 将在组件中使用,以更新处理进度。我们还实现了批量处理功能。当用户选择超过两个文件时,系统每次仅处理两个文件(可配置),以减轻公共部署版本的后端负载。我们创建了一个队列状态来维护顺序。批处理大小可通过 Docker env 进行配置。
用户可以通过选择所需的选项来重新处理失败或取消的文件,方法是单击重新处理图标(↻)。状态将更改为“准备好重新处理”。然后,用户可以通过单击“生成图”按钮来重新处理多个文件。
用户可通过以下三种方式重新处理:
对于图可视化,我们使用 Neo4j Visualization Library(https://neo4j.com/docs/nvl/current/) 中的 InteractiveNvlWrapper 组件,该组件提供灵活性和处理程序,以根据业务逻辑集成图可视化。我们创建了一个可重用组件,用于在应用程序的各个阶段呈现该图。
我们调用后端 API 一次,以从数据库获取节点和关系,并在本地应用过滤器以提升用户体验。
用户可以单击节点以查看有关节点的详细信息 - 类型、属性等。我们还实现了客户端搜索功能,用户可以通过标签或顺序文本搜索特定节点。我们支持次要的可视化操作,例如放大/缩小和刷新图,这在文档处理正在进行时非常有用。
我们将在此系列的另一篇博文中发布,我们将更深入地研究图可视化的复杂性以及我们如何解决这些问题。
我们支持许多处理增强功能,用户可以配置设置,例如为提取设置自定义图模式、获取用于引导提取的其他说明、以交互方式删除孤立节点、合并重复节点(按相似度)。
实体提取:用户可以选择提供自定义模式,使用现有的模式示例,或者加载 Neo4j 数据库的当前模式。
我们还支持通过 LLM 从提供的文本示例(最多几页)中提取模式。这适用于模式描述元数据(考虑 RDF 本体、CREATE TABLE 语句或仅口头描述),也适用于要处理的文档的示例部分。
这可以加快候选图模型的生成,然后用户可以对其进行优化或清理。
其他说明: 其他说明用于通过为提取提示添加其他指南来优化知识图谱。您可以指示模型仅关注当前事件或忽略某些类型的技术或组织,或提供其他上下文信息,例如词汇表或领域信息。
分块配置: 分块过程的可选配置:
删除断开连接的(孤立)节点: 用户可以交互式地列出和删除未连接到任何其他实体(仅连接到块或社区)的断开连接的节点。
节点去重: 用户可以合并相似的实体以消除冗余并提高知识图谱的准确性和清晰度。我们使用向量和文本距离相似性的组合来对候选者进行分组。您可以在合并所选行的节点之前删除单个节点。
后处理作业:用户可以选择在提取过程之后可以运行哪些作业,这将开箱即用地改进 GraphRAG 等功能。无论是 Graph Data Science (GDS) 实例还是非 GDS 实例,我们都支持社区选项,包括以下功能:
表过滤器: 用户可以根据提取状态、源类型、模型类型等属性对文档表进行排序和过滤。
我们支持各种检索模式来分析图、向量搜索、实体搜索和 GraphRAG 实现的功能。用户可以选择一个或多个检索器进行聊天,并在每个检索器的聊天结果之间切换,以直观地查看生成的答案的差异。
我们支持聊天功能的两种视图。用户可以在主 UI 侧栏中聊天,也可以在单独的模态框中聊天以获得更好的体验。用户还可以收听答案、复制答案并以 JSON 格式下载对话。
通过对话查询与 Neo4j 数据库中的数据进行交互,还可以使用专用的仅聊天 UI 检索有关查询响应来源的元数据。
对于专用的聊天界面,请访问仅聊天路由上的独立聊天应用程序。此链接提供了一个集中的聊天体验,用于查询您的数据。
我们支持聊天答案的可解释性,这允许用户验证从图数据库检索的并由 LLM 用于生成答案的实际答案来源和实体。
您可以通过单击“详细信息”来查看它们。在弹出窗口中,我们不仅显示有关检索模式、模型、令牌和运行时的信息,还显示用于生成答案的块、实体、社区。
用户可以可视化文本块和实体的邻域上下文,并可以 JSON 格式下载见解。
用户可以通过单击“查看详细指标”按钮,通过 Ragas(http://github.com/explodinggradients/ragas/) 评估管道来衡量/验证所有检索器的答案准确性。Ragas 是一种评估工具,用于通过 LLM 和基本事实答案来衡量 RAG 系统响应的质量,可以为其他指标提供基本事实答案。
总的来说,该应用程序融合了现代设计原则、卓越的可用性和强大的高级功能。它使用户能够轻松构建、优化知识图谱并与之交互,从而更便捷地获取和利用数据洞察。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-15
知识库优化之路(三):嵌入模型的选择和使用方法
2025-04-15
微软Phi-4-mini:小模型如何在GraphRAG中大放异彩?
2025-04-14
MCP技术革命:元控制协议如何重构AI与数据库的交互范式
2025-04-13
用大模型构建企业级知识图谱真的太简单了!
2025-04-13
深入解析 GreptimeDB MCP:连接数据库与 LLM 的桥梁
2025-04-13
GraphRAG的100%!把Agent接入知识图谱,自主精准找到数据!与LangGraph融合最终形态!day1
2025-04-07
解决Dify与Milvus集成难题:从零到一的实战避坑指南
2025-04-07
别只看LLM!为什么知识图谱才是通往AGI的关键一步
2025-01-02
2024-07-17
2024-08-13
2025-01-03
2024-07-11
2024-08-27
2024-06-24
2024-07-13
2024-07-12
2024-06-10
2025-04-15
2025-04-09
2025-03-29
2025-02-13
2025-01-14
2025-01-10
2025-01-06
2025-01-02