Graphify:把任意文件夹变成可查询的知识图谱
1. 背景:Karpathy 的挑战
Andrej Karpathy 最近描述了他的个人知识工作流:把论文、截图、推文扔进一个原始文件夹,然后让 LLM 编译成 Wiki,用 Obsidian 导航。他最后留了一句话:”我觉得这里应该有一个出色的新产品,而不是一堆脚本拼凑的解决方案。”
Graphify 就是那个产品。它不走寻常路——不是把原始文件喂给 AI 助手,而是从你的代码、文档、论文、图片甚至视频中,构建一个持久、可查询的知识图谱,然后向 AI 提供压缩后的子图。官方数据:最多可减少 71.5 倍的 token 消耗。
2. 三步管道
Graphify 的工作流程分为三个清晰的 pass,从确定性分析到 LLM 并行提取,层层递进。
2.1 Pass 1:确定性 AST 解析
第一 pass 完全在本地运行,不涉及任何 LLM。Graphify 使用 tree-sitter 解析 20 种编程语言的代码,提取:
- 类(class)定义与继承关系
- 函数签名与调用图(call graph)
- 导入关系(import/require)
- 文档字符串(docstring)与注释
因为这一步是确定性的,每个边(edge)都标注为 EXTRACTED(提取),置信度 1.0。你永远知道这些关系是你代码库的事实性表达,没有 LLM 的”幻觉”成分。
2.2 Pass 2:本地媒体转录
如果文件夹中包含音频或视频文件(录播课程、会议 MP4 等),Graphify 在第二个本地 pass 中处理它们。
使用 faster-whisper 在本地设备上转录,音频从不离开你的机器。转录结果按 SHA256 哈希缓存,重复运行 Graphify 时秒级完成。转录文本随后进入最终的 LLM 提取 pass。
2.3 Pass 3:并行 LLM 提取
对于非结构化语义内容——文档、PDF、图片以及上一步的转录文本——确定性解析行不通。这里轮到 LLM 上场。
Graphify 将这些文件派发给 Claude 子 Agent 并行处理。每个子 Agent 读取内容,提取概念、关系和设计思路。输出严格按 schema 校验后才合并到主图。因为这些关系由 AI 推断得出,它们标注为 INFERRED(推断),附带置信度分数。
3. 知识图谱输出
经过三个 pass,Graphify 输出三种格式:
- GRAPH_REPORT.md:人类可读的审计报告,汇总图谱并列出
AMBIGUOUS(模糊)的边供人工审查 - graph.json:机器可读文件,专门供 AI 助手查询
- Obsidian Vault:即开即用的 Wiki 目录,带反向链接,像 Karpathy 的工作流一样通过 Obsidian 可视化导航
每个边都携带溯源标签(EXTRACTED、INFERRED 或 AMBIGUOUS),保证认知诚实。你始终知道每条关系的可信度。
4. 使用体验
安装即用,零配置:
pip install graphifyy
cd your-project/
graphify run .
Graphify 会立即开始扫描文件——无论是代码、PDF、图片还是视频——并开始构建图谱。
5. Graphify 为什么值得关注
在代码库越来越大、LLM 上下文窗口永远不够用的今天,Graphify 的思路很有吸引力:先做免费的确定性分析(AST 解析),再补花哨但不贵的 LLM 分析,分层处理、按需花钱。
每一条关系都有来源、有置信度、可追溯。它不是一个黑盒向量数据库,而是一个透明的知识工程管道。
总结
Graphify 把 Andrej Karpathy 的”第二大脑”想法产品化了。用 pip 安装,一个命令跑起来,你的文件夹就变成了可查询的知识图谱。对于处理大代码库的开发者来说,这可能是比”往提示词里堆文件”更聪明的选择。