Graphify将原始数据编译为知识图谱,实现持久查询并显著降低token消耗


别再用LLM硬啃/raw文件夹了!Graphify给你省71.5倍流量,还老实交代“这条关系是我猜的”!卡帕西个人知识库方案的问题是:/raw文件夹的巨量token消耗,而这个开源工具Graphify用命令行将其变成持久知识图谱,查询省71.5倍流量,还标出哪些信息是猜的。

Karpathy的/raw文件夹地狱

Andrej Karpathy最近在X上晒了他的个人LLM知识库玩法。他说了一句特别扎心的话:“我觉得这里应该有个真正牛的新产品,而不是一堆临时脚本。”你听听,连他都觉得现有的方案是一堆破脚本。

卡帕西Karpathy这种人每天的信息量有多大呢?论文、代码截图、随手记的Markdown、推特上的神评论,全往一个叫/raw的文件夹里扔。这个文件夹就像你家的“杂物抽屉”,什么都往里塞,但每次想找个东西都得把整个抽屉倒出来翻一遍。

问题就在这。每次他打开一个LLM,想让模型帮忙处理这些原始文件,LLM都得把整个文件从头到尾读一遍。这就好比每次你想知道冰箱里有没有鸡蛋,都得把整个冰箱的食物全搬出来看一遍。Token消耗巨大,延迟高得离谱,钱包疼得要命。卡帕西K自己都扛不住这种低效率。Graphify就是冲着这个痛点来的:一次构建知识图谱,之后随便查,不用再重读原始文件。


Graphify的狠招:从“每次重读”变成“一次编译永久复用”

Graphify解决这个问题的方式简单粗暴却又极其聪明。它不再让AI每次傻乎乎地重新扫描所有原始文件,而是先把所有文件“编译”成一个结构化的知识图谱。

你可以把这个图谱想象成一张巨大的思维导图,里面所有知识点都被提炼出来,而且它们之间的连接关系也被清清楚楚地标好了。举个例子,你有一篇讲注意力机制的论文,还有一段实现了注意力机制的代码,传统方式下AI得分别读这两样东西,然后自己猜它们之间的关系。而Graphify会在编译阶段就直接把论文里的“注意力”概念和代码里的那个函数连接起来,形成一个明确的边。这样一来,你以后再问AI“这个函数对应论文里的哪个概念”时,AI直接在图谱里一查就完事了,根本不需要重新读论文和代码。

这个过程本质上改变了AI的工作模式。传统模式是“临时记忆读取”,每次对话都像是AI得了失忆症,你给它看什么它就只知道什么,对话一结束它就全忘了。而Graphify带来的模式是“持久知识查询”,AI不再依赖临时喂进去的内容,而是去查询一个已经建好的、结构化的知识系统。

这就好比两种学生学习方式:一种学生每次考试前都重新翻一遍所有课本,累得半死还记不全;另一种学生平时就把知识点整理成思维导图,考试时直接看导图就能回忆起来。Graphify做的就是后面这种学生干的事,而且它做得更快、更准、更省钱。实际测试中,Graphify在混合了代码、论文、图片的真实场景下,把token消耗降低了71.5倍。什么意思?原本你要花100万token才能搞定的事,现在不到1.5万token就能搞定。这不叫优化,这叫降维打击。

使用方式:一行命令就把复杂系统踩在脚下

Graphify的使用门槛低得离谱,但背后的技术复杂度高得吓人。你只需要先执行一条安装命令,然后在Claude Code里敲一个指令,剩下的全自动。这种设计思路特别狠——它把一套极其复杂的知识编译系统,压缩成了一个普通人两秒钟就能打完的指令。这就好比你把一台超级跑车改装成了一个按钮,按一下就能跑到三百码,谁还关心发动机里面怎么转的。很多技术工具喜欢吹自己功能多强大,但用户连装都装不上,这种工具就是给自己看的。Graphify不一样,它上来就让你先跑起来,先看到效果,然后再慢慢理解原理。


pip install graphify && graphify install

Then open Claude Code and type:

/graphify ./raw

执行完这行命令之后,好戏就开始了。系统会自动读取“./raw”目录里的所有东西。注意是“所有东西”——代码文件它会用AST解析器拆成语法树,PDF论文它会提取文字和引用关系,图片它会调用视觉模型理解里面画了什么,Markdown文本它直接提取关键概念。更牛的是,它不光提取东西,还会把不同文件之间的连接关系也挖出来。

