首頁 / 開源排行榜 / graphify

graphify

Graphify 可將任何程式碼庫、文件、資料庫結構和 PDF 轉換成本地端、可解釋、可查詢的知識圖譜,供 AI 程式設計助手使用。

PythonApache-2.0skill
⭐ GitHubhttps://github.com/Graphify-Labs/graphify
103,156
Star 數
+0
Star 增速
2026年8月6日
最後更新
5
點擊數

1. 專案概覽

Graphify 可將任何程式碼庫——連同其文件、SQL 資料庫結構、設定檔和 PDF——轉換成可查詢的知識圖譜,讓開發者透過可解釋的圖譜遍歷來理解大型且陌生的專案,而非手動搜尋檔案或依賴不透明的語意搜尋。

2. 背景與定位

傳統上,理解大型程式碼庫意味著手動搜尋檔案,或信任向量嵌入搜尋所回傳的「相似」結果,但這種搜尋並不會解釋為什麼兩段程式碼彼此相關。Graphify 的誕生正是為了填補這個缺口:它使用確定性的 AST 工具(tree-sitter)在本地端解析原始碼,並建立一個包含實體與關係的真實圖譜,可供遍歷、查詢與解釋。

本專案的核心使命是透明化。它所提取的每個關係都會被標記為 EXTRACTED(原始碼中明確存在的關係,例如 import 或函式呼叫)或 INFERRED(由 graphify 自身的分析所推斷出的關係),因此開發者永遠知道某個連結是程式碼中的事實,還是推導出的結論。

與典型的 RAG 風格程式碼助手相比,graphify 明確定位為非向量索引——建立核心圖譜時不涉及任何嵌入或向量儲存。程式碼分析完全在本地機器上透過 tree-sitter 執行,建立原始碼圖譜不需要任何 LLM 呼叫,也不需要任何 API 額度。可選的 AI 後端僅用於從非程式碼格式(如 PDF、圖片和影片)進行語意提取。

3. 功能分類

🕸️ 圖譜建構 — 核心功能,從專案建立知識圖譜

  • 上帝節點偵測(識別程式碼庫中關聯度最高的概念)
  • 使用基於 Leiden 的叢集演算法進行社群偵測,以找出子系統
  • 透過 tree-sitter 在約 40 種語言中解析跨檔案連結
  • 理由提取,將 # NOTE:# WHY: 註解轉換為一級圖譜節點
  • 增量更新,僅重新提取變更的檔案

🔍 查詢與探索 — 用於查詢既有圖譜的指令

  • 針對 graph.json 進行自然語言查詢
  • 兩個命名實體之間的最短路徑查詢
  • explain 指令,用於呈現某個實體為何重要以及它與什麼相關聯
  • AI 輔助的 PR 分流,依相關性排序審查佇列
  • 架構圖匯出(例如呼叫流程 HTML 視覺化)

🌐 多格式匯入 — 將圖譜擴展至原始碼之外

  • 涵蓋 36 種 tree-sitter 文法(Python、TypeScript、Go、Rust、Java、C/C++、Ruby 等)的原始碼
  • 文件和 PDF
  • 圖片以及影片/音訊,可透過 faster-whisper 進行本地轉錄
  • SQL 資料庫結構與基礎設施即程式碼(Terraform)
  • 可選的 Salesforce Apex、Pascal/Delphi 及其他利基生態系統擴充套件

🤖 AI 助手整合 — 將圖譜帶入現有的開發者工作流程

  • 在 20 多個 AI 程式設計助手中支援原生 /graphify 技能/指令
  • 平台專屬安裝程式(掛鉤、指令檔或原生技能註冊)
  • 涵蓋 Claude Code、Cursor、Codex、Gemini CLI、GitHub Copilot CLI 等

