Theme / v0.9.56

Graphify

Codebase 知識圖譜

實戰範例

實戰範例 009:第一次安裝與 Hello World 圖譜

從零開始:uv tool install graphifyy、graphify install、第一個 build、第一個 query 與 path,十分鐘內跑通最短流程

背景

範例 001 假設你已經裝好 graphify,直接拿來探索陌生 codebase。但很多人卡在更前面:

  • uv tool installgraphify install 到底差在哪?
  • 裝完後要打什麼才會「看到圖譜」?
  • 三個輸出檔(graph.jsongraph.htmlGRAPH_REPORT.md)各代表什麼?

這個範例給完全沒用過 graphify 的人:用一個 5 個檔的小玩具專案,跑通安裝 → 第一次 build → 第一個 query → 第一個 path的最短路徑。不談進階語意層、不談 PR 分析,只確認你能從零走到「助理會用 graphify 回答問題」這一步。


適用情境

  • 第一次接觸 graphify
  • 想先在小專案驗證安裝無誤,再上大 codebase
  • 教學/工作坊開場的 quickstart

事前準備

工具 版本 用途
Python 3.10+ graphify 是 Python 套件
uv 0.4+ 官方推薦的安裝管道
AI 助理 任一支援平台 graphify install 註冊目標

不需要 API key。本範例全程 --code-only,只走 AST 本地解析,零 token、零網路。


完整流程

步驟 1:建立玩具專案

隨便找一個目錄,放五個檔。這是後面要建圖的 corpus:

mkdir hello-graphify && cd hello-graphify

cat > user.py << 'EOF'
class User:
    def __init__(self, name):
        self.name = name

    def greet(self):
        return f"Hi, I am {self.name}"
EOF

cat > auth.py << 'EOF'
from user import User

def login(name):
    user = User(name)
    return user.greet()
EOF

cat > main.py << 'EOF'
from auth import login

if __name__ == "__main__":
    print(login("Alice"))
EOF

三個檔、三個 class/function、兩條 import 邊、一條 calls 邊。夠小,輸出看得清楚。

步驟 2:安裝 graphify

一條指令搞定。注意 PyPI 套件名是 graphifyy(雙 y),CLI 名才是 graphify:

uv tool install graphifyy

裝完驗證:

graphify --version

看到版本號(v0.9.41 或更新)就代表 CLI 可用。

步驟 3:對 AI 助理註冊 graphify

graphify install 會把 graphify 的工具描述寫進你目前 AI 助理的設定檔,讓助理「知道」有 graphify querygraphify path 這些指令可用。

# 在專案目錄下,裝到「此專案」層級
graphify install --project

graphify 支援 20+ 平台(Claude Code、Cursor、Codex、Gemini CLI 等),install 會自動偵測你目前的助理。若要明確指定平台,例如 Claude Code:

graphify claude install --project

--project 代表設定寫進當前 repo(可 commit 給團隊共用),不加則寫進個人全域設定。

步驟 4:第一次 build(純 AST)

graphify extract . --code-only

--code-only 是新手好朋友:完全跳過 LLM 語意層,只跑 tree-sitter AST,零 token、零網路。玩具專案一秒內跑完。

輸出會在 graphify-out/:

graphify-out/
├── graph.json         # 完整 JSON 圖譜
├── graph.html         # 互動式 force-directed 視覺化
└── GRAPH_REPORT.md    # god nodes、communities、建議問題

步驟 5:看圖譜長相

直接讀 GRAPH_REPORT.md:

cat graphify-out/GRAPH_REPORT.md

預期看到:

  • 🌟 God nodesUserlogin(連結數最高的節點,這個迷你 codebase 的核心)
  • 🎨 Communities — 只有一個 community(檔案太少,Leiden 不會切)
  • 💡 Suggested questions — graphify 建議你問的問題

想看視覺化,瀏覽器開 graphify-out/graph.html 即可。

步驟 6:第一個 query

對圖譜問問題。中文也行,graphify 會做 stop-words 處理:

graphify query "login 是怎麼運作的?"

graphify BFS 出子圖,把 5 到 8 個相關節點加邊回傳。在這個迷你專案,你會看到 login → User → greet 這條呼叫鏈被標出來。

步驟 7:第一個 path

問兩個概念的連結:

graphify path "login" "greet"

輸出類似:

Shortest path (2 hops):
  login --calls--> User.__init__
  User.__init__ --calls--> greet

graphify 用 BFS 找最短路徑,你立刻看到 logingreet 在呼叫鏈上的相對位置。

步驟 8:把圖譜交給助理

build 完之後,你的 AI 助理(步驟 3 註冊過的)就能讀 graphify-out/GRAPH_REPORT.md,並呼叫 graphify querygraphify path 回答問題。

在助理裡問:「這個專案的 login 流程是什麼?」助理不會再 grep 原始碼,而是讀圖譜 + 跑 query,回答更精準。


對比傳統做法

嘗試 傳統(grep + 讀檔) graphify
裝好工具 裝多個 CLI + 設定 uv tool install graphifyy 一行
看專案結構 cat 每個檔 cat GRAPH_REPORT.md 一次
找呼叫鏈 grep + 人工 connect graphify path BFS 一行
助理回答品質 grep 結果塞 prompt 助理讀結構化圖譜

失敗處理

情境 排查
uv tool install graphifyy 找不到套件 確認 PyPI 名是 graphifyy(雙 y),不是 graphify
graphify extract 空輸出 確認在專案根目錄、檔案副檔名被支援(36+ 語言常見格式皆可)
graphify install 偵測不到助理 明確指定平台,例如 graphify claude install --project
graphify query 查不到 節點 id 用程式碼裡的識別字(例如 login 而非中文翻譯);或先 graphify explain 確認 node id

內部連結


下一步

  1. 探索陌生 codebase 範例(把這套流程上大型 repo)
  2. 增量重建工作流範例(日常開發維持圖譜新鮮)

關鍵學習點

  • uv tool install graphifyy 裝 CLI,graphify install 對助理註冊工具;兩件事不要搞混。
  • --code-only 是新手預設值:純 AST、零 token、零網路,跑完 80% 價值就拿到了。
  • 三個輸出檔分工:graph.json 給程式讀、graph.html 給人看、GRAPH_REPORT.md 給助理讀。
  • query 問「怎麼運作」,path 問「兩個概念怎麼連」;前者開放、後者收斂。