☰
graphify在FastAPI代码库上的实战演示:每个节点都是可点击的概念
2026/11/2 9:35:59 网站建设 项目流程

graphify在FastAPI代码库上的实战演示:每个节点都是可点击的概念

【免费下载链接】graphifyTurn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.项目地址: https://gitcode.com/GitHub_Trending/graph/graphify

graphify 是一款本地优先的代码知识图谱工具:一条命令把整个代码库(含文档、SQL 表结构、配置文件)解析成可查询的知识图谱。本文以 FastAPI 代码库为例,完整演示如何用 graphify 给大型项目建图——代码走 tree-sitter 确定性 AST 解析,全程本地、免费、不依赖向量库,每个节点都是可以直接点击、追问、追溯路径的"概念"。

先装上 graphify:两条命令完成配置

graphify 的官方 PyPI 包名是graphifyy(双 y),命令行仍叫graphify:

uv tool install graphifyy # 或 pipx install graphifyy graphify install # 把 /graphify 技能注册到你的 AI 助手

支持 Claude Code、Cursor、Codex、Gemini CLI、GitHub Copilot 等 20 多个平台,graphify install --platform <name>可指定平台。装完在 AI 助手里输入/graphify .即可开工。

在 FastAPI 代码库上建图:30 秒得到 3 个文件

把 FastAPI 源码 clone 到本地(仓库地址:https://gitcode.com/GitHub_Trending/graph/graphify 是 graphify 自身,FastAPI 仓库请自行获取),进入目录后对助手说一句:

/graphify .

几秒钟后,工作目录下会多出一个graphify-out/文件夹,里面有三个文件:

文件用途
graph.html浏览器打开即玩的交互式图谱:点节点、筛选、搜索
GRAPH_REPORT.md报告:核心概念、惊人连接、建议问题
graph.json完整图谱数据,随时可查,无需重读源码

代码部分由本地 AST 解析完成(0 LLM 开销);只有文档、PDF、图片才会走语义抽取。这也是 graphify 和向量索引的本质区别——它不是 embedding,而是一张真正可遍历的图。

看懂 graph.html:每个节点都是一个可点击的概念

上图就是 graphify 对 FastAPI 代码库建出的图谱。右侧图例按"社区"(subsystem)分组,颜色对应检测到的子系统:

  • APIRouter(96 个节点)—— 路由相关概念的最大集群
  • SecurityBase(71)、v2(56)—— 安全与 OpenAPI 相关模块
  • FastAPI(46)、BaseModelWithConfig(40)—— 核心模型与依赖注入

每个点都是一个具体概念(类、函数、文档段落),每条边都有关系标签(calls、imports、inherits等)。点击任意节点,就能看到它的全部连接;勾选图例中的社区,还能按子系统过滤整张图。FastAPI 这种上万行的项目,以前要翻几十个文件才能理清的依赖关系,现在一张图尽收眼底。

社区检测用的是 Leiden 算法,纯图结构聚类,不需要任何向量数据库。原理细节可参考仓库里的 docs/how-it-works.md。

GRAPH_REPORT.md 告诉你:"God 节点"是什么

建图结束后,GRAPH_REPORT.md会列出全项目连接数最多的概念——所谓 God 节点。在 FastAPI 上,APIRouter的度数高达 47,是名副其实的路由中枢;而在仓库自带的 httpx 演示(worked/httpx/GRAPH_REPORT.md)里,Client、AsyncClient、Response包揽前三。

报告还有两个很实用的板块:

  • Surprising Connections:跨文件、跨模块的"意外"连接,按意外程度排序。比如Timeout --uses--> URL这种跨文件关系,平时很少主动去查;
  • Suggested Questions:图谱自动给出 4~5 个"只有这张图才能回答"的问题,比如"Client为什么同时连接了 4 个社区?"

三条查询命令:追问图谱,而不是 grep 文件

图建好之后,最爽的用法是直接向graph.json提问。下面是 graphify 跑在 FastAPI 上的真实输出:

graphify explain "APIRouter" # Node: APIRouter (routing.py L2210, Degree: 47) # --> RequestValidationError [uses] [INFERRED] # --> Dependant [uses] [INFERRED] # <-- __init__.py [imports] [EXTRACTED] ...
graphify path "FastAPI" "ModelField" # 最短路径 3 跳: # FastAPI --uses--> DefaultPlaceholder <--references-- # get_request_handler() --references--> ModelField
graphify query "依赖注入是怎么走到路由的?" # 返回一个限定范围的子图,直接回答自然语言问题

explain解释单个概念、path追踪两个概念之间的最短路径、query回答自然语言问题——三者都不需要重读源文件,回答速度比 grep + 人工翻文件快得多,而且省 token(仓库基准测试在 52 文件的混合语料上,每次查询比直接读文件省了 71.5 倍 token)。

置信标签:分清"读到的"和"猜到的"

每条边都带置信标签,这是 graphify 可信度设计的关键:

标签含义
EXTRACTED源码里明确存在的(一次调用、一个 import),置信度恒为 1.0
INFERREDgraphify 跨文件解析推断出来的,附 0.55~0.95 的置信分
AMBIGUOUS不确定,报告里标记出来供人工复核

所以当你看到APIRouter --> Dependant [uses] [INFERRED]时,心里清楚这是"有证据的推断"而不是瞎连。这个透明化机制在跨文件调用解析、继承关系推断时尤其重要。

团队协作:让知识图谱随提交自动保鲜

graphify 的设计初衷就是团队共享:

  1. 一人执行/graphify .,把graphify-out/提交进仓库;
  2. 其他人拉代码后,AI 助手立刻能查图谱,无需重建;
  3. 执行graphify hook install安装 git hook——每次提交后自动用 AST 增量重建(纯本地、零 API 费用),并注册 git merge driver,两人并行提交时graph.json会自动做并集合并,永远不会有冲突标记。

不想纳入版本控制的生成物,可用.graphifyignore(语法同.gitignore)精确排除。

小结:把"翻代码"变成"查图谱"

graphify 在 FastAPI 上演示了它的核心价值主张:代码地图免费且完全本地,每条边都能解释,不用向量库也能做可解释的语义导航。三个文件(graph.html/GRAPH_REPORT.md/graph.json)分别对应"看"、"读"、"查"三种消费方式。对于接手新项目、梳理架构、或者让 AI 助手更快理解代码库的场景,这套"建图一次、查询无数次"的工作流值得试一次。

【免费下载链接】graphifyTurn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.项目地址: https://gitcode.com/GitHub_Trending/graph/graphify

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询