演讲者背景与主题定位

本次工作坊由Neo4j的高级软件工程师兼高级开发者倡导者Nyah Macklin主讲,旨在深入探讨GraphRAG(基于图的检索增强生成)技术。Nyah拥有十年的相关领域经验,其研究重点涵盖图论、图算法以及上下文工程。她致力于解析人工智能系统的“黑盒”现象,通过追溯和解释AI系统的工作机制来推动AI治理与安全。对于不熟悉该概念的听众,本次分享被定位为一场“GraphRAG 101”的基础工作坊;而对于已有专家,则旨在统一认知基准。

“我想确保大家知道我们今天将要讨论的内容……这是一次GraphRAG 101类型的研讨会,适合那些对这一概念较新的听众。”

Workshop协作团队与支持体系

为了确保互动效果,Nyah邀请了多位团队成员共同参与现场支持。前排就座的Jeremy Adams Castanas负责解答各类疑问,而另一位同事Ryan Knight也在现场协助。此外,前一场次的演讲者、Neo4j团队杰出的AI研究工程师Zach作为特邀嘉宾加入,专门帮助解决参与者在工作坊中遇到的具体问题。这种多对多的支持模式旨在让每位参会者都能获得个性化的指导,确保在动手实践环节顺畅无阻。

学习平台Graph Academy介绍

本次工作坊依托于Neo4j完全免费的在线学习平台Graph Academy。该平台提供从构建智能体(Agents)到理解上下文图(Context Graphs)等全方位的课程资源。与传统的被动式讲座不同,Graph Academy强调“动手键盘开始构建”的实践导向学习。Nyah鼓励参会者利用这一资源,不仅限于本次AI Engineer活动,更作为长期学习图技术与RAG架构的宝贵工具。平台上的课程均为免费且随时可用,旨在降低学习门槛并提升实际操作能力。

环境配置与准备工作指南

在正式进入技术内容前,Nyah详细指导了参会者的环境搭建步骤。首先,用户需访问graphacademy.neo4j.com注册账户;其次,创建免费的Neo Aura实例(托管云平台),并特别强调选择免费实例以避免产生费用。为了简化开发流程,Neo4j还提供了一个免费的OpenAI API密钥供现场使用。虽然该API有用量限制以防止账单激增,但足以支持当天的构建实验。所有相关链接、笔记及资源均汇总在dev.neo4j.com/workshop-genai-notes文档中,方便参会者随时查阅和保存关键配置信息。

知识图谱实现机器与人类认知的融合

演讲者首先通过一个具体的案例——“苹果”,展示了三种不同的数据表示方式。在中心位置,我们看到了人类视角的直观图像;右侧则是向量化的视图,即一系列工程师熟悉的浮点数。这些数字对于未经特殊记忆训练的人类来说是不可读的。向量表示虽然能捕捉语义,但缺乏直观的可解释性。相比之下,左侧的知识图谱视图则截然不同。它将苹果的属性结构化:它来自树木、具有特定形状(圆形)、颜色(红色),并且属于水果类别而非公司实体。知识图谱的核心价值在于它能让机器理解人类所理解的逻辑,从而创造出一种既对机器可读又对人类可读的融合视图。这种结构不仅保留了数据的语义,更赋予了数据明确的逻辑关系。

传统表格与向量检索的性能瓶颈

在讨论数据结构时,演讲者指出了当前主流两种方式的局限性。如果数据以表格和行(Tables and Rows)的形式存储,为了理清各表之间的关联关系,系统往往需要执行大量复杂的连接(Joins)操作。这种复杂的数据关联查询会显著拖慢应用程序的性能。在追求“快速行动、打破常规”(move fast and break things)的硅谷文化背景下,这种低效是不可接受的。开发者通常倾向于先让系统半运行状态上线,后续再修补问题。然而,在需要高准确性、可解释性以及快速响应的场景中,这种缓慢的处理方式无法满足需求。相比之下,如果将相同的数据构建为知识图谱,关系和连接会变得极其清晰。代理(Agent)可以直接通过节点间的连线进行“跳跃”,从一个信息点直接关联到下一个,从而极大地提升了处理效率和逻辑透明度。

GraphRAG架构与多跳查询的优势

在系统架构层面,传统的RAG(检索增强生成)流程通常涉及将PDF等文档分块、使用文本嵌入模型索引,并在查询时检索最相关的Top K个片段传给大语言模型(LLM)。GraphRAG的根本区别在于其检索路径中明确包含了知识图谱。当用户的问题可以通过简单的搜索引擎解决时,基于向量的RAG通常已足够;但当问题涉及多跳查询(Multiple Hops),特别是需要至少三次以上的逻辑跳跃时,GraphRAG变得至关重要。例如在源代码分析、供应链追踪或需要跨文档聚合数据场景中,向量检索往往力不从心。通过知识图谱的节点遍历能力,系统能够清晰地展示代理是如何一步步得出答案的,这种追溯性在金融、医疗和法律等强监管领域尤为关键。演讲者强调,没有人希望看到“氛围银行”(Vibe banking)式的随意操作——即代理在没有上下文记忆的情况下随意支配资金或做出医疗决策。GraphRAG提供的历史背景和可追溯性,使得代理的响应更加准确、透明且具备合规所需的解释能力。