比如你有一张架构图里面画了三个模块,而你的代码里正好实现了这三个模块,Graphify就会把图片里的方框和代码里的函数一一对应起来。这还不算完,它会对每一个提取出来的关系进行分类标注:这个关系是直接从原文里找到的,那个关系是模型推理出来的,还有一个关系是模型不太确定的,只有百分之六十的把握。这种标注机制解决了一个困扰AI领域很久的问题——“你告诉我这个结论,它到底是原文里写死的铁一般的事实,还是模型自己脑补出来的猜测”。

有了这个标注,你就知道哪些信息可以放心用,哪些信息需要自己再核实一遍。

输出结构:从一堆乱文件变成能导航的知识操作系统

Graphify跑完之后,会生成一个完整的输出目录。这个目录不是一堆乱七八糟的文件,而是一套精心设计的“知识操作系统”。你可以把它想象成一个工厂,每条生产线都有自己的任务,但它们合在一起就能产出完整的产品。更重要的是,这个系统不光能给人看,还能给AI代理直接使用,甚至可以在不同会话之间长期保存和反复查询。这就好比你以前每次做菜都要重新洗菜切菜配菜,现在你把所有食材提前处理好了放冰箱,每次做菜直接拿出来用就行。而且这个冰箱是智能的,你放进去的东西它会自动分类、标注、连接,下次你找什么都是一秒到位。


graphify-out/
├── graph.html       交互式图谱 - 可点击节点、搜索、按社区筛选
├── obsidian/        可作为 Obsidian 笔记库打开
├── wiki/            类 Wikipedia 风格文章,用于 agent 导航(--wiki)
├── GRAPH_REPORT.md  核心节点、关键关联、推荐问题
├── graph.json       持久化图谱 - 数周后无需重新读取即可查询
└── cache/           SHA256 缓存 - 仅处理变更文件

这个目录里的每一个文件都有自己的明确职责,绝对不干杂活。

“graph.html”是一个交互式图谱页面,你可以在里面点来点去,搜索节点,按社区过滤,玩起来就像在探索一个知识宇宙。

“obsidian/”文件夹可以直接用Obsidian打开,变成一个现成的笔记系统,你平时记的笔记和Graphify生成的知识图谱无缝衔接。

“wiki/”文件夹里是一篇一篇类Wikipedia风格的文章,AI代理可以直接在里面导航,就像人在维基百科里跳转链接一样。

“GRAPH_REPORT.md”是一份分析报告,里面会告诉你哪些是“神级节点”——就是连接特别多、特别重要的概念,还会列出一些你没想到的“惊人连接”,以及建议你去问的问题。

“graph.json”是持久化存储的核心,你两周之后想查点东西,直接拿这个JSON文件来查就行,根本不需要重新读一遍所有原始文件。

最后那个“cache/”文件夹用的是SHA256缓存机制,每次重新运行时只处理变化了的文件,没变过的文件直接跳过。这里最关键的其实不是“文件多”,而是“结构稳定”。结构稳定意味着你可以反复利用这套知识系统,不用每次从头再来。这就好比你盖好了房子,以后只需要维护和装修,不用重新打地基。

查询与交互:直接在图谱上跳舞,不再翻文件山

Graphify真正的威力体现在查询阶段。传统方式下,你每问一个问题,AI就得重新读一遍所有文件,然后从零开始理解,最后给出答案。这个过程就像你每次问路,对方都掏出地图重新找一遍你的位置。而Graphify的方式是:你问问题,它直接去已经建好的图谱里找答案。图谱里已经存好了所有概念和它们之间的关系,你要找的东西大概率已经被提前整理好了。这就好比你去图书馆找一本书,传统方式是让图书管理员把整个图书馆的书都搬出来翻一遍,而Graphify的方式是你直接查索引卡,三十秒搞定。这两种方式的差距随着数据量增长会变得越来越大。

/graphify query "what connects attention to the optimizer?"

/graphify path "DigestAuth" "Response"

/graphify explain "SwinTransformer"

上面这三个命令展示了Graphify三种不同的核心能力。

第一个命令是概念关系查询,它会告诉你“注意力机制”和“优化器”之间有什么连接。比如它可能返回:注意力机制里的权重更新依赖于优化器的梯度计算,而优化器里的某些变种专门针对注意力层做了改进。

第二个命令是路径查找,它会找出从“DigestAuth”到“Response”之间经过的所有概念节点。比如DigestAuth先生成一个认证请求,然后服务器返回一个挑战码,客户端计算响应值,最后包装成Response对象。这条路径可能经过五六个节点,每个节点都有对应的原始文件和代码位置。

第三个命令是概念解释,它会把“SwinTransformer”这个复杂概念用人话讲清楚,而且所有解释都来自已有的图谱内容,不是模型临时瞎编的。这一点极其关键:所有回答都来自已经构建好的图谱,而不是重新解析原始文件。

