4.2 知识图谱构建与管理


4.2 知识图谱构建与管理

建图不是一锤子买卖

cognify 跑完,图谱就活了——但它会长大、会变、偶尔要清理。这一节讲清建图的可配置项和图的生命周期:怎么增量更新、怎么查看、怎么删。

这是第四章第二站,也是"图谱驱动的 RAG"里"图"真正成型的地方。

cognify 的可配置项

cognify 接受参数控制用哪条流水线、是否强制全量重建等。下面示意常用配置。

import asyncio, cognee async def build(): await cognee.add("./法规库") # 用指定流水线(默认或自定义的),不强制重建已有部分 await cognee.cognify( pipeline="default", # 流水线名 # force_rebuild=False # 默认增量,已有节点复用 ) print("建图完成") asyncio.run(build()) # [建图] 复用节点 1200,新增 340,边 1540

增量建图是常态:你不会为加一份新文档就把全库推倒重来。cognify 按内容指纹判断哪些段落已处理,只补新的。

图的生命周期操作

图谱建好后,你可以查询、检视、删除。下面示意查看图规模与清理。

# 检视图谱状态(示意 API) stats = cognee.graph_stats() print(stats) # 删除某来源的图(如某文档下线) cognee.delete(source="旧法规.pdf") print(cognee.graph_stats()) # {'nodes': 1502, 'edges': 2701, 'sources': 35}

这种"按来源增删"的能力,让图谱像数据库一样可维护,而不是一次性产物。

图谱增强 RAG 的架构位置

建好的图在检索时如何参与?下面这张架构图把"图"摆在向量和 LLM 之间,说明它增强的到底是哪一段。

图谱增强 RAG 的架构位置

案例:法规库的增量更新

背景:某合规系统维护一张法规图谱,每月有新规发布。

操作:只 add 新规,跑增量 cognify

import asyncio, cognee async def update(): await cognee.add("2024新规.pdf") await cognee.cognify() # 增量,复用旧节点 ans = await cognee.search("数据出境需不需要审批") print(ans) asyncio.run(update()) # 'source':'2024新规.pdf#p3'}]

结果:新规自动并入旧图,旧问答仍有效,新问答基于新规。

解读:图谱的生命周期管理让"知识库"真正可维护。若用向量库,新旧文档各自召回,模型要在两个相似段落里自己判断哪条更新——而图谱用版本维度替你做了这步。

变式:若某旧规废止,调用 cognee.delete(source="旧规.pdf") 移除对应子图,图谱即时反映法规现状,不会留下过时关系误导检索。

一个生命周期动作:重建 vs 增量

cognify 有全量重建和增量更新两种语义。全量简单但贵,增量省但要求内容指纹稳定。实务原则:首次或本体大改时全量;日常小幅变更走增量。类比到建筑——新楼封顶是全量工程,日常维修是局部施工,不会为换个灯泡拆整栋。

# 增量更新示意(思想) await add("法规库/补充条款.pdf") # 只加新增部分 await cognify() # 默认走增量,只处理变更 # 日志:更新节点 12,跳过既有子图 980

把握好这个节奏,图随业务长大而不必每次推倒重来。详见第六章 6.5 关于增量图谱的路线方向。

场景 理由
首次建图 全量 无旧图可增
本体变更 全量 结构已变
日常补充 增量 省时省钱

⚠️ 别在增量模式下偷偷改了本体又不重建——新旧节点类型对不上,图会出现"双胞胎"节点。

💡 图要定期"体检":节点数、边数、孤立节点占比。孤立节点多,多半是某批抽取失败或本体漂移,早查早治。

一个清理动作:删图比建图更该谨慎

重建、删节点都是破坏动作。实务上删除前先导出待删部分做备份,确认无误再执行;切勿为"图有点乱"就整库清空。类比到建筑——局部拆除先支撑加固,整栋推倒是不可逆的。

动作 风险 建议
局部删节点 先导出备份
整库清空 禁止随意

⚠️ 别在排查时顺手 truncate 全图——你以为能重建,但源若已改,重建出的图不是原来的图。

💡 破坏性操作统一走"导出确认→执行→校验"三步,留审计痕迹。

一个视角:图是活的生命周期

图不是建完就定格的雕像,而是随业务持续生长的系统。把"建图"理解为动词而非名词,你才会持续做增量、做体检、做清理。

⚠️ 别建完图就再不碰——业务在变,图不变就老化,半年后答的非所问你都难察觉。

💡 给图设"生日提醒":每季一次体检+必要时重建,保持图与业务同步。

一个对照:全量重建 vs 增量更新的代价

前文提过两种语义,这里把代价摆清楚。全量简单但每次重算所有文档,文档多就慢;增量省但要求内容指纹稳定,指纹变了可能漏更。选型看变更频率:低频大改全量,高频小改增量。

方式 时间 适用
全量 首次/本体变
增量 日常补充

⚠️ 别在文档结构大改后仍用增量——指纹全变,增量等于失效,该全量就全量。

💡 建图前判断变更类型:结构性变更走全量,内容补充走增量,混合时先全量校准。

本节要点回顾

  • cognify 支持指定流水线与增量重建,不全量推倒。
  • 图谱可检视规模、按来源增删,像数据库一样可维护。
  • 图增强的是检索段:向量+图融合后再送 LLM。

⚠️ 废弃数据源记得 delete,否则过时关系会混进检索,污染答案。

💡 把"数据源→子图"对应起来管理,增删都按来源走,图谱才不会变成纠缠的毛线团。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U