混合架构:向量与图的双重优势

在构建检索增强生成(RAG)系统时,单纯依赖向量搜索并非最优解。演讲者强调,使用图(Graph)和向量(Vector)相结合才是关键所在。这种混合架构并非旨在让图形数据库完全取代向量层,而是通过整合两者的优势来实现更高效的智能代理(Agents)。利用图结构可以弥补传统向量检索在语义关联上的不足,从而让智能代理发挥最大的效用。这种策略的核心在于叠加两种技术的收益:向量擅长处理语义相似度,而图擅长捕捉实体间的结构化关系。通过这种互补机制,系统能够更精准地定位信息,为后续的生成步骤提供更坚实的上下文基础。

检索器机制与多源数据融合

在RAG流程中,检索器(Retriever)是负责从外部数据源搜索并获取相关信息的核心组件。演讲者用“金毛寻回犬”(Golden Retriever)来比喻这一角色,形象地说明了检索器如何像狗一样去“抓取”必要的信息。具体而言,检索器接收非结构化输入(如用户的问题或提示词),并在结构化数据中搜索以提供回答所需的上下文。Neo4j支持的检索方式包括全文搜索、向量搜索以及文本或密码检索器。在一个典型的新闻聊天机器人案例中,架构呈现为多源融合:使用News API检索最新文章和标题,利用知识图谱理解主题间的历史关联关系,并通过文档数据库存储和检索文章或报告等文本信息。这种多层次的检索策略确保了系统既能获取实时数据,又能理解深层背景。

知识图谱的价值与基础定义**

引入图技术的核心优势在于提供更丰富的上下文、更高的准确性以及可解释性。通过遍历知识图谱并结合代理记忆(Agent Memory),系统能够获取构建智能代理所需的丰富历史背景。演讲者将知识图谱定义为对现实世界实体及其关系的有组织表示。在最简单的架构中,人(如演讲者本人或同事Jeremy)被视为节点(Node),而人与人之间的关系(如同僚、朋友)则构成边(Relationship)。这种结构化的数据表示方式,使得原本分散的信息通过明确的连接形成网络。知识图谱不仅仅存储孤立的数据点,而是展示实体间的互联性,例如连接同事Zach和Ryan等更多节点。这种直观的拓扑结构为理解复杂语义关系提供了基础,是传统向量数据库难以独立实现的。

基于LLM的知识图谱自动化构建**

在知识图谱的构建环节,重点在于如何从非结构化文本中高效提取实体和关系。标准的处理流程包括:收集数据源、对信息进行分块(Chunking)、向量化处理,最后提取节点和关系并生成图谱。以Neo4j的维基百科页面为例,系统首先抓取文本并将其分割成多个片段。随后,为每个分块生成嵌入向量(Embeddings)和矢量表示。最关键的一步是使用大型语言模型(LLM)提取实体和关系。虽然手动提取可行,但演讲者指出,利用LLM进行自动化提取可以显著减少所需的时间。通过向LLM发送适当的提示词(Prompt),系统能够自动识别文本中的关键实体及其相互关系,从而快速构建出结构化的知识图谱。这一过程展示了如何利用生成式AI的能力来加速传统图数据的工程化构建。**

Cypher 语言介绍与互动环节

演讲者首先展示了从文本中提取实体和关系的提示词(Prompt)示例,强调输出需为包含 JSON 对象的列表格式。随后生成的图数据将直接用于构建知识图谱。Cypher 是专为图形数据库优化的查询语言,演讲者借此机会与现场观众互动。她提到:“Has anyone used Cipher before? A couple.” 为了增加工作坊的参与度,演讲者承诺为勇敢回答问题的观众提供独家周边礼品(swag),包括 T 恤、袜子等。这种互动旨在让工作坊比传统形式更具参与感,同时也为后续的技术讲解营造轻松氛围。

Neo4j 背景与名称由来

在技术细节之外,演讲者简要介绍了 Neo4j 公司的背景。她指出 Neo4j 并非开发了所有类型的图数据库,而是专门由其公司开发的特定图数据库产品。该数据库是用 Java 语言实现的。演讲者还分享了一个有趣的冷知识:Neo4j 的名称来源于电影《黑客帝国》(The Matrix)中的主角 Neo,以及其底层语言 Java 的结合。这一背景知识帮助观众更好地理解品牌命名逻辑,也为后续的技术演示做了铺垫。