这意味着知识真正“持久化”了下来,不再是每次对话都从零开始的临时记忆。你上周问过的问题,这周再问一次,答案是一样的,而且回答速度快到飞起。

更新机制:知识系统是活的,不是一次性玩具

Graphify不是一个“跑完就结束”的工具,它本质上是一个持续更新的知识生态系统。你可以不断地往“/raw”文件夹里塞新东西,而Graphify只会处理变化的部分,然后智能地把新知识合并进已有的图谱里。这种设计特别适合真实的工作场景,因为真实世界里的知识不是静止的,你每天都在学新东西、写新代码、看新论文。

如果每次加新文件都要重新跑一遍全部流程,那和重新读原文又有什么区别?

Graphify的精妙之处就在于,它知道哪些东西变了,哪些没变,只做必要的最小量工作。

/graphify ./raw --update

/graphify ./raw --watch

第一条命令是增量更新模式。你执行它之后,Graphify会扫描“/raw”目录,对比“cache/”文件夹里的SHA256哈希值,找出那些内容发生了变化或者新增的文件。然后只对这些文件重新进行解析和编译,最后把新提取出来的实体、关系和标注合并进现有的“graph.json”和“wiki/”等输出文件中。那些没变过的文件,连看都不看一眼。

第二条命令更狠,它开启了自动监听模式。你执行之后,Graphify会一直在后台运行,盯着“/raw”文件夹的一举一动。只要你改了某个文件,或者新增了一张图片,甚至删除了一个Markdown文档,Graphify会在几秒钟内自动更新图谱。这种设计对于多代理协作环境尤其重要。

想象一下,三个不同的AI代理同时在写代码、改文档、画架构图,如果知识系统不能实时同步,每个AI看到的都是过时的信息,那协作就变成了灾难。而有了“--watch”模式,所有AI随时都能查到最新的知识图谱,大家的认知始终保持一致。这就好比一个团队的共享大脑,你改了什么,别人立刻就能看到,不会出现“我以为你知道但我没告诉你”这种尴尬。

多模态处理:代码论文图片全部搅在一起打通了

Graphify支持多种文件类型,而且每种类型都有完全不同的处理方式,但最后全部被扔进同一个图谱里。对于代码文件,它用AST语法树解析器拆解成函数、类、调用关系、依赖图,把代码的逻辑结构变成图谱里的节点和边。对于PDF论文,它先提取文字内容,然后用语言模型抽取出核心概念、方法名称、实验结果、引用关系,再把每一篇论文变成图谱里的一个知识簇。

对于图片文件,它调用视觉模型来理解图片里画了什么——是流程图、架构图、数据表格还是截图,然后把图片里的元素也变成图谱里的节点。对于Markdown文本,它直接做实体识别和关系抽取,把你写的笔记、推文、日志全部转化成结构化知识。

这四种完全不同类型的数据,最后被统一进了同一个知识图谱里,彼此之间还可以建立连接。

这种跨模态连接能力是传统工具完全做不到的。

举个例子,你有一段实现DigestAuth的代码,里面有个函数叫“generate_response”。同时你有一篇解释HTTP摘要认证机制的论文,里面有一节专门讲“response计算”。还有一张架构图,上面画了一个箭头从“客户端”指向“服务器”,旁边标注着“DigestAuth”。

传统工具下,这三样东西是三个孤岛,代码是代码,论文是论文,图片是图片,AI没法把它们的知识打通。而在Graphify里,这三样东西会被连接在一起:代码里的“generate_response”函数连接到论文里的“response计算”那一节,再连接到图片里的那个箭头。

你以后问“DigestAuth的response是怎么生成的”,Graphify可以直接从代码、论文、图片三个来源同时给你答案,而且每个答案都标明了原始出处和可信度。

这就好比你有三个专家同时帮你研究一个问题,一个看代码、一个读论文、一个解析图片,然后他们把各自的发现凑在一起给你一个完整的答案。更厉害的是,你可以在图谱里点一下代码节点,然后直接跳到论文里对应的解释,再跳到图片里对应的示意图,整个过程行云流水。

性能提升:71.5倍token压缩让你笑出声

在实际测试中,Graphify在混合语料环境下——就是同时包含代码、论文、图片的真实项目——实现了71.5倍的token消耗降低。咱们把这个数字掰开来看。71.5倍不是一个“优化”或者“改进”,这是一个数量级的跨越。什么概念呢?原本你花100万token才能完成的一次查询,现在只需要不到1.5万token。100万token按某些模型的价格算可能要好几美元,而1.5万token可能连一毛钱都不到。你每天查十次,以前一天几十美元,现在一天一两美元。一个月下来,省下来的钱够你买好几杯星巴克。但钱还不是最重要的,更重要的是速度。100万token的生成时间可能要一两分钟甚至更久,而1.5万token可能只需要两三秒。你从“倒杯水回来答案还没出来”变成了“问题刚打完答案就出来了”,这种体验差距比省那几块钱要大得多。

