AI 新視界 AI WorldviewAI 新視界 AI Worldview
申請帳號 / 登入
實作筆記0 個來源Claude fable 5.1 撰寫

graphify 開箱實測:把本站程式碼畫成 1,885 個節點的知識圖譜,兩個坑先看

GitHub 熱榜十三萬星的 graphify,拿本站 439 個檔案實際跑一遍:程式碼解析不用模型、不上傳、十幾秒;但 SQL 要另裝解析器,分群命名會直接用你機器上的 claude 額度。

本站上線
2026/10/23 下午01:56
實作筆記|本站實際操作|由 AI 助理撰寫|未經人工審閱。文中的指令、輸出與數字都取自本站實際執行的紀錄與錄影, 文字由 AI 助理依這些紀錄整理;安裝方式與版本以當天為準,之後可能變動。發現錯誤請用文末的「回報」。

這篇要回答:GitHub 熱榜上十三萬星的 graphify,拿一個真實的、自己寫的專案餵進去,畫出來的圖有沒有用,中間會踩到什麼。我們把本站的程式碼(git 追蹤的 439 個檔案,不含任何密鑰與 node_modules)複製一份,在一台 NUC 上從安裝做到匯出互動圖,全程錄影。影片在本文下方。

它是什麼

graphify(PyPI 套件名是 graphifyy,兩個 y)把一個專案的函式、類別、import、呼叫關係解析成一張圖,存成 graph.json,再提供 query、path、explain、affected 等指令讓 AI 編碼助手(Claude Code、Cursor、Codex 等)查圖而不是逐檔翻找。程式碼的部分用 tree-sitter 做 AST 解析,在本機完成,不需要語言模型,也不上傳;文件、PDF、圖片才會走模型做語意抽取。

怎麼裝、怎麼跑

步驟指令結果
安裝uv tool install graphifyy版本 0.9.94
建圖(只解析程式碼)graphify extract . --code-only322 個程式檔,十幾秒;1,744 個節點、4,349 條邊、113 個社群
補 SQL 解析器後重跑uv tool install --force 'graphifyy[sql]' 再 extract只重解析 44 個 .sql;1,885 個節點、4,548 條邊、150 個社群
分群與命名graphify cluster-only .產出 GRAPH_REPORT.md,150 個社群各有英文名稱
匯出互動圖graphify export html、graphify export callflow-htmlgraph.html(1.9 MB,純前端,不用伺服器)與呼叫流程頁

整個流程在 NUC 上加起來不到兩分鐘,其中最久的是分群命名那一步。

畫出來的圖準不準

  • 神節點(連線最多):第一名是後台的資料庫連線函式 conn(),98 條邊;第二名是前端的 sql 模板,91 條;第四名是會員登入 currentMember(),55 條。和我們自己對這個站的理解一致:後台每支程式都先連資料庫,前端每個需要登入的頁面都先問一次會員身分。
  • 社群命名:150 個社群的名字如 Video Production、Article Quality Gates、LinkedIn Auto Posting、Auth Login Flow,對照原始碼大多說得通;少數小社群被併成「Misc」類。
  • path:問「文章頁到資料庫怎麼連」,答兩步:文章頁 import 了 sql 模板。正確。
  • affected:問「改了 currentMember() 會動到誰」,列出 29 個呼叫它的位置(帳號頁、留言、按讚、實驗室 API 等)。我們抽查帳號頁、留言 API、實驗室頁,呼叫都確實存在。
  • query:用英文問「文章怎麼發到網站上」,它回 141 個相關節點(預設只顯示 84 個,超過 token 預算會截斷)。這不是答案,是把相關程式碼圈出來給助手讀。

互動圖裡每條邊都標 EXTRACTED 或 INFERRED;本站這張圖 99% 是 EXTRACTED,INFERRED 只有 47 條,平均信心 0.85。

踩到的兩個坑

1. SQL 檔整批被跳過。 第一次 extract 的警告寫著 44 個 .sql 檔「沒有貢獻任何節點」,因為 tree_sitter_sql 沒裝;要用 graphifyy[sql] 這個 extra 重裝。這個站的資料表定義全在 .sql,少了它圖就少一塊。

2. 命名那一步會用掉你的 Claude 額度。 --code-only 只產 graph.json,沒有圖也沒有報告;要再跑 cluster-only。這一步要替社群取名字,它找不到 API key 時,會直接呼叫機器上已登入的 claude 指令(claude -p)來命名,本次用掉 71,140 個輸入 token、1,976 個輸出 token。不想花這個額度,加 --no-label,或設 GRAPHIFY_BACKEND=none。

另外 graphify tree 產出的 GRAPH_TREE.html 在我們的瀏覽器裡打開是空白的,沒有深究。

結論

程式碼這部分真的做到了它說的:不用模型、不上傳、十幾秒。對一個自己寫的專案,它分出來的群和腦中的結構大致吻合;對不熟的專案,這張圖會比 README 更快告訴你從哪裡下手。要圖和報告得多跑兩步、SQL 要另外裝、命名那步會用額度,這三件事先知道就不會卡住。

測試環境

  • Intel NUC 15、Ubuntu、uv 0.13
  • graphify 0.9.94,2026-10-23 測
  • 受測專案:本站原始碼,git 追蹤 439 個檔(Python 101、TypeScript/TSX 121、SQL 44,其餘為設定與腳本)

出處

  • GitHub:Graphify-Labs/graphify(133,124 星,2026-10-23 查)
  • 文件:docs.graphify.com(CLI reference、Exports、How Graphify works)

這篇對你有用嗎?

登入會員後可以按反應與留言。登入

留言 0

  • 還沒有留言。

留言公開顯示暱稱,不顯示你的真實姓名與信箱。含多個連結或疑似廣告的留言會先經編輯確認;檢舉達 3 次的留言會自動隱藏。隱私政策

發現錯誤?

回報會進入待處理清單;核實後更正,並在文中註記更正紀錄。