一個可重現的最小範例:parser → validator → processor → storage → api 的小文件管線,加上架構筆記與研究筆記。官方用它示範「程式碼 + 文件」的圖——但文件部分需要 LLM 語意抽取。
我們以 --code-only 跑(5 個程式碼檔),文件部分標註略過。想看完整的「文件連到程式碼」,需要 LLM key 跑完整版。
# 本站跑法(--code-only,零 API key):
graphify extract ./raw --code-only # 73 節點 · 134 邊 · 5 社群
graphify cluster-only ./raw
# 完整版(含 2 個 markdown,需 LLM key):
graphify extract ./raw
5 個 Python 模組的結構圖。
| 指標 | 本站結果 |
|---|---|
| 節點數 | 73 |
| 邊數 | 134 |
| 社群數 | 5 |
| EXTRACTED 邊 | 100% |
| INFERRED 邊 | 0% |
純 AST 抽取,100% EXTRACTED——最「乾淨」的小圖。
load_index() — 12 條邊validate_document() — 10 條邊parse_file() — 7 條邊process_and_save() — 7 條邊_ensure_storage() — 7 條邊save_parsed() — 7 條邊save_processed() — 7 條邊delete_record() — 7 條邊parse_and_save() — 6 條邊enrich_document() — 6 條邊函數層的 god nodes:load_index()(storage 的索引載入)與 validate_document()(validator 的 schema 檢查)是管線的熱點,符合「storage 是 everything 流經的樞紐」的官方描述。
純程式碼語料、100% EXTRACTED——所以沒有 INFERRED 驚喜連線。這正好示範了「驚喜連線」這個概念:語料越單一、結構越明顯,驚喜就越少。
# 語料在 upstream worked/example/raw。新手建議:
graphify extract ./raw --code-only
# 然後試:
graphify query "什麼直接呼叫 storage?"
graphify path "parser" "processor"
graphify explain "api.py"