Theme / v0.9.56

Graphify

Codebase 知識圖譜

指令詳解

graphify build 指令詳解

/graphify . 與 graphify extract:用 AST + 可選 LLM 把程式碼與文件建成知識圖譜

指令用途

/graphify .(在 AI 助理中)或 graphify extract <root>(headless)是 graphify 的核心指令:掃描一個目錄,把程式碼、文件、PDF、圖片、video 全部解析進單一 JSON 知識圖譜 graphify-out/graph.json

⚠️ 重要觀念:graphify 沒有 init 這個指令graphify init / graphify init --backend=neo4j 都是上一版作者虛構,不要使用。直接跑 /graphify . 即可。

graphify 的解析分兩層:

  1. AST 層(本地、零 LLM、零 token) — 程式碼(36+ 種語言)用 tree-sitter 本地解析成 calls / imports / inherits / references / re_exports / contains 六類邊。
  2. LLM 語意層(可選) — docs/PDF/圖片/video 才會呼叫 LLM(用 IDE session 的 model,或 --backend 指定)。

基本用法

在 AI 助理中(最常見)

/graphify .

等價於「在當前目錄建圖」。建完後助理會自動讀 GRAPH_REPORT.md 找線索。

Headless / CI

# 在終端機跑(不依賴 IDE)
graphify extract .

# 指定 corpus 目錄
graphify extract ./my-project

# 加入 docs/PDF 但跳過 HTML 視覺化
graphify extract . --no-viz

純 AST 模式(不需 API key)

graphify extract . --code-only

--code-only 只解析程式碼,完全跳過 docs / PDF / 圖片,所以不需要任何 LLM key。對 CI / 大型 monorepo 友善。


輸出

graphify 跑完會在 graphify-out/ 產出三個檔案:

檔案 用途
graph.json 完整 JSON 圖譜,供 graphify query / path / explain 直接查詢
graph.html 互動式 force-directed 視覺化(瀏覽器打開可點節點、過濾、搜尋)
GRAPH_REPORT.md god nodes / surprising connections / 設計理由 / 建議問題

另可能有 manifest.json(增量同步用)、cache/(AST & 語意 cache)跟 cost.json(LLM 用量),這幾個通常應該被 .gitignore 排除。


常用選項

選項 用途 範例
--update 只重抓有變動的檔案(增量重建) graphify extract . --update
--mode deep 更豐富的 LLM 語意提取(消耗 token 更多) graphify extract . --mode deep
--code-only 只 AST,跳過 docs/PDF/圖片 graphify extract . --code-only
--no-viz 跳過 graph.html 生成(大圖譜友善) graphify extract . --no-viz
--no-cluster 跳過 Leiden 社群偵測(raw dump) graphify extract . --no-cluster
--force 強制覆寫 graph.json(refactor 後清理幽靈節點) graphify extract . --force
--backend <provider> 指定 LLM backend(gemini/claude/openai/kimi/ollama/bedrock/azure/claude-cli) graphify extract . --backend ollama
--token-budget N 縮小語意 chunk(本地小模型友善) graphify extract . --token-budget 4000
--no-gitignore .gitignore 排除的檔案也納入 graphify extract . --no-gitignore
--out DIR 把產出寫到自訂目錄 graphify extract . --out ../shared-graph
--cluster-only 只重跑社群偵測,不重建 graphify extract . --cluster-only

自動重建:hook + watch

單次 build 之外,graphify 還提供兩種持續同步:

git hook 自動重建

graphify hook install

會在 post-commit / post-checkout 自動 AST-only 重建(零 API 成本),並設定 graph.json 的 git merge driver,避免兩人同時 commit graphify-out/ 時留下 conflict marker。

Watch 模式

graphify watch ./src

檔案一變動就觸發增量 AST 解析。適合開發中即時更新圖譜。


進階情境

加入 PDF / 圖片 / video / YouTube

# 把外部 PDF 抓進來並建圖
/graphify add https://arxiv.org/abs/1706.03762

# YouTube 影片 → Whisper 轉譯 → 加入圖譜
/graphify add https://youtu.be/xxxxxxxx

add 子指令負責從 URL 抓資源並加入 corpus,後續 /graphify . 會自動納入。

整合外部資料庫 schema

# 直接 introspect PostgreSQL schema
graphify extract --postgres "postgresql://user:pass@host/db"

# Cargo workspace 依賴
graphify extract . --cargo

範例

純 AST 快速 scan(30 秒)

mkdir demo && cd demo
echo 'def f(): return g()' > a.py
echo 'def g(): return 1' > b.py
graphify extract . --code-only
ls graphify-out/
# => graph.html  GRAPH_REPORT.md  graph.json

完整 docs + code build

# 設 LLM key
export ANTHROPIC_API_KEY=sk-ant-...

# 深度 build
graphify extract . --mode deep

內部連結與外部參考


下一步

  1. graphify query 指令詳解:自然語言問題 → 子圖
  2. graphify path-explain 指令詳解:節點關係探索
  3. graphify install 指令詳解:對 20+ AI 平台註冊