cognify 跑完,图谱就活了——但它会长大、会变、偶尔要清理。这一节讲清建图的可配置项和图的生命周期:怎么增量更新、怎么查看、怎么删。
这是第四章第二站,也是"图谱驱动的 RAG"里"图"真正成型的地方。
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}
这种"按来源增删"的能力,让图谱像数据库一样可维护,而不是一次性产物。
建好的图在检索时如何参与?下面这张架构图把"图"摆在向量和 LLM 之间,说明它增强的到底是哪一段。

背景:某合规系统维护一张法规图谱,每月有新规发布。
操作:只 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") 移除对应子图,图谱即时反映法规现状,不会留下过时关系误导检索。
cognify 有全量重建和增量更新两种语义。全量简单但贵,增量省但要求内容指纹稳定。实务原则:首次或本体大改时全量;日常小幅变更走增量。类比到建筑——新楼封顶是全量工程,日常维修是局部施工,不会为换个灯泡拆整栋。
# 增量更新示意(思想) await add("法规库/补充条款.pdf") # 只加新增部分 await cognify() # 默认走增量,只处理变更 # 日志:更新节点 12,跳过既有子图 980
把握好这个节奏,图随业务长大而不必每次推倒重来。详见第六章 6.5 关于增量图谱的路线方向。
| 场景 | 选 | 理由 |
|---|---|---|
| 首次建图 | 全量 | 无旧图可增 |
| 本体变更 | 全量 | 结构已变 |
| 日常补充 | 增量 | 省时省钱 |
⚠️ 别在增量模式下偷偷改了本体又不重建——新旧节点类型对不上,图会出现"双胞胎"节点。
💡 图要定期"体检":节点数、边数、孤立节点占比。孤立节点多,多半是某批抽取失败或本体漂移,早查早治。
重建、删节点都是破坏动作。实务上删除前先导出待删部分做备份,确认无误再执行;切勿为"图有点乱"就整库清空。类比到建筑——局部拆除先支撑加固,整栋推倒是不可逆的。
| 动作 | 风险 | 建议 |
|---|---|---|
| 局部删节点 | 中 | 先导出备份 |
| 整库清空 | 高 | 禁止随意 |
⚠️ 别在排查时顺手 truncate 全图——你以为能重建,但源若已改,重建出的图不是原来的图。
💡 破坏性操作统一走"导出确认→执行→校验"三步,留审计痕迹。
图不是建完就定格的雕像,而是随业务持续生长的系统。把"建图"理解为动词而非名词,你才会持续做增量、做体检、做清理。
⚠️ 别建完图就再不碰——业务在变,图不变就老化,半年后答的非所问你都难察觉。
💡 给图设"生日提醒":每季一次体检+必要时重建,保持图与业务同步。
前文提过两种语义,这里把代价摆清楚。全量简单但每次重算所有文档,文档多就慢;增量省但要求内容指纹稳定,指纹变了可能漏更。选型看变更频率:低频大改全量,高频小改增量。
| 方式 | 时间 | 适用 |
|---|---|---|
| 全量 | 长 | 首次/本体变 |
| 增量 | 短 | 日常补充 |
⚠️ 别在文档结构大改后仍用增量——指纹全变,增量等于失效,该全量就全量。
💡 建图前判断变更类型:结构性变更走全量,内容补充走增量,混合时先全量校准。
cognify 支持指定流水线与增量重建,不全量推倒。⚠️ 废弃数据源记得 delete,否则过时关系会混进检索,污染答案。
💡 把"数据源→子图"对应起来管理,增删都按来源走,图谱才不会变成纠缠的毛线团。