4. 重點特色

  • 確定性、可解釋的圖譜 — 每個邊緣都標記為提取的事實或推斷的結論,消除了嵌入型相似性搜尋中常見的不確定性。
  • 完全本地端的程式碼分析 — 建立原始碼圖譜不需要任何 LLM 呼叫,也不需要任何 API 額度;程式碼本身不會離開機器。
  • 廣泛的語言涵蓋 — 內建 36 種 tree-sitter 文法,涵蓋幾乎所有主流語言,並可透過選用擴充套件支援多種特殊語言。
  • 深度 AI 助手整合 — 可作為 20 多種熱門 AI 程式設計工具中的原生指令使用,無需額外的獨立工作流程。
  • 將理由視為資料 — 設計決策註解(# NOTE:# WHY:)會被提升為可查詢的圖譜節點,保留通常會遺失的意圖。
  • 強大的檢索基準 — 在 LOCOMO 基準(n=300)上,graphify 報告 recall@10 為 0.497,明顯優於其自身基準中所引用的同類記憶/檢索工具。

5. 依角色劃分的使用案例

一般開發者
在現有的 AI 程式設計助手中使用 /graphify .,即可立即獲得陌生儲存庫的可解釋上下文——無需手動搜尋,即可追蹤某個功能如何跨檔案串連。

DevOps/SRE
利用 SQL 資料庫結構和 Terraform 匯入功能,將基礎設施即程式碼的關係與應用程式程式碼一同對映,並使用路徑查詢來追蹤服務與其背後基礎設施之間的依賴關係。

資料/研究科學家
將文件、PDF,甚至影片/音訊資料匯入與程式碼庫相同的圖譜中,讓查詢能將研究筆記和規格直接連結到實作。

專案經理
使用 graphify prs --triage 取得 AI 排序的 pull request 審查佇列,並使用圖譜匯出(例如呼叫流程圖)向利害關係人溝通架構,而無需手動繪製圖表。

6. 入門指南

找到所需內容 — 瀏覽儲存庫 docs/ 目錄中的文件、架構指南和翻譯版 README(14 種語言),或閱讀 ARCHITECTURE.md 以取得逐模組的說明。

安裝/整合

uv tool install graphifyy
graphify install

接著在支援的 AI 程式設計助手中呼叫 /graphify .,即可為目前專案建立圖譜。其他安裝方式:

pipx install graphifyy
# 或
pip install graphifyy

貢獻

git clone https://github.com/Graphify-Labs/graphify.git
cd graphify && git checkout v8
uv sync --all-extras
uv run pytest tests/ -q

主要開發在 v8 分支上進行;提交訊息遵循 fix: / feat: / docs: 前綴,新的語言支援應在 tests/fixtures/ 下包含測試檔案,並在 test_languages.py 中加入測試案例。

7. 專案結構

graphify/
├── .github/              # GitHub 工作流程(CI、發行)
├── docs/                 # 文件,包含 14 種語言的翻譯
├── graphify/             # 主要套件原始碼
├── scripts/              # 公用程式指令碼
├── tests/                # 測試套件,包含語言測試檔案
├── tools/                # 輔助工具
├── worked/                # 範例提取結果與審查者註記
├── ARCHITECTURE.md       # 模組職責與語言整合指南
├── BENCHMARKS.md         # 效能與準確度指標
└── AGENTS.md             # Agent 框架文件

graphify/ 包含核心的提取與查詢引擎;ARCHITECTURE.md 是貢獻者理解模組如何整合或新增語言支援的建議起點。

8. 相關生態系統

依賴/建構於:

  • tree-sitter — 提供驅動本地程式碼分析的確定性 AST 解析
  • faster-whisper — 用於影片/音訊輸入的本地轉錄
  • 可選的圖譜與資料庫後端:Neo4j、FalkorDB、PostgreSQL/SQL

互補工具:

  • 與 AI 程式設計助手(Claude Code、Cursor、Codex、Gemini CLI、GitHub Copilot CLI 等)並行運作,而非取代它們——它提供這些工具所使用的結構化上下文
  • 可選的 AI 後端(包括透過 Ollama 的本地端選項),用於從文件、圖片和影片進行語意提取

9. 授權

Graphify 採用雙重授權,使用者可選擇最符合其使用情境的授權。

  • ✅ 可依 Apache License 2.0 或 MIT License 使用、修改和散布程式碼,任擇其一
  • ✅ 可依任一授權條款用於商業和專有專案
  • ❌ 任一授權均不提供保固——本軟體以「現況」提供
  • ℹ️ Apache-2.0 與 MIT 在署名和授權聲明要求上略有不同——在重新散布前,請審閱所選授權的具體條款

10. 常見問題

問:graphify 會將我的程式碼傳送到外部伺服器或 LLM 嗎?
答:不會。原始碼會透過 tree-sitter 在本地端解析,建立程式碼圖譜不需要任何 LLM 呼叫。只有 PDF、圖片和影片的選用處理會使用已設定的 AI 後端,而且這也可以透過 Ollama 完全在本地端執行。

問:graphify 支援哪些 AI 程式設計助手?
答:超過 20 種,包括 Claude Code、Cursor、Codex、Gemini CLI 和 GitHub Copilot CLI。執行 graphify install 即可設定平台專屬整合。

問:這與使用向量嵌入的 RAG 工具有何不同?
答:Graphify 建立的是實際可遍歷的圖譜,而非向量索引。關係會明確標記為 EXTRACTEDINFERRED,因此結果是可解釋的,而非相似性分數。

問:支援多少種程式語言?
答:預設包含 36 種 tree-sitter 文法,涵蓋大多數主流語言,並為 Salesforce Apex 和 Pascal/Delphi 等語言提供額外的選用擴充套件。

問:如何查詢既有的圖譜?
答:使用 graphify query "what connects auth to database?"graphify path "ServiceA" "ServiceB"graphify explain "ComponentName" 等指令,針對產生的 graph.json 進行查詢。

11. 快速連結

  • 儲存庫:https://github.com/Graphify-Labs/graphify
  • 架構指南:儲存庫根目錄中的 ARCHITECTURE.md
  • 貢獻:儲存庫 README 中的開發環境設定與指南
  • 基準:儲存庫根目錄中的 BENCHMARKS.md

12. 總結

Graphify 為開發者提供了一張可解釋、本地端運算的程式碼庫地圖,呈現程式碼庫——及其周邊文件、資料庫結構和其他產物——實際上是如何組合在一起的,以可遍歷、可查詢的圖譜取代手動搜尋檔案和不透明的相似性搜尋。對於剛接觸大型或不熟悉儲存庫的開發者,以及希望 AI 程式設計助手能以可驗證、有來源的上下文(而非猜測)來推理架構的團隊來說,它特別有價值。