# Neo4j 课程教你做 GraphRAG，它的博客却说何时别做

> 这门两小时课程用 SEC 文件建图，但没有向量 RAG 基线，就无法向客户证明图真的有用。

原文: https://fdetimes.net/zh/books-courses/neo4j-knowledge-graphs-for-rag-course-review/

这门 2 小时 4 分钟的课程教你为 RAG 构建知识图谱。但对前线部署工程师（FDE）最有用的一句话不在课程里，而在 Neo4j 自家的博客上：如果 GraphRAG 没有改善你的指标，建模和维护图的投入就不值得。

两者并不矛盾。课程教的是*怎么*做 GraphRAG；在客户现场，更难的是判断*要不要*做。凡是被客户问到“为什么不用知识图谱？”的人，都应该学这门课，前提是清楚哪些内容能直接用到客户项目上，哪些得自己补。

## 两小时，三项能用上的技能

“Knowledge Graphs for RAG”是 DeepLearning.AI 上的一门短课，由 Neo4j 生成式 AI 创新负责人 Andreas Kollegger 讲授。官方页面显示最近一次更新是 2025 年 10 月 7 日。

课程承诺三项成果：用 Neo4j 的查询语言 Cypher 管理和检索图中的数据；编写查找并整理文本的查询，让 LLM 获得更相关的上下文；用 Neo4j 和 LangChain 搭建问答系统。

动手内容大多围绕从文本构建图，数据集是 SEC 文件。第 5 课的标题是“Constructing a Knowledge Graph from Text Documents”，与图对话的那一课放在最后。

## 按什么顺序学？

这门课与 LangChain 绑定很紧。DeepLearning.AI 建议先掌握 LangChain，或者先学“LangChain: Chat with Your Data”。如果从没搭过基于向量的 RAG 数据管道，先学那门课，这样手里才有可对比的基线。

学完之后，Andreas Kollegger 还讲授“Agentic Knowledge Graph Construction”（3 小时 8 分钟）。这门课在 Google ADK 上用多智能体系统自动构建图：先由 Agent 识别用户目标，再提议要抽取哪些节点和关系。它补上的正是 RAG 课程留下的 schema 空白。

## 第一课：谈图之前，先给问题分类

Neo4j 把 GraphRAG 定义为一组基于图结构的检索模式，而不是某个单一产品。对于何时不用图，这家公司说得很明确：如果问题靠语义匹配从一个段落里就能回答，向量检索仍是正确的工具。

图适合多跳问题，也就是事实之间的关系才是关键的那类问题。

用课程里的 SEC 数据来想象一下。“A 公司在今年的文件中列出的最大风险是什么？”只需要一个段落，向量处理得很好。

但“哪些公司和 A 公司依赖同一家供应商？”需要先从 A 走到供应商，再走回其他公司。这是两跳，图的优势就在这里。

**要点:** 先问客户的问题需要几跳，再问需不需要图。

## 第二课：真正的技能是整理上下文

Cypher 练几次就能上手。更值得掌握的是课程的第二项成果：编写既能*查找*又能*整理*文本的查询，供 LLM 使用。好的查询不会返回一堆节点，而是返回模型读得懂的内容。

以上面的两跳问题为例。假设图里有 `Company` 节点、`Supplier` 节点和 `DEPENDS_ON` 关系（这是示意用的 schema，不是课程里的）。查询大致如下：

```cypher
MATCH (a:Company {name: 'Company A'})-[:DEPENDS_ON]->(s:Supplier)
      <-[:DEPENDS_ON]-(other:Company)
RETURN s.name AS supplier, collect(other.name) AS peers
```

原始结果只是几个名字和列表。整理这一步把它变成一句话：“A 公司依赖供应商 S。同样依赖 S 的其他公司：B、C。”这段字符串连同文件中的原始段落，就是发给 LLM 的上下文。

做练习时有个技巧：把发给 LLM 的上下文字符串原样打印出来，假装自己是模型去读。模型只能看到你给它的东西，如果你自己都觉得费解，就别指望它给出清楚的回答。

## 第三课：动手之前先写验收测试

Neo4j 的建议是先测量。第一次演示之前，和客户商定一组问题、一个指标和一个阈值。然后跑向量基线，之后才在同一组问题上跑图。

假设客户的问题集几乎全是单段落问题。那么图带来的差异多半不足以覆盖维护成本，而你刚刚为客户省下了几周工作。有证据支撑的“不需要图”，同样是有价值的结论。

## 课程跳过的部分最费功夫

课程的问答系统跑在结构化文本文档上，而不是客户那里杂乱的数据。有部署经验的工程师 Tian Pan 提醒：如果没有一套有章法的实体去重方法，图就会支离破碎；在他看来，这部分可能比抽取本身还费功夫。

具体来说，如果“Company A”“A Corp”和 A 的股票代码变成三个独立节点，上面的两跳查询只能匹配其中一个，答案就会不完整，而且不报任何错。

Tian Pan 还认为，混合架构需要一个路由器，决定何时用图来丰富上下文、何时只用向量，而这样的路由器很难做好。课程没有教这部分。

简历上别只写“学过 GraphRAG”。要写清楚：你在哪个具体问题集上把图和向量基线做了对比，如何处理重复实体，最终是保留还是放弃了图。如果岗位描述里提到“knowledge graph”或“Neo4j”，面试时要准备好讲这些决策背后的故事。

课程能带你做出一个能跑的演示。至于何时放弃图，只有客户能教你。

**本周动手试试:**

- 从客户或手头的 RAG 项目中取 20 个真实问题，逐条标注“单段落”或“多跳”，统计哪一类占多数
- 学完“Constructing a Knowledge Graph from Text Documents”这一课，再用一批更杂乱的自有文档重建图，记下有多少实体被拆成了多个节点
- 建图之前先写验收测试：用什么指标、阈值多少、如何与向量基线对比测量

## 信源

- [Knowledge Graphs for RAG - DeepLearning.AI](https://www.deeplearning.ai/courses/knowledge-graphs-rag)

- [Knowledge Graphs for RAG - DeepLearning.AI](https://www.deeplearning.ai/short-courses/knowledge-graphs-rag/)

- [Agentic Knowledge Graph Construction - DeepLearning.AI](https://www.deeplearning.ai/courses/agentic-knowledge-graph-construction)

- [Intro to GraphRAG - GraphRAG Pattern Catalog](https://graphrag.com/concepts/intro-to-graphrag/)

- [Vector RAG vs. GraphRAG: Which retrieval do you need?](https://neo4j.com/blog/agentic-ai/vector-rag-vs-graphrag/)

- [GraphRAG vs. Vector RAG: The Architecture Decision Teams Make Too Late](https://tianpan.co/blog/2026/04/19/graphrag-vs-vector-rag-architecture-decision)