GraphRAG for Python 环境配置指南

进入实操环节,演讲者引导观众访问左侧边栏的 GraphRAG for Python 链接。这是一个由 Neo4j 提供的开源包,用于知识图谱的构建、检索及智能体工作。观众需点击 “Open in GitHub Codespaces” 并登录 GitHub。M.env.example 文件是配置的关键,观众需复制该文件并重命名为 .env。演讲者强调必须创建 Neo4j Aura 实例(建议免费实例用于工作坊),并获取连接凭据。她提到:“create a Neo Forj Aura instance... specifically for this workshop.” 如果无法及时创建实例,可以使用 Graph Academy 中提供的免费测试凭据作为替代方案。

OpenAI Key 集成与环境验证

除了 Neo4j 连接信息,观众还需从笔记中获取 OpenAI Key 并填入 .env 文件中。保存配置后,演讲者演示了如何验证环境设置是否成功。通过运行 test_environment.py 脚本,系统会尝试连接 Neo4j 数据库并验证 OpenAI API。结果显示:“it ran five tests and it's positive.” 五个测试全部通过 表明环境配置正确,可以继续进行后续的知识图谱构建工作。演讲者提醒观众注意不要直接修改示例文件,而应创建新的 .env 文件或重命名副本以避免错误。

构建知识图谱:从代码到可视化

演示的核心步骤是利用 Neo4j Aura 实例中的 Knowledge Graph Structured Builder(知识图谱结构化构建器)来自动生成知识图谱。在 VS Code 环境中运行相关代码后,系统会开始处理数据并生成图谱。这个过程需要一定时间,但可以在 Aura 界面中实时观察到节点的填充情况。由于演示者之前已经运行过该流程,因此当前数据中存在一定的重复现象,但这不影响对最终结构的观察。

为了验证图谱内容,演示者使用了 Cypher 查询语言 MATCH p = ()-->() RETURN p(原文修正了语法错误)来展示所有节点和关系。这不仅仅是一个可视化工具,更是一个查询工具,允许用户直接检查数据。随着运行次数的增加,图谱规模会逐渐增长,因为每次查询都会返回当前实例中所有的节点和关系。通过点击数据项,用户可以深入检查具体的属性信息。

启用 Agent 功能与组织配置

在知识图谱初步生成后,下一步是创建智能体(Agent)。如果用户界面中未显示“Agents”部分,需要进入 Neo4j 组织设置进行启用。具体操作是在 Organization Settings(组织设置)中,依次点击并激活“Generate AI Assistance”和“Aura Agent”选项。这两个功能默认可能是灰色不可点击状态,需要手动开启才能使用智能体构建能力。

启用后,返回到具体的实例界面并打开 Query 模式。此时可以看到知识图谱正在动态填充。演示者强调,在创建智能体之前必须确保向量搜索(Vector Search)或相似度搜索已添加到配置中,否则无法进行后续的提示词工程。如果缺少这一组件,系统会弹出单独的提示信息要求添加向量索引。

智能体创建与基础配置

演示者开始从头创建一个名为“Graph RAG Fundamentals Agent”的智能体,并将其绑定到当前的 Aura 实例。该智能体的描述被设定为:提供基于特定 Graph Academy 课程内容的 Neo4j Graph RAG 信息。这种描述方式确保了智能体的回答具有明确的领域边界和知识来源。

在配置界面中,除了名称、描述和目标实例外,还需要提供具体的指令(Instruction)。演示者建议直接复制预设的提示词模板到智能体的指令区域,以保持配置的一致性。这些模板通常会在演示笔记中提供,方便观众直接粘贴使用。保持实例位置、内部设置等默认选项不变,点击创建即可完成智能体的基础搭建。

向量索引的必要性与技术细节

在正式激活智能体之前,必须解决技术依赖问题。相似度搜索是执行复杂提示词的前提条件,这意味着需要在数据库中创建向量索引(Vector Index)。演示者引导观众前往 Python 代码部分或相关文档链接,获取创建向量索引的示例代码。

“Vector search is necessary in order to do that.”

这段引用强调了向量搜索在 RAG(检索增强生成)架构中的核心地位。没有向量索引,智能体就无法有效地进行语义匹配和上下文检索。创建向量索引的代码片段会被提供给观众用于后续的配置,这是确保智能体能够正确理解并检索图谱中关联信息的关键技术步骤。

创建向量索引与配置 Agent 基础

