code-graph-rag: 這是什麼、解決了什麼問題以及為什麼它正受到關注

code-graph-rag: 這是什麼、解決了什麼問題以及為什麼它正受到關注

解決了什麼問題

Code-Graph-RAG 提供了一種使用自然語言來分析和查詢大型、多語言程式碼庫的方法。它解決了理解複雜專案結構和關係(例如函數呼叫和類別層級結構)的問題,這些結構通常難以透過手動或簡單的文本搜尋來導航。

如何運作

該系統使用 Tree-sitter 進行跨多種語言的強大 AST (Abstract Syntax Tree) 解析。接著,它會建立一個關於程式碼庫結構的全面知識圖譜,並將其儲存在 Memgraph 中。使用者可以用簡單的英文提問,系統會使用來自 Google Gemini、OpenAI 或透過 Ollama 使用本地模型的 AI 模型,將其轉換為 Cypher 查詢(圖形資料庫查詢語言)。它還可以根據 AST 檢索特定的原始碼片段,並執行精確的程式碼替換。

對象是誰

此工具是為需要導航、理解和優化大型現有程式碼庫(特別是跨多種語言的程式碼庫)的開發人員而設計的。

重點摘要

  • 多語言支援:全面支援 C, C++, Java, JavaScript, TypeScript, Python, Rust, PHP, 和 Lua,Go 和 Scala 正在開發中。
  • C 系列支援:對 C++ templates, operator overloading, 和 C preprocessor includes 的深度分析。
  • AI 驅動的查詢:將自然語言轉換為 Cypher 以查詢程式碼庫結構。
  • 精確編輯:基於 AST 的函數定位,用於精確的程式碼修改。
  • 即時更新:一個 watcher,會在程式碼變更時自動同步知識圖譜。
  • 彈性的 AI 後端:支援雲端 (Gemini, OpenAI) 和本地 (Ollama) LLMs。
  • Shell 整合:能夠執行終端機指令以進行測試或 CLI 工具使用。

Sources