如何把散落各处的教育数据整合进一张知识图谱?GraphRAG 四步实操指南
【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag
教案、试卷、课件散在五套系统里,老师每天要在"找资料"上耗掉多少小时?GraphRAG 是一个基于知识图谱的检索增强生成框架。它先把零散文本整理成"实体+关系"的图谱,再让你用自然语言直接提问。下面按四步走通完整流程。
它到底解决什么:拆掉教育数据孤岛 🧩
关键词检索只能找到"含这个词的文档",找不到"和这个概念相关的一切"。教育资料分散在多套系统里,同一知识点在教案、题库、评课记录里反复出现,彼此却没有连线。GraphRAG 从文本里抽取实体与关系,把它们拼成一张可查询的知识图谱,跨来源提问从此有了统一入口。
一分钟看懂工作原理:输入-处理-输出 ⚙️
整条流水线是单向的,四步走完:
- 输入:把教案、题库、评课文档放进
input/目录,支持 TXT、CSV、Markdown 等格式。 - 切块:长文被拆成等 token 数的文本块,LLM(按提示回答问题的大语言模型)读起来才稳定。
- 抽取:LLM 逐块识别概念、人物、模块等实体并记录实体间关系,连成一张图。
- 聚类:Leiden 算法(自动把关联紧密的节点归为一组的社区发现方法)划分社区,每个社区写一份摘要报告。
最终产物是一组 parquet 表:实体、关系、社区、报告。所有查询方式都建立在它们之上。
图中是提示词自动生成环节。系统会用你自己的数据,为抽取、摘要、报告各步骤定制提示词,减少"通用提示词读不懂教育文本"的偏差。
四步跑通完整流程 🚀
① 环境就绪:一条命令备好一切
先装命令行包并初始化工作区。init 命令会生成配置文件和input/目录:
git clone https://gitcode.com/GitHub_Trending/gr/graphrag pip install graphrag graphrag initinit 会提示你选聊天模型与嵌入模型(后者把文本转成向量以便比较相似度),照提示填入 API key 即可。官方建议先用小数据集试跑,摸清全流程再投入大任务。
② 数据接入:把资料放进 input 目录
数据不需要写脚本转换,把各类文档丢进input/就行。题库 CSV 这类结构化数据,可在 packages/graphrag-input/ 中配置字段含义。
③ 索引构建:一条命令生成知识图谱
graphrag index流水线依次执行:文本切块、实体抽取、描述摘要、社区检测、报告生成。终端能实时看到进度条。跑完后output/目录里就是知识图谱与社区报告。首次运行最久,LLM 结果默认带缓存,重跑会直接复用。
④ 查询与可视化:提问即检索,Gephi 里看图
Global 搜索看全貌,适合宏观问题;Local 搜索聚焦单个实体。两条命令各试一次:
graphrag query "这门课总共覆盖哪些知识点?" --method global graphrag query "‘导数应用’和哪些章节最相关?" --method local问题跨多个主题时还可以试 drift 搜索,它在本地与全局之间动态切换。想要并排对比各方法答案,可以启动 unified-search-app/ 网页应用:
想看图谱本身,把output/导出的 graphml 导入 Gephi。导入后初始效果如下,调整布局后簇状结构会清晰很多:
可视化完整步骤见 docs/visualization_guide.md,查询方法细节见 docs/query/overview.md。
知识图谱的三种用法:场景速写
- 企业培训负责人:把产品手册、新员工题库、往期问答接进同一张图。出新卷时问"哪些知识点多轮报错率高",直接拿到排序清单与出处。
- 学科教研组长:把五年教案与评课记录入图。可以追溯某一单元的历年演变,看出哪些改动真正带来了成绩提升。
- 课程运营专员:接入作业反馈与结课评价文本。定位某门课的高频吐槽点,得到一份待改进的教学材料清单。
接下来可以怎么玩:进阶方向与高频答疑
用 prompt-tune 定制抽取提示词
内置提示词偏通用。跑一条graphrag prompt-tune --domain "K12教育",它会从你的数据里抽样,为抽取、摘要、社区报告生成定制提示词。教育术语的抽取质量通常会明显提升。
增量追加新资料而无需重建
新学期到了新课件,用graphrag update把新文件并入现有图谱,不必推倒重来。历史资料越积越多时,这一步能省掉大量重复调用。
高频问题:几百份教案建一张图,成本有多高?索引阶段每个文本块都会调一次 LLM,花费大致与文本量成正比。先用小样本跑一遍,检查output/里的实体与报告质量,再放大规模。缓存会兜住重复部分,重跑不重复付费。
【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考