在构建基于图数据库的检索增强生成(RAG)系统时,首先需要确保向量索引已正确建立。对于使用 Aura 实例的用户,操作入口位于 Aura 控制台的查询界面(Query Interface)。用户需要进入 Cypher 查询窗口,执行创建向量索引的命令。如果之前已经成功运行过该命令,系统会提示索引已存在;若未创建,执行后将显示新创建的向量索引信息。这一步是后续所有语义搜索的基础。

"Yes, you're right. You're absolutely right... create that vector index."

完成索引创建后,回到 Agent 配置部分。通过 "Create from scratch"(从零开始)和 "Configure"(配置)流程,选择 GraphRAG 模板。系统会自动填充一个描述性的提示词(Prompt),用户需确认该 Prompt 内容符合预期。这一步确立了 Agent 的核心行为逻辑,即基于图结构进行上下文检索。

配置相似性搜索工具与嵌入模型

在 Agent 的 "Add tool"(添加工具)环节,需要配置一个名为 Similarity Search 的工具。该工具的具体功能是搜索课程(Lesson)内容并从中提取见解,而不仅仅是返回原始文本。用户需为工具添加描述(Description),例如 "Search lesson content",以便 LLM 理解何时调用此工具。

在技术细节上,选择之前创建的 Vector Index(具体为 chunk embedding),设置返回 Top 5 的相似结果。嵌入提供者选择 OpenAI,模型指定为 text-embedding-3-small。该模型的默认维度(Dimensions)为 1536 维。这一配置确保了文本被转化为高维向量,以便在图数据库中进行高效的相似度计算。

集成 Cypher 查询以返回连接数据

为了充分利用图数据库的优势,必须配置一个能够返回 Connected Graph Data(连接图谱数据)的工具。虽然可以使用自然语言描述,但推荐使用具体的 Cypher 查询语句。演示者强调,这个 Cypher 查询至关重要,因为它不仅返回节点(Nodes),还包含相似度分数(Scores/Similarity)。

"This is the cipher query that we're going to use... include nodes and then scores as well"

具体的 Cypher 查询语句需直接粘贴到 Agent 配置中,且不要修改任何内容。该查询的设计目的是在检索相似节点的同时,保留图结构中的关系信息。通过这种方式,Agent 不仅能获取相关片段,还能理解这些片段在知识图谱中的上下文关联。演示者提供了该查询的链接或代码块,供用户直接复制使用。

运行 Agent 与知识图谱问答演示

所有配置完成后,创建名为 Graph Fundamentals Agent(图基础 Agent)的实例。该 Agent 集成了内部工具、课程搜索工具和相似性搜索工具,并直接关联到 Neo4j 中的知识图谱。用户可以向 Agent 提问关于 Graph Academy 课程内容的问题,例如 "Temperature(温度参数)如何影响 LLM?"。

"The fun thing is... all those PDF files were from an intro to Genai course in Graph Academy"

Agent 基于知识图谱中的信息回答:Temperature 是控制生成文本随机性的参数,较低的温度意味着较低的随机性。此外,Agent 还能提供信息来源链接。然而,在测试聚合类问题时出现了偏差:当询问 "课程中有多少节课?" 时,Agent 回答为 30 节。实际上课程只有 15 节课,这是因为演示者重新运行了知识图谱构建器(Knowledge Graph Builder),导致数据重复计数。这揭示了当前 RAG 管道在处理聚合和连接操作时的潜在弱点,尽管它能准确检索语义内容。

知识图谱结构化构建器的代码解析

在演示环节中,演讲者展示了用于生成知识图谱的 knowledge_graph_structured_builder 文件的核心代码逻辑。该构建器依赖于多个关键组件,包括 OpenAI LLM、OpenAI Embeddings 以及 Neo4j 的驱动程序(Driver)。代码中明确指定了文本分块策略,采用 Fixed Size Splitter 并将 chunk size(分块大小)设置为 500,同时设置了 overlap(重叠部分)以防止信息丢失。这种配置确保了在处理原始数据时能够保持上下文的完整性,为后续的图谱构建打下基础。

结论

GraphRAG通过融合向量语义搜索与图结构关系遍历,有效解决了传统RAG在多跳查询、复杂关联及可解释性方面的瓶颈。其核心优势在于利用知识图谱提供丰富的历史背景与逻辑透明度,满足金融、医疗等强监管场景对准确性及合规追溯的严苛要求。然而,演示中出现的课程计数错误揭示了当前系统在聚合统计与去重机制上仍存在潜在弱点。

该技术并非旨在取代向量检索,而是构建混合架构的关键补充。其适用条件明确指向涉及至少三次以上逻辑跳跃、需跨文档聚合或深度上下文理解的复杂场景。对于简单语义匹配,传统向量RAG仍具性价比;而在需要代理具备明确行动逻辑与结构化记忆的任务中,GraphRAG提供了更坚实的上下文基础。