这种提升背后的原理其实很简单。

传统方式下,AI每次查询都要重新读取所有原始文件,然后对文件内容进行理解、关联、推理。这个过程就像你每次做饭都要从种菜开始,翻土、播种、浇水、施肥、收割、洗菜、切菜、炒菜,一套流程下来几个小时就过去了。

而Graphify的方式是,提前把菜种好、收好、洗好、切好、配好料,你每次做饭直接下锅炒就行,三分钟出锅。随着数据规模增长,这种优势会越来越明显。小规模数据下,比如你只有三个文件,每次重新读和查图谱可能差别不大,甚至查图谱还多了一步编译的时间。

但一旦进入真实项目规模,比如你有几百个文件、几千个概念、上万个关系,重新读原始文件的成本会爆炸式增长,而查图谱的成本几乎是常数。什么叫常数?就是不管你有一百个文件还是一万个文件,查一个概念在图谱里的邻居节点,时间都差不多。这就是71.5倍压缩的真正含义——它不仅仅是省钱省时间,它让原本在大规模数据下根本不可行的方案变得可行了。

没有Graphify,你想让AI同时理解几百篇论文加几千段代码加几百张图?门都没有。有了Graphify,这事不但能成,而且快得离谱。

技术实现:全本地运行,不依赖任何云服务

Graphify的技术栈选得非常聪明。它用了NetworkX来做图计算,这是一个纯Python的图处理库,虽然性能不是最快的,但是足够简单、足够稳定,而且完全本地运行。

它用了Leiden算法来做社区聚类,这个算法能把图谱里关系紧密的节点聚成一团一团的“社区”,比如所有跟“注意力机制”相关的节点会被聚在一起,所有跟“优化器”相关的节点会被聚在另一团。

它用了tree-sitter来做代码解析,这是一个增量式语法解析器,比正则表达式准确得多,又比完整编译器轻量得多。

它还用了Claude来做一些需要语言理解的任务,比如从论文摘要里提取核心概念。最后用vis.js来做可视化,让你在浏览器里就能看到一张可交互的知识图谱。

整个系统不依赖Neo4j这种重量级图数据库,也不需要任何服务器端组件,完全在你自己的电脑上运行。

这种设计带来了两个直接的好处,对于普通开发者来说简直是福音。

第一个好处是隐私安全。你所有的代码、论文、笔记、截图全部留在你自己的硬盘上,Graphify不会把任何数据上传到云端。对于那些涉及公司机密或者个人隐私的项目,这一点太重要了。你总不想把你还没发布的论文或者公司核心代码传到别人的服务器上去吧?

第二个好处是部署简单。你不需要搭建一个Neo4j集群,不需要配置Docker容器,不需要申请云服务器,甚至不需要联网(除了第一次安装依赖)。你只需要一台能跑Python的电脑,执行两行命令,十分钟之内就能跑起来一个完整的知识图谱系统。

这使得Graphify不仅适合大学实验室和大型企业里的研究人员,也适合一个人单干的全栈开发者,甚至适合还在上学的中学生。你只要有一台电脑,有一个装满学习资料的“/raw”文件夹,你就能体验到“AI记住一切”是什么感觉。

总结:Graphify到底解决了什么被低估的问题

Graphify本质上解决了一个被整个AI行业严重低估的问题:如何让大语言模型在长期、多模态、大规模的数据环境中高效工作。大多数人觉得AI读文件就是扔进去就行了,没意识到随着数据量的增长,成本和时间会爆炸。

更少有人意识到,AI每次对话都是“失忆”的,你没法让它记住上周读过的东西。Graphify通过“先编译、再查询”这个简单却强大的思路,把一次性上下文处理变成了持久化的知识系统。它从根本上改变了AI使用数据的方式,从“每次临时抱佛脚”变成了“提前把知识装进大脑”。

71.5倍的token压缩、跨会话的持久查询、多模态的统一图谱、全本地的隐私保护,这些不是花里胡哨的功能,而是一个完整的新范式。

Karpathy指出了“/raw黑洞”的问题,而Graphify给出了一个让黑洞消失的答案。你以后不用再一遍一遍地喂AI文件了,你只需要说一句:/graphify ./raw,然后AI就真的记住了你给它的所有东西。