GraphRAG入门:知识图谱+RAG下一代检索
🩺 摘要
传统RAG只是把文档切成块扔进向量库。遇到复杂问题——「A公司和B公司有什么关系」「这个产品的供应链是什么样的」——传统RAG就答不上来了。GraphRAG能解决这个问题。
📝 详情
普通RAG的局限
普通RAG:文档→切块→向量化→搜相似。
它能回答:「公司今年的财报说了什么?」 它答不好:「公司今年业绩增长主要靠哪些业务线?这些业务线之间有什么关联?」
第二个问题需要理解关系——GraphRAG就是干这个的。
GraphRAG是什么
GraphRAG在传统RAG的基础上加了知识图谱。它不仅存文档内容,还存实体之间的关系:
[华为] -- [合作] --> [赛力斯]
[赛力斯] -- [生产] --> [问界M9]
[问界M9] -- [使用] --> [华为ADS]
当用户问「华为跟哪些汽车厂商合作」时,GraphRAG从图谱里搜关系,比纯向量搜索准确得多。
快速上手
最简单的方案是使用Microsoft GraphRAG项目。
pip install graphrag
# 初始化项目
graphrag init --root ./myproject
# 把文档放到 ./myproject/input/
# 运行索引
graphrag index --root ./myproject
# 问答
graphrag query --root ./myproject --method global --query "华为跟哪些汽车厂商合作?"
什么时候该用GraphRAG
| 场景 | 普通RAG | GraphRAG |
|---|---|---|
| 文档问答 | 够用 | 也可以 |
| 关系查询 | 不行 | 擅长 |
| 多跳推理 | 不行 | 擅长 |
| 简单事实查询 | 快捷 | 稍慢 |
需要关系理解时用GraphRAG,简单文档问答用普通RAG就够了。
💬 评论 (0)