一個小型的混合輸入語料:3 個 Python 模組 + 一篇帶 arXiv 引用的論文筆記 + 一張圖。測試 graphify 對不同檔案型別在同一次 run 的處理——包括 attention_notes.md 被偵測為「paper」(arXiv 啟發式命中 1706.03762)。
圖資料沿用上游(含論文節點),我們用 graphify 0.9.36 重新分群並產生互動圖。
# 完整重現需 LLM key(markdown + 圖片要語意抽取)
graphify extract ./raw
# 本站做法:從上游 graph.json 重新分群
python scripts/gen-case-html.py graph.json graph.html GRAPH_REPORT.md
# 或只用程式碼部分(零 key):
graphify extract ./raw --code-only
22 個節點的小圖——三模組 + 論文節點。
| 指標 | 本站結果 |
|---|---|
| 節點數 | 22 |
| 邊數 | 38 |
| 社群數 | 4 |
| EXTRACTED 邊 | 50% |
| INFERRED 邊 | 50% |
小圖 INFERRED 比例高(19 條),因為模組間互相 import 的解析占了主體。
_cross_file_surprises() — 7 條邊_is_file_node() — 5 條邊_cross_community_surprises() — 5 條邊_node_community_map() — 4 條邊_is_concept_node() — 4 條邊_surprise_score() — 4 條邊suggest_questions() — 4 條邊god_nodes() — 3 條邊surprising_connections() — 3 條邊_file_category() — 2 條邊有趣的是:這裡的 god nodes 全是 analyze.py 的內部函數——因為語料本身就是「圖分析」模組(analyze.py / build.py / cluster.py),所以圖分析自己的程式碼變成被分析的對象。
_surprise_score() --calls--> _cross_file_surprises() — 分析函數互相呼叫的結構被忠實重現。這案例真正的看點是「自我指涉」:用圖分析工具分析圖分析工具的程式碼。
# 語料在 upstream worked/mixed-corpus/raw。完整版需 LLM key。