zovo.imzovo.im
首页›教程›正文

Graphify 上手:给代码库建一张可查询的知识图谱,建图不花 LLM 额度

zovo约 4 分钟读完
Graphify(Apache-2.0,GitHub 约 13.7 万 star,2026 年 4 月创建,最新版 0.9.97 发布于 10 月 28 日)能把一个代码库解析成知识图谱,之后用命令查“谁调用谁”,不必反复 grep。官方称代码部分用 tree-sitter 在本地解析,不调用 LLM。本文按官方 README 整理步骤,并在本站沙箱用 0.9.97 对 pallets/click 仓库实跑了建图和查询,核对于 2026 年 10 月 28 日。

01适用场景

接手一个陌生的大仓库,想知道核心类是哪几个、两个模块怎么连起来;或者希望 AI 编程助手少读几遍整库文件。Graphify 先把仓库变成 graph.json,再让你或助手查询这张图。

02前提

  • Python 3.10 及以上,官方推荐用 uv 或 pipx 安装
  • 一个代码仓库;只处理代码时不需要任何 API Key
  • 想在 Claude Code、Cursor、Codex 等助手里用 /graphify 斜杠命令,需要再执行 graphify install 注册技能(本站未测这一步)

03步骤

  1. 安装命令行:uv tool install graphifyy(注意包名是两个 y;或 pipx install graphifyy)。本站用 pip install graphifyy 装到 0.9.97,命令装在 ~/.local/bin,如提示找不到 graphify,需把该目录加入 PATH。
  2. 进入仓库目录,建图:graphify update .。官方说明这一步只重新提取代码文件,不需要 LLM。
  3. 查看输出:当前目录下生成 graphify-out,内含 graph.html(浏览器打开可点选节点)、GRAPH_REPORT.md(核心概念与社区划分)、graph.json(完整图)。
  4. 查询一个节点:graphify explain "节点名";查两个节点之间的最短路径:graphify path "A" "B";用自然语言取子图:graphify query "问题"。
  5. 代码改动后再跑一次 graphify update . 即可刷新。
bash
uv tool install graphifyy
cd your-repo
graphify update .
graphify explain "APIRouter"
graphify path "A" "B"
graphify query "how does a command get invoked"

04本站实跑结果

测试对象是 pallets/click 的浅克隆(提交 2247b35),共 155 个可提取文件。graphify update . 在两个工作进程下完成,输出“3460 nodes, 6725 edges, 227 communities”;GRAPH_REPORT 显示 77% 的边是 EXTRACTED、23% 是 INFERRED,Token cost 为 0 输入 0 输出。这是单次、单仓库的结果,耗时和节点数随仓库而变。

命令本站输出摘要
explain src_click_core_commandCommand 类位于 src/click/core.py L989,连接数 110
path src_click_core_command src_click_core_context最短路径 2 跳:Command ← core.py → Context
query "how does a command get invoked"返回 4 个节点,起点为 command 与 command()

05如何确认成功

graphify-out 下出现三个文件,并且 explain 能打印出带源码位置的连接列表,就说明图建好了。

06常见报错与限制

  • Ambiguous 报错:节点名在多个文件里重名时,explain 和 path 会列出候选及其 id,按提示改用完整 id(例如 src_click_core_command)再试。本站就遇到了这种情况,直接写 Command 会报错。
  • README 里的 /graphify 斜杠命令在 AI 助手内运行;文档、PDF、图片、视频的语义提取要用助手的模型或自行配置的 API Key,会产生模型调用,与代码建图不同。
  • README 顶部和多处提到官方的 Graphify Cloud 付费云服务(14 天试用),开源命令行不依赖它。README 里“降低 80% token 开销”针对的是云服务的宣传,本站未验证。
  • 官方在 README 中列出的基准(如 LOCOMO recall@10 为 0.497)出自厂商自测,本站未复现。
  • INFERRED 边是工具推断出来的关系,用于决策前最好回源码核对。
提示graphify-out 里的 graph.json 来自你的代码结构,提交到公开仓库前先确认没有不想公开的路径或内部命名。
标签:
本文由 zovo 编辑撰写,转载请注明出处。

相关文章